- Jul 11, 2011
-
-
Jay Foad authored
llvm-svn: 134888
-
- Jul 09, 2011
-
-
Lang Hames authored
Added recognition for signed add/sub/mul with overflow intrinsics to GVN as per Chris and Frits suggestion. llvm-svn: 134777
-
- Jul 08, 2011
-
-
Lang Hames authored
Make GVN look through extractvalues for recognised intrinsics. GVN can then CSE ops that match values produced by the intrinsics. llvm-svn: 134677
-
- Jul 07, 2011
-
-
Devang Patel authored
llvm-svn: 134568
-
Devang Patel authored
llvm-svn: 134549
-
- Jul 06, 2011
-
-
Devang Patel authored
llvm-svn: 134538
-
Andrew Trick authored
careful about referencing values. llvm-svn: 134537
-
Andrew Trick authored
llvm-svn: 134530
-
Tobias Grosser authored
llvm-svn: 134521
-
Tobias Grosser authored
The promotion code lost any alignment information, when hoisting loads and stores out of the loop. This lead to incorrect aligned memory accesses. We now use the largest alignment we can prove to be correct. llvm-svn: 134520
-
Jakub Staszak authored
llvm-svn: 134516
-
- Jul 05, 2011
-
-
Devang Patel authored
llvm-svn: 134441
-
Andrew Trick authored
Putting back the helper that I removed on 7/1 to do this right. llvm-svn: 134423
-
- Jul 02, 2011
-
-
Andrew Trick authored
llvm-svn: 134306
-
- Jul 01, 2011
-
-
Nick Lewycky authored
llvm-svn: 134235
-
- Jun 30, 2011
-
-
Andrew Trick authored
llvm-svn: 134177
-
Andrew Trick authored
llvm-svn: 134124
-
Andrew Trick authored
llvm-svn: 134112
-
- Jun 29, 2011
-
-
Andrew Trick authored
mean they can be removed. llvm-svn: 134054
-
- Jun 28, 2011
-
-
Andrew Trick authored
llvm-svn: 134010
-
Andrew Trick authored
llvm-svn: 133992
-
Andrew Trick authored
llvm-svn: 133991
-
Andrew Trick authored
llvm-svn: 133988
-
Andrew Trick authored
evaluates all other IV exprs. llvm-svn: 133982
-
Andrew Trick authored
a bit more control over the order SCEVs are evaluated. llvm-svn: 133959
-
- Jun 27, 2011
-
-
Jakub Staszak authored
llvm-svn: 133946
-
Nick Lewycky authored
alloca that only holds a copy of a global and we're going to replace the users of the alloca with that global, just nuke the lifetime intrinsics. Part of PR10121. llvm-svn: 133905
-
- Jun 23, 2011
-
-
Jay Foad authored
-Wshorten-64-to-32 warning in Instructions.h. llvm-svn: 133708
-
Eric Christopher authored
"Reinstate r133435 and r133449 (reverted in r133499) now that the clang self-hosted build failure has been fixed (r133512)." Due to some additional warnings. llvm-svn: 133700
-
- Jun 22, 2011
-
-
Devang Patel authored
llvm-svn: 133636
-
- Jun 21, 2011
-
-
Andrew Trick authored
llvm-svn: 133518
-
Jay Foad authored
self-hosted build failure has been fixed (r133512). llvm-svn: 133513
-
Jay Foad authored
because it won't work after my phi operand changes, because the incoming blocks will no longer be Uses. llvm-svn: 133512
-
Andrew Trick authored
ops. This is a rewrite of the IV simplification algorithm used by -disable-iv-rewrite. To avoid perturbing the default mode, I temporarily split the driver and created SimplifyIVUsersNoRewrite. The idea is to avoid doing opcode/pattern matching inside IndVarSimplify. SCEV already does it. We want to optimize with the full generality of SCEV, but optimize def-use chains top down on-demand rather than rewriting the entire expression bottom-up. This was easy to do for operations that SCEV can prove are identity function. So we're now eliminating bitmasks and zero extends this way. A result of this rewrite is that indvars -disable-iv-rewrite no longer requires IVUsers. llvm-svn: 133502
-
Chad Rosier authored
llvm-svn: 133499
-
Dan Gohman authored
functions do not appear in the module. llvm-svn: 133478
-
- Jun 20, 2011
-
-
Jay Foad authored
Change PHINodes to store simple pointers to their incoming basic blocks, instead of full-blown Uses. Note that this loses an optimization in SplitCriticalEdge(), because we can no longer walk the use list of a BasicBlock to find phi nodes. See the comment I removed starting "However, the foreach loop is slow for blocks with lots of predecessors". Extend replaceAllUsesWith() on a BasicBlock to also update any phi nodes in the block's successors. This mimics what would have happened when PHINodes were proper Users of their incoming blocks. (Note that this only works if OldBB->replaceAllUsesWith(NewBB) is called when OldBB still has a terminator instruction, so it still has some successors.) llvm-svn: 133435
-
Jay Foad authored
Change various bits of code to make better use of the existing PHINode API, to insulate them from forthcoming changes in how PHINodes store their operands. llvm-svn: 133434
-
- Jun 18, 2011
-
-
Cameron Zwarich authored
type's bitwidth matches the (allocated) size of the alloca. This severely pessimizes vector scalar replacement when the only vector type being used is something like <3 x float> on x86 or ARM whose allocated size matches a <4 x float>. I hope to fix some of the flawed assumptions about allocated size throughout scalar replacement and reenable this in most cases. llvm-svn: 133338
-
Cameron Zwarich authored
alloca. Fixes part of <rdar://problem/9580800>. llvm-svn: 133336
-