- Apr 22, 2005
-
-
Misha Brukman authored
llvm-svn: 21427
-
- Apr 21, 2005
-
-
Chris Lattner authored
llvm-svn: 21393
-
Chris Lattner authored
convert this: %tmp.1 = seteq int %i, 0 ; <bool> [#uses=1] br bool %tmp.1, label %shortcirc_done, label %shortcirc_next shortcirc_next: ; preds = %entry %tmp.4 = seteq int %j, 0 ; <bool> [#uses=1] br label %shortcirc_done shortcirc_done: ; preds = %shortcirc_next, %entry %shortcirc_val = phi bool [ %tmp.4, %shortcirc_next ], [ true, %entry ] ; <bool> [#uses=1] to this: %tmp.1 = seteq int %i, 0 ; <bool> [#uses=1] %tmp.4 = seteq int %j, 0 ; <bool> [#uses=1] %shortcirc_val = select bool %tmp.1, bool true, bool %tmp.4 ; <bool> [#uses=1] ... which is later simplified by instcombine into an or. llvm-svn: 21388
-
- Apr 12, 2005
-
-
Chris Lattner authored
llvm-svn: 21253
-
- Mar 17, 2005
-
-
Chris Lattner authored
Bill Wendling!! llvm-svn: 20649
-
- Mar 15, 2005
-
-
Chris Lattner authored
using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! llvm-svn: 20597
-
- Mar 05, 2005
-
-
Chris Lattner authored
llvm-svn: 20463
-
- Feb 27, 2005
-
-
Chris Lattner authored
llvm-svn: 20343
-
- Feb 26, 2005
-
-
Chris Lattner authored
llvm-svn: 20334
-
- Feb 24, 2005
-
-
Chris Lattner authored
This does a simple form of "jump threading", which eliminates CFG edges that are provably dead. This triggers 90 times in the external tests, and eliminating CFG edges is always always a good thing! :) llvm-svn: 20300
-
- Jan 29, 2005
-
-
Chris Lattner authored
llvm-svn: 19898
-
- Jan 01, 2005
-
-
Chris Lattner authored
SimplifyCFG is one of those passes that we use for final cleanup: it should not rely on other passes to clean up its garbage. This fixes the "why are trivially dead setcc's in the output of gccas" problem. llvm-svn: 19212
-
- Dec 11, 2004
-
-
Chris Lattner authored
llvm-svn: 18799
-
- Dec 10, 2004
-
-
Chris Lattner authored
and the failure on make_dparser last night. llvm-svn: 18766
-
- Nov 30, 2004
-
-
Chris Lattner authored
llvm-svn: 18381
-
Chris Lattner authored
This only fails on darwin or on X86 under valgrind. llvm-svn: 18377
-
Chris Lattner authored
llvm-svn: 18369
-
Chris Lattner authored
if (x) { code ... } else { code ... } Turn it into: code if (x) { ... } else { ... } This reduces code size and in some common cases allows us to completely eliminate the conditional. This turns several if/then/else blocks in loops into straightline code in 179.art, turning the loops into single basic blocks (good for modsched even!). Maybe now brg will leave me alone ;-) llvm-svn: 18366
-
- Nov 20, 2004
-
-
Misha Brukman authored
llvm-svn: 18028
-
- Nov 13, 2004
-
-
Chris Lattner authored
llvm-svn: 17699
-
Chris Lattner authored
instructions, setting DefBlock to a block it did not have dom info for. llvm-svn: 17697
-
- Nov 01, 2004
-
-
Chris Lattner authored
This speeds up simplifycfg on this program, from 44.87s to 0.29s (with a profiled build): #define CL0(a) case a: goto c; #define CL1(a) CL0(a##0) CL0(a##1) CL0(a##2) CL0(a##3) CL0(a##4) CL0(a##5) \ CL0(a##6) CL0(a##7) CL0(a##8) CL0(a##9) #define CL2(a) CL1(a##0) CL1(a##1) CL1(a##2) CL1(a##3) CL1(a##4) CL1(a##5) \ CL1(a##6) CL1(a##7) CL1(a##8) CL1(a##9) #define CL3(a) CL2(a##0) CL2(a##1) CL2(a##2) CL2(a##3) CL2(a##4) CL2(a##5) \ CL2(a##6) CL2(a##7) CL2(a##8) CL2(a##9) #define CL4(a) CL3(a##0) CL3(a##1) CL3(a##2) CL3(a##3) CL3(a##4) CL3(a##5) \ CL3(a##6) CL3(a##7) CL3(a##8) CL3(a##9) void f(); void a() { int b; c: switch (b) { CL4(1) } } This testcase is contrived to expose N^2 behavior, but this patch should speedup simplifycfg on any programs that use large switch statements. This testcase comes from GCC PR17895. llvm-svn: 17389
-
- Oct 28, 2004
-
-
Reid Spencer authored
llvm-svn: 17286
-
- Oct 22, 2004
-
-
Reid Spencer authored
llvm-svn: 17163
-
Reid Spencer authored
llvm-svn: 17155
-
- Oct 19, 2004
-
-
Reid Spencer authored
llvm-svn: 17136
-
- Oct 18, 2004
-
-
Reid Spencer authored
Patch contributed by Morten Ofstad. Thanks Morten! llvm-svn: 17123
-
Chris Lattner authored
Simplify code by simplifying terminators that branch to blocks that start with an unreachable instruction. llvm-svn: 17116
-
Chris Lattner authored
particular, invoke ret values are only live in the normal dest of the invoke not in the unwind dest. llvm-svn: 17108
-
Chris Lattner authored
If a function had no return instruction in it, and the result of the inlined call instruction was used, we would crash. llvm-svn: 17104
-
- Oct 17, 2004
-
-
Chris Lattner authored
unneccesary. This allows us to delete several hundred phi nodes of the form PHI(x,x,x,undef) from 253.perlbmk and probably other programs as well. This implements Mem2Reg/UndefValuesMerge.ll llvm-svn: 17098
-
Chris Lattner authored
to think that PHI[4, undef] == 4. llvm-svn: 17096
-
- Oct 16, 2004
-
-
Chris Lattner authored
llvm-svn: 17056
-
Chris Lattner authored
llvm-svn: 17046
-
Chris Lattner authored
llvm-svn: 17045
-
- Oct 14, 2004
-
-
Chris Lattner authored
nodes unless we KNOW that we are able to promote all of them. This fixes: test/Regression/Transforms/SimplifyCFG/PhiNoEliminate.ll llvm-svn: 16973
-
- Oct 13, 2004
-
-
Reid Spencer authored
llvm-svn: 16950
-
- Oct 11, 2004
-
-
Reid Spencer authored
llvm-svn: 16893
-
- Sep 29, 2004
-
-
Chris Lattner authored
potentially fold more in one pass. llvm-svn: 16583
-
- Sep 19, 2004
-
-
Chris Lattner authored
whose addresses where used by trivial phi nodes and select instructions. This is now performed by the instcombine pass, which is more powerful, is much simpler, and is faster. This allows the deletion of a bunch of code, two FIXME's and two gotos. llvm-svn: 16406
-