Torok Edwin
a8a12b7d98
Fix PR5262: when folding select into PHI, make sure all operands are available
...
in the PHI's Basic Block. This uses a conservative approach, because we don't
have dominator info in instcombine.
llvm-svn: 84754
2009-10-21 10:49:00 +00:00
Chris Lattner
882034fdaf
add a real testcase for PR4313
...
llvm-svn: 84676
2009-10-20 21:04:26 +00:00
Chris Lattner
0737ccf048
add a test similar to that needed for PR4313, but that doesn't
...
fail without the patch.
llvm-svn: 84675
2009-10-20 21:00:47 +00:00
Chris Lattner
ccbe8ab252
the date on this testcase is wrong, it is unreduced, and it passes without the fix for PR4313.
...
llvm-svn: 84674
2009-10-20 20:57:58 +00:00
Chris Lattner
f3be536c0a
merge and filecheckize
...
llvm-svn: 84672
2009-10-20 20:39:43 +00:00
Chris Lattner
827cc8fa02
merge two tests and convert to filecheck.
...
llvm-svn: 84671
2009-10-20 20:33:46 +00:00
Chris Lattner
803539f022
alternate fix for PR5258 which avoids worklist problems, with reduced testcase.
...
llvm-svn: 84667
2009-10-20 20:27:49 +00:00
Torok Edwin
bdcd45a9d6
Fix PR5258, jump-threading creating invalid PHIs.
...
When an incoming value for a PHI is updated, we must also updated all other
incoming values for the same BB to match, otherwise we create invalid PHIs.
llvm-svn: 84638
2009-10-20 15:42:00 +00:00
Torok Edwin
3801e755cc
Fix PR4313: IPSCCP was not setting the lattice value for the invoke instruction
...
when the invoke had multiple return values: it set the lattice value only on the
extractvalue.
This caused the invoke's lattice value to remain the default (undefined), and
later propagated to extractvalue's operand, which incorrectly introduces
undefined behavior.
llvm-svn: 84637
2009-10-20 15:15:09 +00:00
Dan Gohman
d2e75c9ae0
Fix SplitBlockPredecessors' LoopInfo updating code to handle the case
...
where a loop's header is being split and it has predecessors which are not
contained by the most-nested loop which contains the loop.
This fixes PR5235.
llvm-svn: 84505
2009-10-19 16:04:50 +00:00
Chris Lattner
e7c0e7f1a9
remove a now-pointless regtest
...
llvm-svn: 84409
2009-10-18 05:20:17 +00:00
Chris Lattner
878fd28407
remove testcase for dead pass
...
llvm-svn: 84406
2009-10-18 05:03:41 +00:00
Chris Lattner
2c890dc2b4
Teach vm core to more aggressively fold 'trunc' constantexprs,
...
allowing it to simplify the crazy constantexprs in the testcases
down to something sensible. This allows -std-compile-opts to
completely "devirtualize" the pointers to member functions in
the testcase from PR5176.
llvm-svn: 84368
2009-10-17 21:53:27 +00:00
Chris Lattner
ebc645ca40
remove # uses from FileCheck lines.
...
llvm-svn: 84367
2009-10-17 21:51:19 +00:00
Chris Lattner
270ab44108
rename test
...
llvm-svn: 84364
2009-10-17 21:31:19 +00:00
Chris Lattner
7f32b72975
Simplify some code (first hunk) and fix PR5208 (second hunk) by
...
updating the callgraph when introducing a call.
llvm-svn: 84310
2009-10-17 05:39:39 +00:00
Victor Hernandez
4d7283f82c
Autoupgrade malloc insts to malloc calls.
...
Update testcases that rely on malloc insts being present.
Also prematurely remove MallocInst handling from IndMemRemoval and RaiseAllocations to help pass tests in this incremental step.
llvm-svn: 84292
2009-10-17 00:00:19 +00:00
Victor Hernandez
00adf339dd
HeapAllocSRoA also needs to check if malloc array size can be computed.
...
llvm-svn: 84288
2009-10-16 23:12:25 +00:00
Victor Hernandez
0122f679a8
Invert isSafeToGetMallocArraySize check because we return NULL when we don't know the size.
...
Thanks to Duncan Sands for noticing this bug.
llvm-svn: 84260
2009-10-16 18:07:17 +00:00
Duncan Sands
71fecaa52c
Check that GVN performs this transform even if the calls
...
themselves are not marked readonly, but only the called
functions.
llvm-svn: 84253
2009-10-16 12:18:23 +00:00
Chris Lattner
a1f5264dd2
make instcombine's instruction sinking more aggressive in the
...
presence of PHI nodes.
llvm-svn: 84103
2009-10-14 15:21:58 +00:00
Chris Lattner
26c670aa44
change simplifycfg to not duplicate 'unwind' instructions. Hopefully
...
this will increase the likelihood of common code getting sunk towards
the unwind.
llvm-svn: 83996
2009-10-13 18:13:05 +00:00
Chris Lattner
f5049b6bb8
convert to filecheck
...
llvm-svn: 83995
2009-10-13 18:10:05 +00:00
Chris Lattner
8ddeaf680a
rename test
...
llvm-svn: 83994
2009-10-13 18:08:21 +00:00
Victor Hernandez
21280bc3af
Memory dependence analysis was incorrectly stopping to scan for stores to a pointer at bitcast uses of a malloc call.
...
It should continue scanning until the malloc call, and this patch fixes that.
llvm-svn: 83931
2009-10-13 01:42:53 +00:00
Edward O'Callaghan
da365e84bc
Missing CHECK: lines makes test exit abnormally.
...
llvm-svn: 83835
2009-10-12 09:01:26 +00:00
Edward O'Callaghan
9393833f23
FileCheck not CheckFile, oops.
...
llvm-svn: 83834
2009-10-12 08:51:28 +00:00
Edward O'Callaghan
13bf3f7804
Convert InstCombine/call.ll to CheckFile.
...
llvm-svn: 83833
2009-10-12 08:46:47 +00:00
Edward O'Callaghan
4d633eaaae
Convert the rest of the InstCombine tests from notcast to FileCheck.
...
llvm-svn: 83828
2009-10-12 07:18:14 +00:00
Nick Lewycky
3a206901cb
Remove this part of the test, it never actually tested anything anyways. This
...
unbreaks make check after evocallaghan's changes.
llvm-svn: 83827
2009-10-12 06:32:42 +00:00
Edward O'Callaghan
0cc7f5e34a
Fix syntax error missed in converting zext.ll test. Convert 2003-11-13-ConstExprCastCall.ll to FileCheck from notcast.
...
llvm-svn: 83826
2009-10-12 06:23:56 +00:00
Edward O'Callaghan
843b0c8830
Convert InstCombine tests from notcast to FileCheck.
...
llvm-svn: 83825
2009-10-12 06:14:06 +00:00
Chris Lattner
cb56deb798
reduce vec_shuffle2 and merge into vec_shuffle.
...
llvm-svn: 83807
2009-10-11 22:54:48 +00:00
Chris Lattner
33bff4602c
filecheckize vec_shuffle.ll and merge shuffle.ll into it.
...
llvm-svn: 83806
2009-10-11 22:52:15 +00:00
Chris Lattner
b044bc079a
filecheckize
...
llvm-svn: 83805
2009-10-11 22:45:17 +00:00
Chris Lattner
68ac2f7b2c
rename test
...
llvm-svn: 83804
2009-10-11 22:44:16 +00:00
Chris Lattner
fa84cccd57
remove old testcase
...
llvm-svn: 83803
2009-10-11 22:42:06 +00:00
Chris Lattner
65bef57da8
merge test into shift.ll, this also eliminates awful grepping on -stats output
...
llvm-svn: 83802
2009-10-11 22:39:58 +00:00
Chris Lattner
bc0f470f07
convert to filecheck.
...
llvm-svn: 83801
2009-10-11 22:36:59 +00:00
Chris Lattner
b033a0ac47
teach instcombine to simplify xor's harder, catching the
...
new testcase.
llvm-svn: 83799
2009-10-11 22:22:13 +00:00
Chris Lattner
c8e0cdb676
convert xor2 to filecheck, merge in a random regtest
...
llvm-svn: 83796
2009-10-11 21:42:08 +00:00
Chris Lattner
100f3ac565
generalize a transformation even more: we don't care whether the
...
input the the mul is a zext from bool, just that it is all zeros
other than the low bit. This fixes some phase ordering issues
that would cause us to miss some xforms in mul.ll when the worklist
is visited differently.
llvm-svn: 83794
2009-10-11 21:29:45 +00:00
Chris Lattner
40d1618562
simplify a transformation by making it more general.
...
llvm-svn: 83792
2009-10-11 21:22:21 +00:00
Torok Edwin
ed37f33b81
LICM shouldn't sink/delete debug information. Fix this and add a testcase.
...
For now the metadata of sinked/hoisted instructions is still wrong, but that'll
be fixed when instructions will have debug metadata directly attached.
llvm-svn: 83786
2009-10-11 19:15:54 +00:00
Chris Lattner
8ae883b5f0
when folding duplicate conditions, delete the
...
now-probably-dead instruction tree feeding it.
llvm-svn: 83778
2009-10-11 18:39:58 +00:00
Chris Lattner
601cc4c588
implement rdar://7293527, a trivial instcombine that llvm-gcc
...
gets but clang doesn't, because it is implemented in GCC's
fold routine.
llvm-svn: 83761
2009-10-11 07:53:15 +00:00
Chris Lattner
1832a32b78
implement a transformation in jump threading that is currently
...
done by condprop, but do it in a much more general form. The
basic idea is that we can do a limited form of tail duplication
in the case when we have a branch on a phi. Moving the branch
up in to the predecessor block makes instruction selection
much easier and encourages chained jump threadings.
llvm-svn: 83759
2009-10-11 07:24:57 +00:00
Chris Lattner
9a90dc5b0c
another testcase jump threading shouldn't crash on.
...
llvm-svn: 83758
2009-10-11 07:11:11 +00:00
Chris Lattner
90aeacd46f
rename a file, remove a poorly reduced testcase.
...
llvm-svn: 83757
2009-10-11 07:10:28 +00:00
Chris Lattner
525c0272aa
make jump threading on a phi with undef inputs happen.
...
llvm-svn: 83754
2009-10-11 04:18:15 +00:00