- Sep 30, 2011
-
-
Dan Gohman authored
handle the case where the retain is in a different basic block. rdar://10210274. llvm-svn: 140815
-
Dan Gohman authored
objc_retainBlock call is potentially responsible for copying the block to the heap to extend its lifetime. rdar://10209613. llvm-svn: 140814
-
- Sep 29, 2011
-
-
Andrew Trick authored
llvm-svn: 140769
-
Andrew Trick authored
Rewriting the entire loop nest now requires -enable-lsr-nested. See PR11035 for some performance data. A few unit tests specifically test nested LSR, and are now under a flag. llvm-svn: 140762
-
- Sep 28, 2011
-
-
Andrew Trick authored
llvm-svn: 140670
-
- Sep 27, 2011
-
-
Benjamin Kramer authored
Stop emitting instructions with the name "tmp" they eat up memory and have to be uniqued, without any benefit. If someone prefers %tmp42 to %42, run instnamer. llvm-svn: 140634
-
Bill Wendling authored
split landingpad instructions into a PHI node. PR11016 llvm-svn: 140592
-
Andrew Trick authored
Disabling aggressive LSR saves compilation time, and with the new indvars behavior usually improves performance. llvm-svn: 140590
-
Andrew Trick authored
llvm-svn: 140583
-
Andrew Trick authored
The minor bug heuristic was noticed by inspection. I added the isLoser/isValid helpers because they will become more important with subsequent checkins. llvm-svn: 140580
-
- Sep 24, 2011
-
-
Andrew Trick authored
No test case. Noticed by inspection and I doubt it ever affects the outcome of the overall heuristic, let alone final codegen. llvm-svn: 140431
-
- Sep 22, 2011
-
-
Eli Friedman authored
llvm-svn: 140327
-
- Sep 21, 2011
-
-
Eli Friedman authored
Make sure IPSCCP never marks a tracked call as overdefined in SCCPSolver::ResolvedUndefsIn. If we do, we can end up in a situation where a function is resolved to return a constant, but the caller is marked overdefined, which confuses the code later. <rdar://problem/9956541> (again). llvm-svn: 140210
-
- Sep 15, 2011
-
-
Andrew Trick authored
llvm-svn: 139842
-
- Sep 14, 2011
-
-
Dan Gohman authored
which could theoretically throw. llvm-svn: 139710
-
Dan Gohman authored
in memory relevant to the optimizer. rdar://10050579. llvm-svn: 139708
-
- Sep 13, 2011
-
-
Andrew Trick authored
llvm-svn: 139583
-
Andrew Trick authored
llvm-svn: 139579
-
Andrew Trick authored
llvm-svn: 139574
-
Eli Friedman authored
llvm-svn: 139571
-
Eli Friedman authored
llvm-svn: 139565
-
- Sep 12, 2011
-
-
Eli Friedman authored
No tests; these changes aren't really interesting in the sense that the logic is the same for volatile and atomic. I believe this completes all of the changes necessary for the optimizer to handle loads and stores correctly. I'm going to try and come up with some additional testing, though. llvm-svn: 139533
-
Andrew Trick authored
llvm-svn: 139517
-
- Sep 10, 2011
-
-
Andrew Trick authored
better. Don't immediately give up when an add operation can't be trivially sign/zero-extended within a loop. If it has NSW/NUW flags, generate a new expression with sign extended (non-recurrent) operand. As before, if SCEV says that all sign extends are loop invariant, then we can widen the operation. llvm-svn: 139453
-
- Sep 09, 2011
-
-
Andrew Trick authored
llvm-svn: 139375
-
- Sep 06, 2011
-
-
Andrew Trick authored
llvm-svn: 139169
-
Devang Patel authored
llvm-svn: 139156
-
Owen Anderson authored
Try again at r138809 (make DSE more aggressive in removing dead stores at the end of a function), now with less deleting stores before memcpy's. llvm-svn: 139150
-
- Sep 04, 2011
-
-
Bill Wendling authored
Use Duncan's patch to delete the instructions in reverse order (minus the landingpad and terminator). llvm-svn: 139090
-
- Sep 02, 2011
-
-
Bill Wendling authored
llvm-svn: 139023
-
Andrew Trick authored
This changes loop unrolling to use the same mechanism for trip count computation as indvars. This is a stronger check that tends to unroll more loops. A very common side-effect is that many single iteration loops will be removed sooner. The real goal was simply to remove dependence on canonical IVs. x86 is break even. ARM performance changes to expect (+ is good): External/SPEC/CFP2000/183.equake/183.equake +13% SingleSource/Benchmarks/Dhrystone/fldry +21% MultiSource/Applications/spiff/spiff +3% SingleSource/Benchmarks/Stanford/Puzzle -14% The Puzzle regression is actually an improvement in loop optimization that defeats GVN: rdar://problem/10065079. llvm-svn: 139009
-
Jakub Staszak authored
will be valid. This fixes PR10820. llvm-svn: 139005
-
- Sep 01, 2011
-
-
Bill Wendling authored
Duncan noticed this! llvm-svn: 138967
-
Eli Friedman authored
Fix an issue with the IR sink pass found by inspection. (I'm not sure anyone is actually using this, but might as well fix it since I found the issue.) llvm-svn: 138965
-
- Aug 31, 2011
-
-
Bill Wendling authored
The landingpad instruction is required in the landing pad block. Because we're not deleting terminating instructions, the invoke may still jump to here (see Transforms/SCCP/2004-11-16-DeadInvoke.ll). Remove all uses of the landingpad instruction, but keep it around until code-gen can remove the basic block. llvm-svn: 138890
-
Rafael Espindola authored
ssa, so it has to be run really early in the pipeline. Any replacement should probably use the SSAUpdater. llvm-svn: 138841
-
- Aug 30, 2011
-
-
Owen Anderson authored
llvm-svn: 138829
-
Owen Anderson authored
When walking backwards to eliminate final stores to allocas at the end of a function, encountering an unrelated store should not cause us to give up like encountering a load does. llvm-svn: 138809
-
- Aug 26, 2011
-
-
Bill Wendling authored
llvm-svn: 138651
-
- Aug 25, 2011
-
-
Bill Wendling authored
proper function to do it. llvm-svn: 138550
-