History log of /llvm-project/llvm/lib/Analysis/BasicAliasAnalysis.cpp (Results 601 – 625 of 785)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 39f00cc1 06-Jul-2009 Owen Anderson <resistor@mac.com>

Thread LLVMContext through the constant folding APIs, which touches a lot of files.

llvm-svn: 74844


# e9454e8c 22-Jun-2009 Owen Anderson <resistor@mac.com>

Remove unneeded #include.

llvm-svn: 73911


# 776e4c8d 27-May-2009 Dan Gohman <gohman@apple.com>

Teach BasicAliasAnalysis to understand constant gep indices that fall
beyond their associated static array type.

I believe that this fixes a legitimate bug, because BasicAliasAnalysis
already has co

Teach BasicAliasAnalysis to understand constant gep indices that fall
beyond their associated static array type.

I believe that this fixes a legitimate bug, because BasicAliasAnalysis
already has code to check for this condition that works for non-constant
indices, however it was missing the case of constant indices. With this
change, it checks for both.

This fixes PR4267, and miscompiles of SPEC 188.ammp and 464.h264.href.

llvm-svn: 72451

show more ...


# af9eaa83 09-May-2009 Duncan Sands <baldrick@free.fr>

Rename PaddedSize to AllocSize, in the hope that this
will make it more obvious what it represents, and stop
it being confused with the StoreSize.

llvm-svn: 71349


Revision tags: llvmorg-2.5.0
# 73247d2e 14-Feb-2009 Duncan Sands <baldrick@free.fr>

Generalize some alias analysis logic from atomic
intrinsics to any IntrWriteArgMem intrinsics.

llvm-svn: 64551


# c60bd012 13-Feb-2009 Nick Lewycky <nicholas@mxc.ca>

BasicAA was making the assumption that a local allocation which hadn't escaped
couldn't ever be the return of call instruction. However, it's quite possible
that said local allocation is itself the r

BasicAA was making the assumption that a local allocation which hadn't escaped
couldn't ever be the return of call instruction. However, it's quite possible
that said local allocation is itself the return of a function call. That's
what malloc and calloc are for, actually.

llvm-svn: 64442

show more ...


# 98a3617f 05-Feb-2009 Owen Anderson <resistor@mac.com>

Refactor my previous change to maintain the distinction between AliasAnalysis and BasicAliasAnalysis. This involves some wider changes because it
folds away some never-used methods.

llvm-svn: 63900


# 1caf7fef 04-Feb-2009 Owen Anderson <resistor@mac.com>

Finish making AliasAnalysis aware of the fact that most atomic intrinsics only dereference their arguments, and enhance
BasicAA to make use of this fact when computing ModRef info.

llvm-svn: 63718


# fb306c0a 03-Feb-2009 Dan Gohman <gohman@apple.com>

Move isIdentifiedObject and isNoAliasCall into AliasAnalysis.cpp since
they are useful to analyses other than BasicAliasAnalysis.cpp. Include
the full comment for isIdentifiedObject in the header fil

Move isIdentifiedObject and isNoAliasCall into AliasAnalysis.cpp since
they are useful to analyses other than BasicAliasAnalysis.cpp. Include
the full comment for isIdentifiedObject in the header file. Thanks to
Chris for suggeseting this.

llvm-svn: 63589

show more ...


# 1ee0d41e 30-Jan-2009 Dan Gohman <gohman@apple.com>

Fix a post-RA scheduling dependency bug.

If a MachineInstr doesn't have a memoperand but has an opcode that
is known to load or store, assume its memory reference may alias
*anything*, including sta

Fix a post-RA scheduling dependency bug.

If a MachineInstr doesn't have a memoperand but has an opcode that
is known to load or store, assume its memory reference may alias
*anything*, including stack slots which the compiler completely
controls.

To partially compensate for this, teach the ScheduleDAG building
code to do basic getUnderlyingValue analysis. This greatly
reduces the number of instructions that require restrictive
dependencies. This code will need to be revisited when we start
doing real alias analysis, but it should suffice for now.

llvm-svn: 63370

show more ...


# e0aa0d67 18-Jan-2009 Duncan Sands <baldrick@free.fr>

BasicAliasAnalysis and FunctionAttrs were both
doing very similar pointer capture analysis.
Factor out the common logic. The new version
is from FunctionAttrs since it does a better
job than the ver

BasicAliasAnalysis and FunctionAttrs were both
doing very similar pointer capture analysis.
Factor out the common logic. The new version
is from FunctionAttrs since it does a better
job than the version in BasicAliasAnalysis

llvm-svn: 62461

show more ...


# 1b94d420 18-Jan-2009 Gabor Greif <ggreif@gmail.com>

add a comment

llvm-svn: 62436


# dc020f9c 12-Jan-2009 Duncan Sands <baldrick@free.fr>

Rename getABITypeSize to getTypePaddedSize, as
suggested by Chris.

llvm-svn: 62099


# 2089cd09 12-Jan-2009 Chris Lattner <sabre@nondot.org>

make tblgen autogenerate the nocapture intrinsics for
llvm.memcpy/memset/memmove. This allows removal of some
hackish code from basicaa.

llvm-svn: 62071


# 8d65f369 05-Jan-2009 Duncan Sands <baldrick@free.fr>

When checking if an Argument escapes, check if
the argument is marked nocapture - no need to
analyze the argument if the answer is already
known!

llvm-svn: 61753


# 2abb108f 19-Dec-2008 Nick Lewycky <nicholas@mxc.ca>

Resubmit support for the 'nocapture' attribute.

The problematic part of this patch is that we were out of attribute bits,
requiring some fancy bit hacking to make it fit (by shrinking alignment)
wit

Resubmit support for the 'nocapture' attribute.

The problematic part of this patch is that we were out of attribute bits,
requiring some fancy bit hacking to make it fit (by shrinking alignment)
without breaking existing users or the file format.

This change will require users to rebuild llvm-gcc to match llvm.

llvm-svn: 61239

show more ...


# a397baea 16-Dec-2008 Bill Wendling <isanbard@gmail.com>

Temporarily revert r61019, r61030, and r61040. These were breaking LLVM Release
builds.

llvm-svn: 61094


# e3401db1 15-Dec-2008 Chris Lattner <sabre@nondot.org>

Teach basicaa to use the nocapture attribute when possible. When the
intrinsics are properly marked nocapture, the fixme should be addressed.

llvm-svn: 61040


# 2e84a548 10-Dec-2008 Chris Lattner <sabre@nondot.org>

Allow basicaa to walk through geps with identical indices in
parallel, allowing it to decide that P/Q must alias if A/B
must alias in things like:
P = gep A, 0, i, 1
Q = gep B, 0, i, 1

This allow

Allow basicaa to walk through geps with identical indices in
parallel, allowing it to decide that P/Q must alias if A/B
must alias in things like:
P = gep A, 0, i, 1
Q = gep B, 0, i, 1

This allows GVN to delete 62 more instructions out of 403.gcc.

llvm-svn: 60820

show more ...


# 702e46ed 09-Dec-2008 Chris Lattner <sabre@nondot.org>

Teach BasicAA::getModRefInfo(CallSite, CallSite) some
tricks based on readnone/readonly functions.

Teach memdep to look past readonly calls when analyzing
deps for a readonly call. This allows eli

Teach BasicAA::getModRefInfo(CallSite, CallSite) some
tricks based on readnone/readonly functions.

Teach memdep to look past readonly calls when analyzing
deps for a readonly call. This allows elimination of a
few more calls from 403.gcc:

before:
63 gvn - Number of instructions PRE'd
153986 gvn - Number of instructions deleted
50069 gvn - Number of loads deleted

after:
63 gvn - Number of instructions PRE'd
153991 gvn - Number of instructions deleted
50069 gvn - Number of loads deleted

5 calls isn't much, but this adds plumbing for the next change.

llvm-svn: 60794

show more ...


# 714ffa36 08-Dec-2008 Duncan Sands <baldrick@free.fr>

Fix comment typo.

llvm-svn: 60697


# 2f9d8458 08-Dec-2008 Chris Lattner <sabre@nondot.org>

Some minor optimizations for isObjectSmallerThan.

llvm-svn: 60687


# d59572cb 24-Nov-2008 Nick Lewycky <nicholas@mxc.ca>

Seriously strengthen the guarantee offered by noalias on a function's return
value. It must now be as if the pointer were allocated and has not escaped to
the caller. Thanks to Dan Gohman for pointin

Seriously strengthen the guarantee offered by noalias on a function's return
value. It must now be as if the pointer were allocated and has not escaped to
the caller. Thanks to Dan Gohman for pointing out the error in the original
and helping devise this definition.

llvm-svn: 59940

show more ...


# f5ffcbcd 24-Nov-2008 Nick Lewycky <nicholas@mxc.ca>

Extend the 'noalias' attribute to function return values. This is intended to
indicate functions that allocate, such as operator new, or list::insert. The
actual definition is slightly less strict (f

Extend the 'noalias' attribute to function return values. This is intended to
indicate functions that allocate, such as operator new, or list::insert. The
actual definition is slightly less strict (for now).

No changes to the bitcode reader/writer, asm printer or verifier were needed.

llvm-svn: 59934

show more ...


Revision tags: llvmorg-2.4.0
# d65a4dae 01-Oct-2008 Duncan Sands <baldrick@free.fr>

Factorize code: remove variants of "strip off
pointer bitcasts and GEP's", and centralize the
logic in Value::getUnderlyingObject. The
difference with stripPointerCasts is that
stripPointerCasts onl

Factorize code: remove variants of "strip off
pointer bitcasts and GEP's", and centralize the
logic in Value::getUnderlyingObject. The
difference with stripPointerCasts is that
stripPointerCasts only strips GEPs if all
indices are zero, while getUnderlyingObject
strips GEPs no matter what the indices are.

llvm-svn: 56922

show more ...


1...<<21222324252627282930>>...32