#
12dacdd3 |
| 26-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
teach basicaa that A[i] != A[i+1].
llvm-svn: 89951
|
#
7a5b56ac |
| 26-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
Change the other half of aliasGEP (which handles GEP differencing) to use DecomposeGEPExpression. This dramatically simplifies and shrinks the code by eliminating the horrible CheckGEPInstructions m
Change the other half of aliasGEP (which handles GEP differencing) to use DecomposeGEPExpression. This dramatically simplifies and shrinks the code by eliminating the horrible CheckGEPInstructions method, fixes a miscompilation (@test3) and makes the code more aggressive. In particular, we now handle the @test4 case, which is reduced from the SmallPtrSet constructor. Missing this caused us to emit a variable length memset instead of a fixed size one.
llvm-svn: 89922
show more ...
|
#
5341c967 |
| 26-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
Generalize DecomposeGEPExpression to exactly handle what Value::getUnderlyingObject does (when TD is around). This allows us to avoid calling DecomposeGEPExpression unless the ultimate alias check w
Generalize DecomposeGEPExpression to exactly handle what Value::getUnderlyingObject does (when TD is around). This allows us to avoid calling DecomposeGEPExpression unless the ultimate alias check we care about passes, speedup up BasicAA a bit.
llvm-svn: 89920
show more ...
|
#
89288994 |
| 26-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
Implement a new DecomposeGEPExpression method, which decomposes a GEP into a list of scaled offsets. Use this to eliminate some previous ad-hoc code which was subtly broken (it assumed all Constant*
Implement a new DecomposeGEPExpression method, which decomposes a GEP into a list of scaled offsets. Use this to eliminate some previous ad-hoc code which was subtly broken (it assumed all Constant*'s were non-zero, but strange constant express could be zero).
llvm-svn: 89915
show more ...
|
#
a99edbed |
| 26-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
Use GEPOperator more pervasively to simplify code.
llvm-svn: 89914
|
#
214ef9a4 |
| 23-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
fix comment, thanks all :)
llvm-svn: 89666
|
#
1e7b37eb |
| 23-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
use the new isNoAlias method to simplify some code, only do an escaping check if we have a non-constant pointer. Constant pointers can't be local.
llvm-svn: 89665
|
#
98e25326 |
| 23-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
whitespace cleanup, tidying
llvm-svn: 89664
|
#
84ed59ab |
| 23-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
speed up BasicAA a bit by implementing a long-standing TODO.
llvm-svn: 89663
|
#
a13c9d1a |
| 22-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
add fixme for dubious code. Duncan, what do you think?
llvm-svn: 89602
|
#
db1e9f12 |
| 22-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
remove a silly condition that doesn't make a lot of sense anymore.
llvm-svn: 89601
|
#
d6a49ad2 |
| 22-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
reduce indentation, no functionality change.
llvm-svn: 89600
|
#
88874ec6 |
| 22-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
Remove the AliasAnalysis::getMustAliases method, which is dead.
The hasNoModRefInfoForCalls isn't worth it as a filter because basicaa provides m/r info and everything chains to it, so remove it.
Remove the AliasAnalysis::getMustAliases method, which is dead.
The hasNoModRefInfoForCalls isn't worth it as a filter because basicaa provides m/r info and everything chains to it, so remove it.
llvm-svn: 89599
show more ...
|
#
94e61762 |
| 19-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Extend CaptureTracking to indicate when a value is never stored, even if it is not ultimately captured. Teach BasicAliasAnalysis that a local object address which does not escape and is never stored
Extend CaptureTracking to indicate when a value is never stored, even if it is not ultimately captured. Teach BasicAliasAnalysis that a local object address which does not escape and is never stored does not alias with a value resulting from a load.
llvm-svn: 89398
show more ...
|
#
c53e2ecf |
| 14-Nov-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Teach BasicAA that a constant expression can't alias memory provably not allocated until runtime (such as an alloca). Patch by Hans Wennborg!
llvm-svn: 88760
|
#
ccb4584e |
| 09-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Default-addressspace null pointers don't alias anything. This allows GVN to be more aggressive. Patch by Hans Wennborg! (with a comment added by me)
llvm-svn: 86582
|
#
46b5c642 |
| 06-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
remove a bunch of extraneous LLVMContext arguments from various APIs, addressing PR5325.
llvm-svn: 86231
|
#
f390e04a |
| 27-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Rename MallocFreeHelper as MemoryBuiltins
llvm-svn: 85286
|
#
762195bd |
| 26-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Rename MallocHelper as MallocFreeHelper, since it now also identifies calls to free()
llvm-svn: 85181
|
#
3b7ba5f3 |
| 26-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Teach BasicAA how to analyze Select instructions, and make it more aggressive on PHI instructions.
llvm-svn: 85158
|
#
974e12b2 |
| 25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove includes of Support/Compiler.h that are no longer needed after the VISIBILITY_HIDDEN removal.
llvm-svn: 85043
|
#
02d5f77d |
| 25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces. Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit
Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces. Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit.
llvm-svn: 85042
show more ...
|
Revision tags: llvmorg-2.6.0 |
|
#
8acf2956 |
| 23-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Remove AllocationInst. Since MallocInst went away, AllocaInst is the only subclass of AllocationInst, so it no longer is necessary.
llvm-svn: 84969
|
#
b2647b9e |
| 17-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
inline isGEP away.
llvm-svn: 84373
|
#
8ec25937 |
| 16-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
When checking aliases between phi sources and V2, we know the sources are not themselves phi nodes. However, V2 may be. Call aliasCheck with V2 first to potentially eliminate a std::swap call.
llvm-
When checking aliases between phi sources and V2, we know the sources are not themselves phi nodes. However, V2 may be. Call aliasCheck with V2 first to potentially eliminate a std::swap call.
llvm-svn: 84226
show more ...
|