History log of /external/llvm/lib/Analysis/AliasAnalysis.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
81e480463d8bb57776d03cebfd083762909023f1 27-Jul-2013 Nick Lewycky <nicholas@mxc.ca> Reimplement isPotentiallyReachable to make nocapture deduction much stronger.
Adds unit tests for it too.

Split BasicBlockUtils into an analysis-half and a transforms-half, and put the
analysis bits into a new Analysis/CFG.{h,cpp}. Promote isPotentiallyReachable
into llvm::isPotentiallyReachable and move it into Analysis/CFG.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
717b3f02ffea4d093e775c3ed3ceac08991dbca9 18-Jul-2013 Nick Lewycky <nicholas@mxc.ca> Give 'hasPath' a longer but clearer name 'isPotentiallyReachable'. Also expand
the comment. No functionality change. This change broken out of
http://llvm-reviews.chandlerc.com/D996 .


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
37ade2b8015d86e73c62ab48a2ce5f0ce10de708 07-Jul-2013 Nick Lewycky <nicholas@mxc.ca> Eliminate trivial redundant loads across nocapture+readonly calls to uncaptured
pointer arguments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
9f5de6dadcdb9922ad8c8135a29e4abccec11671 28-May-2013 Michael Kuperstein <michael.m.kuperstein@intel.com> Make BasicAliasAnalysis recognize the fact a noalias argument cannot alias another argument, even if the other argument is not itself marked noalias.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
de0eb19248f3053c07a5b1dad9c47b8435458337 31-Jan-2013 Dan Gohman <dan433584@gmail.com> Move isKnownNonNull out of AliasAnalysis.h and into ValueTracking.cpp since
it isn't really an AliasAnalysis concept, and ValueTracking has similar things
that it could plausibly share code with some day.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
c55bd47105ef8e362cfb2a2c97ee3e23145aca4d 04-Jan-2013 Manman Ren <mren@apple.com> Memory Dependence Analysis: fix a miscompile that uses DT to approxmiate the
reachablity.

We conservatively approximate the reachability analysis by saying it is not
reachable if there is a single path starting from "From" and the path does not
reach "To".

rdar://12801584


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
0b8c9a80f20772c3793201ab5b251d3520b9cea3 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.

There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.

The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.

I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).

I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
034b94b17006f51722886b0f2283fb6fb19aca1f 19-Dec-2012 Bill Wendling <isanbard@gmail.com> Rename the 'Attributes' class to 'Attribute'. It's going to represent a single attribute in the future.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
3e2d76c946ba753c2b11af192a52e25b6f9b46ff 09-Oct-2012 Bill Wendling <isanbard@gmail.com> Use the attribute enums to query if a parameter has an attribute.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
3574eca1b02600bac4e625297f4ecf745f4c4f32 08-Oct-2012 Micah Villmow <villmow@gmail.com> Move TargetData to DataLayout.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
1f9855a814fd61207d7fd4586d97c467fa85db1c 04-Oct-2012 Bill Wendling <isanbard@gmail.com> Use method to query for NoAlias attribute.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
8e0d1c03ca7fd86e6879b4e37d0d7f0e982feef6 29-Aug-2012 Benjamin Kramer <benny.kra@googlemail.com> Make MemoryBuiltins aware of TargetLibraryInfo.

This disables malloc-specific optimization when -fno-builtin (or -ffreestanding)
is specified. This has been a problem for a long time but became more severe
with the recent memory builtin improvements.

Since the memory builtin functions are used everywhere, this required passing
TLI in many places. This means that functions that now have an optional TLI
argument, like RecursivelyDeleteTriviallyDeadFunctions, won't remove dead
mallocs anymore if the TLI argument is missing. I've updated most passes to do
the right thing.

Fixes PR13694 and probably others.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
3a884f5c17ac32e34e7e62b4602a0d73eeda1ce8 14-May-2012 Chad Rosier <mcrosier@apple.com> Move the capture analysis from MemoryDependencyAnalysis to a more general place
so that it can be reused in MemCpyOptimizer. This analysis is needed to remove
an unnecessary memcpy when returning a struct into a local variable.
rdar://11341081
PR12686


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
55f4ab84e567ac101d70f052771d1bc67a7560e3 25-Feb-2012 Nick Lewycky <nicholas@mxc.ca> Move isKnownNonNull from private implementation detail of BasicAA to a public
function that others can use, next to llvm::isIdentifiedObject.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
46cb5afdcd031c371c78201fb34291d9d48b2ee4 26-Sep-2011 Eli Friedman <eli.friedman@gmail.com> Enhance alias analysis for atomic instructions a bit. Upgrade a couple alias-analysis tests to the new atomic instructions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
667ccf231b57857ea9e36f1d93bd895242d58284 15-Aug-2011 Eli Friedman <eli.friedman@gmail.com> Misc analysis passes that need to be aware of atomic load/store.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137650 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e 18-Jul-2011 Chris Lattner <sabre@nondot.org> land David Blaikie's patch to de-constify Type, with a few tweaks.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
bddc1ca18a8ca23f6f145d2f5d006fa07e72a870 27-Apr-2011 Dan Gohman <gohman@apple.com> When analyzing functions known to only access argument pointees,
only check arguments with pointer types. Update the documentation
of IntrReadArgMem reflect this.

While here, add support for TBAA tags on intrinsic calls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
ab6acc6ecdc4585a55059e36d81481d1c26d3ff9 03-Jan-2011 Owen Anderson <resistor@mac.com> Stub out a new updating interface to AliasAnalysis, allowing stateful analyses to be informed when
a pointer value has potentially become escaping. Implementations can choose to either fall back to
conservative responses for that value, or may recompute their analysis to accomodate the change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
387f28aff41bae6a81311279b203a1281eaa443a 16-Dec-2010 Dan Gohman <gohman@apple.com> Make memcpyopt TBAA-aware.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121944 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
9dc9e81aa7412b329bbaf51a589a81475214802b 30-Nov-2010 Chris Lattner <sabre@nondot.org> getLocationForDest should work for memset as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
e90c5cb747631b315350e7ee7424048c7778bdf9 21-Nov-2010 Chris Lattner <sabre@nondot.org> add "getLocation" method to AliasAnalysis for getting the source and
destination location of a memcpy/memmove. I'm not clear about whether
TBAA works on these, so I'm leaving it out for now. Dan, please revisit
this when convenient.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119928 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
6d8eb156e6be727570b300bac7712f745a318c7d 11-Nov-2010 Dan Gohman <gohman@apple.com> Add helper functions for computing the Location of load, store,
and vaarg instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
68a6056dafd4913ce42606353ab1ff7208215ff2 10-Nov-2010 Dan Gohman <gohman@apple.com> Add a doesAccessArgPointees helper function, and update code to use
it, and to be consistent.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
42c31a70735e55bf82e66a9315c97d1821c9a798 10-Nov-2010 Dan Gohman <gohman@apple.com> Make ModRefBehavior a lattice. Use this to clean up AliasAnalysis
chaining and simplify FunctionAttrs' GetModRefBehavior logic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
c07661c1fa7fd646c1e904f2327ca7f0105fb322 09-Nov-2010 Dan Gohman <gohman@apple.com> Teach AliasAnalysis about AccessesArgumentsReadonly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
a25e5dbcc2371352386a01e3c1b8e76dd890272b 08-Nov-2010 Dan Gohman <gohman@apple.com> Extend the AliasAnalysis::pointsToConstantMemory interface to allow it
to optionally look for constant or local (alloca) memory.

Teach BasicAliasAnalysis::pointsToConstantMemory to look through Select
and Phi nodes, and to support looking for local memory.

Remove FunctionAttrs' PointsToLocalOrConstantMemory function, now that
AliasAnalysis knows all the tricks that it knew.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
c80cbf25402e4095fafbb15a2ab1b81cf6feda77 08-Nov-2010 Dan Gohman <gohman@apple.com> Delete getIntrinsicModRefBehavior. Clients can just use the normal
getModRefBehavior now, since it now understands intrinsics as well
as normal functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
e46a3881fc74652b23c3b31ee487e0ca9a6a268a 25-Oct-2010 Dan Gohman <gohman@apple.com> Update comments; BasicAA is no longer necessarily the end of the chain.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
852dda46251f50286b6d83425f39e20a5c7592e9 25-Oct-2010 Dan Gohman <gohman@apple.com> Reintroduce these asserts, now that BasicAA is a normal AliasAnalysis pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117266 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
db4708cf86cece22539ff022cc0601612dd02ead 20-Oct-2010 Dan Gohman <gohman@apple.com> Move NoAA out of BasicAliasAnalysis.cpp into its own file, now that
it doesn't have a special relationship with BasicAliasAnalysis
anymore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116876 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
3da848bbda62b25c12335998aaa44ab361f0bf15 20-Oct-2010 Dan Gohman <gohman@apple.com> Reapply r116831 and r116839, converting AliasAnalysis to use
uint64_t, plus fixes for places I missed before.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
1db839e73471a40309c2c10873b67c3b5b1b7a7b 19-Oct-2010 Dan Gohman <gohman@apple.com> Revert r116831 and r116839, which are breaking selfhost builds.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
4cccb87b4d766719cd8cdf98bed1d433d245adb0 19-Oct-2010 Dan Gohman <gohman@apple.com> Change AliasAnalysis and its clients to use uint64_t instead of unsigned
for representing object sizes, for consistency with other parts of LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
081c34b725980f995be9080eaec24cd3dfaaf065 19-Oct-2010 Owen Anderson <resistor@mac.com> Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which
must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize
the pass's dependencies.

Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the
CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
before parsing commandline arguments.

I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems
with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass
registration/creation, please send the testcase to me directly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
f3a925dc7a14ade42da442b49c304c064954c1d4 19-Oct-2010 Dan Gohman <gohman@apple.com> Consistently use AliasAnalysis::UnknownSize instead of hardcoding ~0u.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
325e2643559fcec8b0396dfa16e415cc86a22a09 13-Oct-2010 Owen Anderson <resistor@mac.com> Analysis groups need to initialize their default implementations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
ce665bd2e2b581ab0858d1afe359192bac96b868 08-Oct-2010 Owen Anderson <resistor@mac.com> Now with fewer extraneous semicolons!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
e9ef41a47d2ee637b6aed5d018c4d90019d987ac 06-Oct-2010 Owen Anderson <resistor@mac.com> Hide analysis group registration behind a macro, just like pass registration.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
b2143b6247901ae4eca2192ee134564c4f5f7853 14-Sep-2010 Dan Gohman <gohman@apple.com> Remove the experimental AliasAnalysis::getDependency interface, which
isn't a good level of abstraction for memdep. Instead, generalize
AliasAnalysis::alias and related interfaces with a new Location
class for describing a memory location. For now, this is the same
Pointer and Size as before, plus an additional field for a TBAA tag.

Also, introduce a fixed MD_tbaa metadata tag kind.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
c8ddbdabb697b20b948c1a56af6062f26691532a 09-Sep-2010 Dan Gohman <gohman@apple.com> Extend the getDependence query with support for PHI translation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
65924111bf648db8f20599f485be918c7aa1e7ef 08-Sep-2010 Dan Gohman <gohman@apple.com> Add a new experimental generalized dependence query interface to
AliasAnalysis, and some code for implementing the new query on top of
existing implementations by making standard alias and getModRefInfo
queries.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
e26a7b5e21a49543a727b1b2524a934e73c89772 06-Aug-2010 Dan Gohman <gohman@apple.com> Implement a proper getModRefInfo for va_arg.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
b9db52dcbcf4279270eab972f3d560b4e5654260 06-Aug-2010 Dan Gohman <gohman@apple.com> Be more conservative in the face of volatile.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110456 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
9b8639c9bd98ae08d0fe3630e2d3421a9277564a 06-Aug-2010 Dan Gohman <gohman@apple.com> Fix a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110455 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
6ce9d8b0edaf7c59f5a7c52d506c2801004698f0 06-Aug-2010 Dan Gohman <gohman@apple.com> Move all the logic for function attributes and call attributes out of the
AliasAnalysis base class and into BasicAliasAnalyais. This avoids confusion
about where such logic is happening when there are other AliasAnalysis
implementations present.

Move the logic for translating two-callsite getModRefInfo queries into
other AliasAnalysis queries out of BasicAliasAnalysis and into the
AliasAnalysis base class, as it is useful for other AliasAnalysis
implementations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110421 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
0c3f3358df14dcf9b30448d9482b35fe9c657ec8 06-Aug-2010 Dan Gohman <gohman@apple.com> Yes, we can do better, but this is not the place for it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
a41af344c2964573318a77e2b43eafd4d3804003 04-Aug-2010 Dan Gohman <gohman@apple.com> Remove PointerAccessInfo, which nothing was using.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
79fca6fea87be7221843031870bbf2c9ae1fc555 03-Aug-2010 Dan Gohman <gohman@apple.com> Thread const correctness through a bunch of AliasAnalysis interfaces and
eliminate several const_casts.

Make CallSite implicitly convertible to ImmutableCallSite.

Rename the getModRefBehavior for intrinsic IDs to
getIntrinsicModRefBehavior to avoid overload ambiguity with CallSite,
which happens to be implicitly convertible to bool.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
14a498a48677eb1eaddd8329330df073224f9575 03-Aug-2010 Dan Gohman <gohman@apple.com> Make AliasAnalysis::getModRefInfo conservative in the face of volatility.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
9e86f4364b912ae743490ba01d6989acfd12c046 07-Jul-2010 Dan Gohman <gohman@apple.com> Remove interprocedural-basic-aa and associated code. The AliasAnalysis
interface needs implementations to be consistent, so any code which
wants to support different semantics must use a different interface.
It's not currently worthwhile to add a new interface for this new
concept.

Document that AliasAnalysis doesn't support cross-function queries.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
6be2bd516a3022721480f8fee6986617baf0944f 29-Jun-2010 Dan Gohman <gohman@apple.com> Add an Intraprocedural form of BasicAliasAnalysis, which aims to
properly handles instructions and arguments defined in different
functions, or across recursive function iterations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
7c422ac216fe39fc9c402a704cf296cca9dc5b22 06-Jan-2010 Duncan Sands <baldrick@free.fr> Partially address a README by having functionattrs consider calls to
memcpy, memset and other intrinsics that only access their arguments
to be readnone if the intrinsic's arguments all point to local memory.
This improves the testcase in the README to readonly, but it could in
theory be made readnone, however this would involve more sophisticated
analysis that looks through the memcpy.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92829 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
403ac2ece33046c58b66fffa105184f44fa4527e 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89665 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
66e08cf79a052dd75bf6fa2f94abd4c0a18cb019 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
7b929dad59785f62a66f7c58615082f98441e95e 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
5753a4a0033da4add45f2e9930a4e1159d92a869 27-Aug-2009 Dan Gohman <gohman@apple.com> Global Aliases are not identifiable objects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
fc2a3ed0c9e32cf7edaf5030fa0972b916cc5f0b 25-Jul-2009 Dan Gohman <gohman@apple.com> Make AliasAnalysis and related classes use
getAnalysisIfAvailable<TargetData>().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77028 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
d869b3847f1dee78e1e4e1ed3cb41bd3ab0a079c 14-Feb-2009 Duncan Sands <baldrick@free.fr> Generalize some alias analysis logic from atomic
intrinsics to any IntrWriteArgMem intrinsics.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
ddd8c450ece6a3c637441992852193a6c5b2fed6 13-Feb-2009 Duncan Sands <baldrick@free.fr> If a function only reads memory, then we know that...
it only reads memory! The other change has no
functional effect, it just seems more logical to
go in order of decreasing knowledge.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
d9289a54cdce925fb189c5558f694a241b6e6d04 06-Feb-2009 Owen Anderson <resistor@mac.com> Fix a crasher: we need to check that the function is non-null before using it!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
e79422096ea5319a365d160693d0957a2a4df75e 06-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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
fe9388ccb4d2449e8e6a62053479a0ba74ae0b2d 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63718 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
cd89525434810af74d2d3f882f0e0ac5c677e341 03-Feb-2009 Owen Anderson <resistor@mac.com> Teach AliasAnalysis that a bunch of the atomic intrinsics only dereference their arguments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
a5f81bba4ab18d6129774d4d67495f14b6f64375 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 file. Thanks to
Chris for suggeseting this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63589 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
5a56bf631eef695b04bbd306b53d6094f7616b5e 30-May-2008 Dan Gohman <gohman@apple.com> Fix a copy+paste error in a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51717 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
844731a7f1909f55935e3514c9e713a62d67662e 13-May-2008 Dan Gohman <gohman@apple.com> Clean up the use of static and anonymous namespaces. This turned up
several things that were neither in an anonymous namespace nor static
but not intended to be global.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
4ee451de366474b9c228b4e5fa573795a715216d 29-Dec-2007 Chris Lattner <sabre@nondot.org> Remove attribution from file headers, per discussion on llvmdev.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
7915cbee4d6ecc8bc2daa9fb44833a134a25016b 12-Dec-2007 Duncan Sands <baldrick@free.fr> Revert r44626, which turned off the use of readonly
and readnone for functions with bodies because it
broke llvm-gcc-4.2 bootstrap. It turns out that,
because of LLVM's array_ref hack, gcc was computing
pure/const attributes wrong (now fixed by turning
off the gcc ipa-pure-const pass).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
5d84afdc836fa28d840449108206e850617a2a15 05-Dec-2007 Duncan Sands <baldrick@free.fr> Commit 44487 broke bootstrap of llvm-gcc-4.2. It is
not yet clear why, but in the meantime work around the
problem by making less use of readnone/readonly info.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
a3355ffb3d30d19d226bbb75707991c60f236e37 03-Dec-2007 Duncan Sands <baldrick@free.fr> Rather than having special rules like "intrinsics cannot
throw exceptions", just mark intrinsics with the nounwind
attribute. Likewise, mark intrinsics as readnone/readonly
and get rid of special aliasing logic (which didn't use
anything more than this anyway).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
dff6710717b159f089c76a07eda074eb6347eb92 01-Dec-2007 Duncan Sands <baldrick@free.fr> Integrate the readonly/readnone logic more deeply
into alias analysis. This meant updating the API
which now has versions of the getModRefBehavior,
doesNotAccessMemory and onlyReadsMemory methods
which take a callsite parameter. These should be
used unless the callsite is not known, since in
general they can do a better job than the versions
that take a function. Also, users should no longer
call the version of getModRefBehavior that takes
both a function and a callsite. To reduce the
chance of misuse it is now protected.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44487 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
514ab348fddcdffa8367685dc608b2f8d5de986d 01-Nov-2007 Duncan Sands <baldrick@free.fr> Executive summary: getTypeSize -> getTypeStoreSize / getABITypeSize.
The meaning of getTypeSize was not clear - clarifying it is important
now that we have x86 long double and arbitrary precision integers.
The issue with long double is that it requires 80 bits, and this is
not a multiple of its alignment. This gives a primitive type for
which getTypeSize differed from getABITypeSize. For arbitrary precision
integers it is even worse: there is the minimum number of bits needed to
hold the type (eg: 36 for an i36), the maximum number of bits that will
be overwriten when storing the type (40 bits for i36) and the ABI size
(i.e. the storage size rounded up to a multiple of the alignment; 64 bits
for i36).

This patch removes getTypeSize (not really - it is still there but
deprecated to allow for a gradual transition). Instead there is:

(1) getTypeSizeInBits - a number of bits that suffices to hold all
values of the type. For a primitive type, this is the minimum number
of bits. For an i36 this is 36 bits. For x86 long double it is 80.
This corresponds to gcc's TYPE_PRECISION.

(2) getTypeStoreSizeInBits - the maximum number of bits that is
written when storing the type (or read when reading it). For an
i36 this is 40 bits, for an x86 long double it is 80 bits. This
is the size alias analysis is interested in (getTypeStoreSize
returns the number of bytes). There doesn't seem to be anything
corresponding to this in gcc.

(3) getABITypeSizeInBits - this is getTypeStoreSizeInBits rounded
up to a multiple of the alignment. For an i36 this is 64, for an
x86 long double this is 96 or 128 depending on the OS. This is the
spacing between consecutive elements when you form an array out of
this type (getABITypeSize returns the number of bytes). This is
TYPE_SIZE in gcc.

Since successive elements in a SequentialType (arrays, pointers
and vectors) need to be aligned, the spacing between them will be
given by getABITypeSize. This means that the size of an array
is the length times the getABITypeSize. It also means that GEP
computations need to use getABITypeSize when computing offsets.
Furthermore, if an alloca allocates several elements at once then
these too need to be aligned, so the size of the alloca has to be
the number of elements multiplied by getABITypeSize. Logically
speaking this doesn't have to be the case when allocating just
one element, but it is simpler to also use getABITypeSize in this
case. So alloca's and mallocs should use getABITypeSize. Finally,
since gcc's only notion of size is that given by getABITypeSize, if
you want to output assembler etc the same as gcc then getABITypeSize
is the size you want.

Since a store will overwrite no more than getTypeStoreSize bytes,
and a read will read no more than that many bytes, this is the
notion of size appropriate for alias analysis calculations.

In this patch I have corrected all type size uses except some of
those in ScalarReplAggregates, lib/Codegen, lib/Target (the hard
cases). I will get around to auditing these too at some point,
but I could do with some help.

Finally, I made one change which I think wise but others might
consider pointless and suboptimal: in an unpacked struct the
amount of space allocated for a field is now given by the ABI
size rather than getTypeStoreSize. I did this because every
other place that reserves memory for a type (eg: alloca) now
uses getABITypeSize, and I didn't want to make an exception
for unpacked structs, i.e. I did it to make things more uniform.
This only effects structs containing long doubles and arbitrary
precision integers. If someone wants to pack these types more
tightly they can always use a packed struct.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
1997473cf72957d0e70322e2fe6fe2ab141c58a6 03-May-2007 Devang Patel <dpatel@apple.com> Drop 'const'


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
3e15bf33e024b9df9e89351a165acfdb1dde51ed 02-May-2007 Devang Patel <dpatel@apple.com> Use 'static const char' instead of 'static const int'.
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
c718288f4939258a51ec5ae0c5be7b1a05eb6898 02-May-2007 Lauro Ramos Venancio <lauro.venancio@gmail.com> Fix build error.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
794fd75c67a2cdc128d67342c6d88a504d186896 01-May-2007 Devang Patel <dpatel@apple.com> Do not use typeinfo to identify pass in pass manager.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
0cb83fcab50c5c7ce1f4d04d2b9ffb878a5a642c 17-Nov-2006 Bill Wendling <isanbard@gmail.com> Removed unneeded <iostream> #include.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
4f1bd9e9963239c119db70070db1d68286b3de7e 08-Jun-2006 Reid Spencer <rspencer@reidspencer.com> For PR780:
1. Fix the macros in IncludeFile.h to put everything in the llvm namespace
2. Replace the previous explicit mechanism in all the .h and .cpp files
with the macros in IncludeFile.h
This gets us a consistent mechanism throughout LLVM for ensuring linkage.
Next step is to make sure its used in enough places.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
6df60a9effe4d20a48cfd9d105c0ab3c5dc3e690 07-Jun-2006 Reid Spencer <rspencer@reidspencer.com> For PR780:
Break the "IncludeFile" mechanism into its own header file and adjust other
files accordingly. Use this facility for the IntrinsicInst problem which
was the subject of PR800.
More to follow on this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
192913e281a0e9b97275fa1b84da96b02397323e 01-Jun-2006 Reid Spencer <rspencer@reidspencer.com> Change from using a stub function to a stub variable for passing to the
IncludeFile hack to ensure linkage of analysis passes. This works around
some -pedantic warnings about assigning an object to a function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
2b37d7cf28b1382420b5e4007042feeb66d21ac8 21-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Remove trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
8cfd24df54025fcc56ce3707f1223958b9204813 24-Mar-2005 Chris Lattner <sabre@nondot.org> Make this more efficient by only making one virtual method call.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
d433bde071c6056295db73944df348b843c1989c 23-Mar-2005 Chris Lattner <sabre@nondot.org> Make this a bit more aggressive


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20792 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
5b3a4553c1da7e417a240379e2f510c77532c5c1 17-Mar-2005 Chris Lattner <sabre@nondot.org> Fix the missing symbols problem Bill was hitting. Patch contributed by
Bill Wendling!!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
0af024c5d00c2a2d0e35ba33f4aaf4ed3fadfae2 15-Dec-2004 Chris Lattner <sabre@nondot.org> Adjust to new alias analysis interfaces


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
2c20ef506f65f649fd9fb8823f8c7b0086b1ba5c 08-Dec-2004 Chris Lattner <sabre@nondot.org> Properly extern this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
47b14a4a6a455c7be169cfd312fcbe796f0ad426 29-Jul-2004 Misha Brukman <brukman+llvm@gmail.com> Fix #includes of i*.h => Instructions.h as per PR403.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
954da37bb492b519f5c31dc360f2a142567e08b4 04-Jul-2004 Reid Spencer <rspencer@reidspencer.com> Add #include <iostream> since Value.h does not #include it any more.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
5a24d70d99cc76be190ed6ebe37d09585046ddc3 23-May-2004 Chris Lattner <sabre@nondot.org> Changes to work with the changes to the AliasAnalysis interface. The -no-aa
class is now in the BasicAliasAnalysis.cpp file


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
992860c44ed8d8b82c6b7fde6645123772965c65 15-Mar-2004 Chris Lattner <sabre@nondot.org> Deinline some virtual methods, provide better mod/ref answers through the
use of the boolean queries


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
f4d904d7e326c9cbed497ca681b6270170fd2020 30-Jan-2004 Chris Lattner <sabre@nondot.org> Improve mod/ref information based on the pointsToConstantMemory method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
d0fde30ce850b78371fd1386338350591f9ff494 11-Nov-2003 Brian Gaeke <gaeke@uiuc.edu> Put all LLVM code into the llvm namespace, as per bug 109.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
b576c94c15af9a440f69d9d03c2afead7971118c 20-Oct-2003 John Criswell <criswell@uiuc.edu> Added LLVM project notice to the top of every C++ source file.
Header files will be on the way.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
8dcd17c938a11fe7b16592a70170cc850c45dcc1 26-Feb-2003 Chris Lattner <sabre@nondot.org> Add new -no-aa implementation


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
d501c13b7d6ce418b0144886dde16525d13f835a 26-Feb-2003 Chris Lattner <sabre@nondot.org> Move BasicAA pass out to it's own header file


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
14ac877e0a898ab46eeba1b0b72b8e5a9918179f 26-Feb-2003 Chris Lattner <sabre@nondot.org> - Checkin of the alias analysis work:
* Takes into account the size of the memory reference to determine aliasing.
* Expose mod/ref information in a more consistent way
* BasicAA can now disambiguate A[i][1] and A[j][2] for conservative request
sizes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
762d2f0897a453bab92800b7aaadb0872e98aabd 09-Feb-2003 Chris Lattner <sabre@nondot.org> Implement knowledge in BasicAA that &A->field != &A and (P+1) != P


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5519 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
44f340250e3648e4bab6623d1546a3f84f3b29ef 09-Feb-2003 Chris Lattner <sabre@nondot.org> - Fix BasicAA to correctly detect the non-aliasness of A[1] & A[2]


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
1dbd1b820f984a30e82ddbed70de45394bc6df3c 07-Feb-2003 Chris Lattner <sabre@nondot.org> Don't bother counting alias results, allow the AliasAnalysisCounter to do that.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
dc1ad196e1915e9dc6e3ba8271a0bdafd214e769 03-Feb-2003 Chris Lattner <sabre@nondot.org> Add statistics to basicAA pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5480 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
75310d59c979f2c281427fcc59709bb375a7379f 06-Nov-2002 Vikram S. Adve <vadve@cs.uiuc.edu> Make query operations non-const to allow demand-driven analyses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
a6299345ee306f219170d58acf8b4c7b7f54518b 08-Sep-2002 Chris Lattner <sabre@nondot.org> * Add capability to recognize alias properties of the following common cases:
- A[c1] cannot alias A[c2] where constants c1 != c2
- A[i] cannot alias B[j] if A & B are provably different arrays

This should help out array based codes. For example, from bzip2 from spec,
3 additional loads can be GCSE'd, and _21_ additional loads can be LICMd due
to this change.

In a test example from the Spec GAP benchmark (vecffe.c), this change allows
_52_ additional loads to be GCSE'd and _224_ additional LICM'd loads.

Not bad for such a simple change. Other testcases show no change at all
because they just don't use arrays. Not too suprising there.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
04b9025450830e45aefae8be4f2a3411dbeea237 29-Aug-2002 Chris Lattner <sabre@nondot.org> Remove unneeded #include


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
f9355f636b6a7d59993081766dd0481bd08f545d 23-Aug-2002 Chris Lattner <sabre@nondot.org> doxygenize comments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
22d8cd61436755a8bc15ff5dc660426ca1cb08d7 22-Aug-2002 Chris Lattner <sabre@nondot.org> Add missing #include


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp
53ad0edd361c724df623c082a8a37eaf762d1703 22-Aug-2002 Chris Lattner <sabre@nondot.org> Check-in new alias analysis infrastructure


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/AliasAnalysis.cpp