- Nov 09, 2009
-
-
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
-
- Nov 06, 2009
-
-
Chris Lattner authored
from various APIs, addressing PR5325. llvm-svn: 86231
-
- Nov 05, 2009
-
-
Dan Gohman authored
on loops having dedicated exits, which LoopSimplify can no longer always guarantee. llvm-svn: 86181
-
Dan Gohman authored
unsplittable critical edges, which means the introduction of loops which cannot be transformed to LoopSimplify form. Fix LoopSimplify to avoid transforming such loops into invalid code. llvm-svn: 86176
-
Dan Gohman authored
llvm-svn: 86164
-
Dan Gohman authored
llvm-svn: 86160
-
Dan Gohman authored
makes several optimization passes abort in cases where they're currently silently miscompiling code. Remove the indirectbr assertion from SplitEdge. Indirectbr is only a problem for critical edges, and SplitEdge defers to SplitCriticalEdge to handle those, and SplitCriticalEdge has its own assertion for indirectbr. llvm-svn: 86147
-
- Nov 03, 2009
-
-
Chris Lattner authored
llvm-svn: 85863
-
Ted Kremenek authored
llvm-svn: 85859
-
- Nov 02, 2009
-
-
Chris Lattner authored
llvm-svn: 85786
-
- Nov 01, 2009
-
-
Chris Lattner authored
llvm-svn: 85725
-
Chris Lattner authored
when BB2 has its address taken. Since it ends up doing BB2->rauw(BB1), this can cause the address of the entry block to be taken. Since it is generally undesirable to nuke blocks whose address is taken, even when we can, just unconditionally stop this xform. llvm-svn: 85708
-
Chris Lattner authored
llvm-svn: 85704
-
Chris Lattner authored
indirectbr, thus we don't need "blockaddr(@func, null)". Eliminate it for simplicity. llvm-svn: 85699
-
- Oct 31, 2009
-
-
Chris Lattner authored
Fix CodeGenPrepare to not try to split edges from indirectbr. llvm-svn: 85690
-
Chris Lattner authored
it abort on IndirectBrInst as describe in the comment. llvm-svn: 85688
-
Chris Lattner authored
llvm-svn: 85680
-
Dan Gohman authored
auto-update the DominatorTree because it doesn't keep the DominatorTree current while it works. llvm-svn: 85670
-
Dan Gohman authored
llvm-svn: 85668
-
Dan Gohman authored
MergeBlockIntoPredecessor. This makes SimplifyCFG slightly more aggressive, and makes it unnecessary for LoopUnroll to have its own copy of this code. llvm-svn: 85667
-
Dan Gohman authored
llvm-svn: 85662
-
Dan Gohman authored
llvm-svn: 85660
-
Dan Gohman authored
LoopUnrollPass.cpp, for consistency with other passes which are similarly split. llvm-svn: 85659
-
Dan Gohman authored
llvm-svn: 85635
-
- Oct 30, 2009
-
-
Dan Gohman authored
This reduces codesize on a variety of codes by 1-2% on x86-64. It also helps clean up after SSAUpdater. llvm-svn: 85626
-
- Oct 29, 2009
-
-
Chris Lattner authored
crash on any clang tests. llvm-svn: 85465
-
Chris Lattner authored
llvm-svn: 85458
-
Chris Lattner authored
llvm-svn: 85457
-
- Oct 27, 2009
-
-
Devang Patel authored
llvm-svn: 85327
-
Victor Hernandez authored
llvm-svn: 85286
-
Chris Lattner authored
with multiple return values it inserts a PHI to merge them all together. However, if the return values are all the same, it ends up with a pointless PHI and this pointless PHI happens to really block SRoA from happening in at least a silly C++ example written by Doug, but probably others. This fixes rdar://7339069. llvm-svn: 85206
-
Victor Hernandez authored
llvm-svn: 85181
-
Victor Hernandez authored
Remove LowerAllocations pass. Update some more passes to treate free calls just like they were treating FreeInst. llvm-svn: 85176
-
- Oct 25, 2009
-
-
Nick Lewycky authored
VISIBILITY_HIDDEN removal. llvm-svn: 85043
-
Nick Lewycky authored
Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. llvm-svn: 85042
-
Dan Gohman authored
llvm-svn: 85020
-
- Oct 24, 2009
-
-
Victor Hernandez authored
Update all analysis passes and transforms to treat free calls just like FreeInst. Remove RaiseAllocations and all its tests since FreeInst no longer needs to be raised. llvm-svn: 84987
-
- Oct 20, 2009
-
-
Chris Lattner authored
llvm-svn: 84667
-
Torok Edwin authored
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
-
- Oct 19, 2009
-
-
Dan Gohman authored
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
-