- Oct 08, 2010
-
-
Owen Anderson authored
llvm-svn: 115996
-
- Oct 01, 2010
-
-
Owen Anderson authored
Now that the profitable bits of EnableFullLoadPRE have been enabled by default, rip out the remainder. Anyone interested in more general PRE would be better served by implementing it separately, to get real anticipation calculation, etc. llvm-svn: 115337
-
- Sep 30, 2010
-
-
Owen Anderson authored
We do want to allow LoadPRE to perform LICM-like transformations: we already consider PHI nodes to be negligible for code size (making this transform code size neutral), and it allows us to hoist values out of loops, which is always a good thing. llvm-svn: 115205
-
- Sep 25, 2010
-
-
Owen Anderson authored
LoadPRE was not properly checking that the load it was PRE'ing post-dominated the block it was being hoisted to. Splitting critical edges at the merge point only addressed part of the issue; it is also possible for non-post-domination to occur when the path from the load to the merge has branches in it. Unfortunately, full anticipation analysis is time-consuming, so for now approximate it. This is strictly more conservative than real anticipation, so we will miss some cases that real PRE would allow, but we also no longer insert loads into paths where they didn't exist before. :-) This is a very slight net positive on SPEC for me (0.5% on average). Most of the benchmarks are largely unaffected, but when it pays off it pays off decently: 181.mcf improves by 4.5% on my machine. llvm-svn: 114785
-
- Sep 04, 2010
-
-
Chris Lattner authored
llvm-svn: 113073
-
- Sep 02, 2010
-
-
Duncan Sands authored
I'm sure it is harmless. Original commit message: If PrototypeValue is erased in the middle of using the SSAUpdator then the SSAUpdator may access freed memory. Instead, simply pass in the type and name explicitly, which is all that was used anyway. llvm-svn: 112810
-
- Sep 01, 2010
-
-
Eric Christopher authored
self host errors on clang-x86-64. llvm-svn: 112719
-
Duncan Sands authored
then the SSAUpdator may access freed memory. Instead, simply pass in the type and name explicitly, which is all that was used anyway. llvm-svn: 112699
-
- Aug 29, 2010
-
-
Chris Lattner authored
llvm-svn: 112408
-
- Aug 07, 2010
-
-
Owen Anderson authored
llvm-svn: 110489
-
- Aug 06, 2010
-
-
Owen Anderson authored
llvm-svn: 110460
-
Owen Anderson authored
llvm-svn: 110410
-
Owen Anderson authored
ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
-
- Jul 22, 2010
-
-
Gabor Greif authored
llvm-svn: 109103
-
Owen Anderson authored
llvm-svn: 109045
-
- Jul 09, 2010
-
-
Gabor Greif authored
llvm-svn: 107971
-
Gabor Greif authored
llvm-svn: 107969
-
- Jun 30, 2010
-
-
Gabor Greif authored
llvm-svn: 107272
-
- Jun 24, 2010
-
-
Gabor Greif authored
llvm-svn: 106730
-
Gabor Greif authored
llvm-svn: 106729
-
- Jun 22, 2010
-
-
Dan Gohman authored
llvm-svn: 106542
-
- May 28, 2010
-
-
Dan Gohman authored
lib/Transforms/Utils and into lib/Analysis so that Analysis passes can use them. llvm-svn: 104949
-
- May 08, 2010
-
-
Chris Lattner authored
llvm-svn: 103347
-
- May 05, 2010
-
-
Bob Wilson authored
This fixes the compile-time regressions seen in last night's tests. llvm-svn: 103118
-
- May 04, 2010
-
-
Bob Wilson authored
indirect branches in all the predecessors. This avoids unnecessarily splitting edges in cases where load PRE is not possible anyway. Thanks to Jakub Staszak for pointing this out. llvm-svn: 103034
-
- Apr 17, 2010
-
-
Eric Christopher authored
Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. llvm-svn: 101579
-
- Apr 16, 2010
-
-
Gabor Greif authored
with a fix for self-hosting rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101465
-
Gabor Greif authored
llvm-svn: 101434
-
- Apr 15, 2010
-
-
Gabor Greif authored
with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101397
-
Dan Gohman authored
llvm-svn: 101376
-
Gabor Greif authored
llvm-svn: 101368
-
Gabor Greif authored
of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101364
-
- Apr 09, 2010
-
-
Gabor Greif authored
llvm-svn: 100856
-
- Mar 25, 2010
-
-
Chris Lattner authored
llvm-svn: 99488
-
- Mar 02, 2010
-
-
Bob Wilson authored
a loop and is itself the only dependency). llvm-svn: 97526
-
Bob Wilson authored
predecessors before returning. Otherwise, if multiple predecessor edges need splitting, we only get one of them per iteration. This makes a small but measurable compile time improvement with -enable-full-load-pre. llvm-svn: 97521
-
- Mar 01, 2010
-
-
Evan Cheng authored
llvm-svn: 97512
-
- Feb 28, 2010
-
-
Bob Wilson authored
llvm-svn: 97366
-
- Feb 26, 2010
-
-
Bob Wilson authored
argument of createGVNPass and set it automatically for -O3. llvm-svn: 97245
-
Bob Wilson authored
llvm-svn: 97235
-