- Nov 11, 2009
-
-
Duncan Sands authored
llvm.invariant.start to be used without necessarily being paired with a call to llvm.invariant.end. If you run the entire optimization pipeline then such calls are in fact deleted (adce does it), but that's actually a good thing since we probably do want them to be zapped late in the game. There should really be an integration test that checks that the llvm.invariant.start call lasts long enough that all passes that do interesting things with it get to do their stuff before it is deleted. But since no passes do anything interesting with it yet this will have to wait for later. llvm-svn: 86840
-
Chris Lattner authored
llvm-svn: 86810
-
Chris Lattner authored
start using them in a trivial way when -enable-jump-threading-lvi is passed. enable-jump-threading-lvi will be my playground for awhile. llvm-svn: 86789
-
Chris Lattner authored
llvm-svn: 86766
-
Evan Cheng authored
llvm-svn: 86761
-
Devang Patel authored
llvm-svn: 86748
-
- Nov 10, 2009
-
-
Chris Lattner authored
llvm-svn: 86739
-
Chris Lattner authored
into libanalysis and transformutils. llvm-svn: 86735
-
Chris Lattner authored
tracked down by Stephan Reiter! llvm-svn: 86726
-
Chris Lattner authored
llvm-svn: 86723
-
Chris Lattner authored
debug intrinsics, and an unconditional branch when possible. This reuses the TryToSimplifyUncondBranchFromEmptyBlock function split out of simplifycfg. llvm-svn: 86722
-
Evan Cheng authored
llvm-svn: 86715
-
Duncan Sands authored
llvm-svn: 86705
-
Duncan Sands authored
llvm-svn: 86694
-
Chris Lattner authored
llvm-svn: 86689
-
Duncan Sands authored
llvm-svn: 86683
-
Duncan Sands authored
llvm-svn: 86681
-
Victor Hernandez authored
Update computeArraySize() to use ComputeMultiple() to determine the array size associated with a malloc; also extend PerformHeapAllocSRoA() to check if the optimized malloc's arg had its highest bit set, so that it is safe for ComputeMultiple() to look through sext instructions while determining the optimized malloc's array size llvm-svn: 86676
-
Chris Lattner authored
of a computation. This fixes some infinite loops when dealing with TD that has no native types. llvm-svn: 86670
-
Nick Lewycky authored
llvm-svn: 86668
-
Nick Lewycky authored
memory just like a store" with bug fixed (partial-overwrite.ll is the regression test). llvm-svn: 86667
-
Chris Lattner authored
llvm-svn: 86666
-
Oscar Fuentes authored
llvm-svn: 86656
-
Chris Lattner authored
just one level deep. On the testcase we go from getting this: F1: ; preds = %T2 %F = and i1 true, %cond ; <i1> [#uses=1] br i1 %F, label %X, label %Y to a fully threaded: F1: ; preds = %T2 br label %Y This changes gets us to the point where we're forming (too many) switch instructions on doug's strswitch testcase. llvm-svn: 86646
-
Chris Lattner authored
llvm-svn: 86639
-
Chris Lattner authored
except that the result may not be a constant. Switch jump threading to use it so that it gets things like (X & 0) -> 0, which occur when phi preds are deleted and the remaining phi pred was a zero. llvm-svn: 86637
-
Jeffrey Yasskin authored
This patch forbids implicit conversion of DenseMap::const_iterator to DenseMap::iterator which was possible because DenseMapIterator inherited (publicly) from DenseMapConstIterator. Conversion the other way around is now allowed as one may expect. The template DenseMapConstIterator is removed and the template parameter IsConst which specifies whether the iterator is constant is added to DenseMapIterator. Actually IsConst parameter is not necessary since the constness can be determined from KeyT but this is not relevant to the fix and can be addressed later. Patch by Victor Zverovich! llvm-svn: 86636
-
Chris Lattner authored
llvm-svn: 86635
-
Chris Lattner authored
simplification, this handles the foldable fcmp x,x cases among many others. llvm-svn: 86627
-
Chris Lattner authored
llvm-svn: 86625
-
Chris Lattner authored
Simplify[IF]Cmp pieces. Add some predicates to CmpInst to determine whether a predicate is fp or int. llvm-svn: 86624
-
Chris Lattner authored
individual operands instead of taking a temporary array llvm-svn: 86619
-
Chris Lattner authored
llvm-svn: 86616
-
- Nov 09, 2009
-
-
Chris Lattner authored
simplifies instruction users of PHIs when the phi is eliminated. This will be moved to transforms/utils after some other refactoring. llvm-svn: 86603
-
Dan Gohman authored
llvm-svn: 86575
-
Dan Gohman authored
the loop. This is needed because with indirectbr it may not be possible for LoopSimplify to guarantee that all loop exit predecessors are inside the loop. This fixes PR5437. LCCSA no longer actually requires LoopSimplify form, but for now it must still have the dependency because the PassManager doesn't know how to schedule LoopSimplify otherwise. llvm-svn: 86569
-
Chris Lattner authored
it to a normal binop. Patch by Alastair Lynn, testcase by me. llvm-svn: 86524
-
Chris Lattner authored
putchar in case there is an error. llvm-svn: 86515
-
Chris Lattner authored
used by a chain of other PHIs. llvm-svn: 86503
-
Owen Anderson authored
llvm-svn: 86499
-