- Nov 16, 2011
-
-
Nick Lewycky authored
looking at the size of the pointee. Fixes PR11390! llvm-svn: 144773
-
- Nov 10, 2011
-
-
Pete Cooper authored
Size of data being pointed to wasn't always being checked so some small writes were killing big writes Fixes <rdar://problem/10426753> llvm-svn: 144312
-
Pete Cooper authored
Currently checks alignment and killing stores on a power of 2 boundary as this is likely to trim the size of the earlier store without breaking large vector stores into scalar ones. Fixes <rdar://problem/10140300> llvm-svn: 144239
-
- Nov 05, 2011
-
-
Nick Lewycky authored
llvm-svn: 143808
-
- Nov 04, 2011
-
-
Daniel Dunbar authored
the end of it is dead.", which appears to break bootstrapping LLVM. llvm-svn: 143668
-
- Nov 03, 2011
-
-
Pete Cooper authored
Only currently done if the later store is writing to a power of 2 address or has the same alignment as the earlier store as then its likely to not break up large stores into smaller ones Fixes <rdar://problem/10140300> llvm-svn: 143630
-
- Oct 22, 2011
-
-
Nick Lewycky authored
elimination on them too. llvm-svn: 142735
-
- Oct 14, 2011
-
-
Eli Friedman authored
Enhance the memdep interface so that users can tell the difference between a dependency which cannot be calculated and a path reaching the entry point of the function. This patch introduces isNonFuncLocal, which replaces isUnknown in some cases. Patch by Xiaoyi Guo. llvm-svn: 141896
-
- Sep 13, 2011
-
-
Eli Friedman authored
llvm-svn: 139571
-
- Sep 06, 2011
-
-
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
-
- 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 18, 2011
-
-
Eli Friedman authored
llvm-svn: 137888
-
- Jul 27, 2011
-
-
Eli Friedman authored
llvm-svn: 136205
-
- Jul 18, 2011
-
-
Chris Lattner authored
llvm-svn: 135375
-
- Jun 15, 2011
-
-
Eli Friedman authored
Add "unknown" results for memdep, which mean "I don't know whether a dependence for the given instruction exists in the given block". This cleans up all the existing hacks in memdep which represent this concept by returning clobber with various unrelated instructions. llvm-svn: 133031
-
- Apr 15, 2011
-
-
Chris Lattner authored
Luis Felipe Strano Moraes! llvm-svn: 129558
-
- Mar 30, 2011
-
-
Bill Wendling authored
that one of the numbers is signed while the other is unsigned. This could lead to a wrong result when the signed was promoted to an unsigned int. * Add the data layout line to the testcase so that it will test the appropriate thing. Patch by David Terei! llvm-svn: 128577
-
- Mar 29, 2011
-
-
Benjamin Kramer authored
Fixes PR9569 and will hopefully make selfhost on ASLR-enabled systems more deterministic. llvm-svn: 128482
-
- Mar 26, 2011
-
-
Bill Wendling authored
llvm-svn: 128333
-
Bill Wendling authored
There are two ways that a later store can comletely overlap a previous store: 1. They both start at the same offset, but the earlier store's size is <= the later's size, or 2. The earlier store's offset is > the later's offset, but it's offset + size doesn't extend past the later's offset + size. llvm-svn: 128332
-
Bill Wendling authored
completely overlaps a previous store, thus mistakenly deleting that store. Check for this condition. llvm-svn: 128319
-
- Jan 24, 2011
-
-
Dan Gohman authored
with BasicAA's DecomposeGEPExpression, which recently began using a TargetData. This fixes PR8968, though the testcase is awkward to reduce. Also, update several off GetUnderlyingObject's users which happen to have a TargetData handy to pass it in. llvm-svn: 124134
-
- Jan 18, 2011
-
-
Cameron Zwarich authored
dominance and post-dominance frontiers. llvm-svn: 123725
-
- Dec 15, 2010
-
-
Dan Gohman authored
function so that it can live in Analysis instead of VMCore. llvm-svn: 121885
-
- Dec 06, 2010
-
-
Chris Lattner authored
llvm-svn: 121040
-
Chris Lattner authored
llvm-svn: 121038
-
Chris Lattner authored
memcpy's like: memcpy(A, B) memcpy(A, C) we cannot delete the first memcpy as dead if A and C might be aliases. If so, we actually get: memcpy(A, B) memcpy(A, A) which is not correct to transform into: memcpy(A, A) This patch was heavily influenced by Jakub Staszak's patch in PR8728, thanks Jakub! llvm-svn: 120974
-
- Dec 01, 2010
-
-
Chris Lattner authored
llvm-svn: 120498
-
Chris Lattner authored
may-aliasing stores that partially overlap with different base pointers. This implements PR6043 and the non-variable part of PR8657 llvm-svn: 120485
-
- Nov 30, 2010
-
-
Chris Lattner authored
llvm-svn: 120471
-
Chris Lattner authored
the code. We now get accurate sizes on Loads, though it surely doesn't matter in practice. llvm-svn: 120469
-
Chris Lattner authored
1. if the underlying pointer passed in can be resolved to any argument or alloca, then we don't need to scan. Previously we would only avoid the scan if the alloca or byval was actually considered dead. 2. The dead store processing code is itself completely dead and didn't handle volatile stores right anyway, so delete it. This allows simplifying the interface to RemoveAccessedObjects. llvm-svn: 120467
-
Chris Lattner authored
made sense to me. We now have a set of dead stack objects, and they become live when loaded. Fix a theoretical problem where we'd pass in the wrong pointer to the alias query. llvm-svn: 120465
-
Chris Lattner authored
If the call might read all the allocas, stop scanning early. Convert a vector to smallvector, shrink SmallPtrSet to 16 instead of 64 to avoid crazy linear scans. llvm-svn: 120463
-
Chris Lattner authored
llvm-svn: 120454
-
Chris Lattner authored
AA and MD pass info instead of using getAnalysis<> all over. llvm-svn: 120453
-
Chris Lattner authored
llvm-svn: 120452
-
Chris Lattner authored
now that DSE hacks on them. This fixes a regression I introduced, by generalizing DSE to hack on transfers. llvm-svn: 120445
-
Chris Lattner authored
about pairs of AA::Location's instead of looking for MemDep's "Def" predicate. This is more powerful and general, handling memset/memcpy/store all uniformly, and implementing PR8701 and probably obsoleting parts of memcpyoptimizer. This also fixes an obscure bug with init.trampoline and i8 stores, but I'm not surprised it hasn't been hit yet. Enhancing init.trampoline to carry the size that it stores would allow DSE to be much more aggressive about optimizing them. llvm-svn: 120406
-