History log of /external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cd81d94322a39503e4a3e87b6ee03d4fcb3465fb 21-Jul-2014 Stephen Hines <srhines@google.com> Update LLVM for rebase to r212749.

Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls

Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
74c996cbd12aa39e75990e3e694549bb1be90e4d 16-Nov-2013 Matt Arsenault <Matthew.Arsenault@amd.com> Use correct size for address space in BasicAA.

The tests just hit this with a different sized
address space since I haven't figured out how
to use this to break it.

I thought I committed this a long time ago,
and I'm not sure why missing this hasn't caused
any problems.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
69bd41dfe33f24414be281ba5e2204b7348c33ae 27-Oct-2013 Shuxin Yang <shuxin.llvm@gmail.com> Revert r193251 : Use address-taken to disambiguate global variable and indirect memops.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
8e3851a6eb9fe5fc30094c3a00d2b89c7cd68cbd 23-Oct-2013 Shuxin Yang <shuxin.llvm@gmail.com> Use address-taken to disambiguate global variable and indirect memops.

Major steps include:
1). introduces a not-addr-taken bit-field in GlobalVariable
2). GlobalOpt pass sets "not-address-taken" if it proves a global varirable
dosen't have its address taken.
3). AA use this info for disambiguation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
b060a46b0de75d6ab711b60d123ab42a9a6d7b3c 28-Sep-2013 Matt Arsenault <Matthew.Arsenault@amd.com> Use type helper functions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191574 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
394e5a9ee8ab5825e503b5b60faf41a22ffcea96 24-Aug-2013 Jakub Staszak <kubastaszak@gmail.com> Remove trailing spaces.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189173 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a0ec3f9b7b826b9b40b80199923b664bad808cce 14-Jul-2013 Craig Topper <craig.topper@gmail.com> Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
8e4df489d0e02e0fbdd00ed829e70e5f21998162 09-Apr-2013 Nadav Rotem <nrotem@apple.com> Revert r176408 and r176407 to address PR15540.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
742dbc1fc83f713e139a2745ebb34a97c11c43bd 26-Mar-2013 Arnold Schwaighofer <aschwaighofer@apple.com> BasicAA: Only query twice if the result of the more general query was MayAlias

This is a compile time optimization. Before the patch we would do two traversals
on each call to aliasGEP - one with a set size parameter one with UnknownSize.
We can do better by first checking the result of the alias query with
UnknownSize.
Only if this one returns MayAlias do we query a second time using size and type.

This recovers an about 7% compile time regression on spec/ammp.

radar://12349960

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
2bc689c8461dfbaa4ca9a9cc4ae5bc59cb007329 02-Mar-2013 Nuno Lopes <nunoplopes@sapo.pt> add getUnderlyingObjectSize()
this is similar to getObjectSize(), but doesnt subtract the offset
tweak the BasicAA code accordingly (per PR14988)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
d2eaf45af446ae0a4dd1e606ad6e16f0822f4405 28-Feb-2013 Shuxin Yang <shuxin.llvm@gmail.com> Fix a problem in alias analysis. It is about the misinterpretation of "Object".

This problem is exposed by r171325 which is already reverted. It is rather
hard to fabricate a testing case without it.

r171325 should *NOT* be resurrected as it has a potential problem although
this problem dosen't directly contribute to PR14988.

The bug is tracked by:
- rdar://13063553, and
- http://llvm.org/bugs/show_bug.cgi?id=14988

Thank Arnold for coming up a better solution to this problem. After
comparing this solution and my original proposal, I decided to ditch mine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
351ba145a7db32b457f118ecc4d873765ac2a16b 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Actually update the CMake and Makefile builds correctly, and update the
code that includes Intrinsics.gen directly.

This never showed up in my testing because the old Intrinsics.gen was
still kicking around in the make build system and was correct there. =[
Thankfully, some of the bots to clean rebuilds and that caught this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
2b475922e6169098606006a69d765160caa77848 11-Dec-2012 Arnold Schwaighofer <arnolds@codeaurora.org> Optimistically analyse Phi cycles

Analyse Phis under the starting assumption that they are NoAlias. Recursively
look at their inputs.
If they MayAlias/MustAlias there must be an input that makes them so.

Addresses bug 14351.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
c37f502d48f7eb34099bb60ece63400657fb180e 17-Nov-2012 Hal Finkel <hfinkel@anl.gov> Phi speculation improvement for BasicAA

This is a partial solution to PR14351. It removes some of the special
significance of the first incoming phi value in the phi aliasing checking logic
in BasicAA. In the context of a loop, the old logic assumes that the first
incoming value is the interesting one (meaning that it is the one that comes
from outside the loop), but this is often not the case. With this change, we
now test first the incoming value that comes from a block other than the parent
of the phi being tested.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
544533301e51e697abf7cc05979208d0ffc30973 05-Nov-2012 Richard Osborne <richard@xmos.com> Don't infer whether a value is captured in the current function from the
'nocapture' attribute.

The nocapture attribute only specifies that no copies are made that
outlive the function. This isn't the same as there being no copies at all.
This fixes PR14045.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a1beca6845541c05e33ffb35a352aaadb0db09a8 04-Nov-2012 Duncan Sands <baldrick@free.fr> Apply the patch from PR14160. I failed to construct a testcase for this, but
I'm applying it anyway since it seems to be obviously correct.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
426c2bf5cdd2173e4a33aea8cb92cf684a724f4b 01-Nov-2012 Chandler Carruth <chandlerc@gmail.com> Revert the majority of the next patch in the address space series:

r165941: Resubmit the changes to llvm core to update the functions to
support different pointer sizes on a per address space basis.

Despite this commit log, this change primarily changed stuff outside of
VMCore, and those changes do not carry any tests for correctness (or
even plausibility), and we have consistently found questionable or flat
out incorrect cases in these changes. Most of them are probably correct,
but we need to devise a system that makes it more clear when we have
handled the address space concerns correctly, and ideally each pass that
gets updated would receive an accompanying test case that exercises that
pass specificaly w.r.t. alternate address spaces.

However, from this commit, I have retained the new C API entry points.
Those were an orthogonal change that probably should have been split
apart, but they seem entirely good.

In several places the changes were very obvious cleanups with no actual
multiple address space code added; these I have not reverted when
I spotted them.

In a few other places there were merge conflicts due to a cleaner
solution being implemented later, often not using address spaces at all.
In those cases, I've preserved the new code which isn't address space
dependent.

This is part of my ongoing effort to clean out the partial address space
code which carries high risk and low test coverage, and not likely to be
finished before the 3.2 release looms closer. Duncan and I would both
like to see the above issues addressed before we return to these
changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
2c39b15073db81d93bb629303915b7d7e5d088dc 15-Oct-2012 Micah Villmow <villmow@gmail.com> Resubmit the changes to llvm core to update the functions to support different pointer sizes on a per address space basis.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
fb384d61c78b60787ed65475d8403aee65023962 11-Oct-2012 Micah Villmow <villmow@gmail.com> Revert 165732 for further review.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
f3840d2c16a4ec4c879a8ded402835746de380f8 11-Oct-2012 Micah Villmow <villmow@gmail.com> Add in the first iteration of support for llvm/clang/lldb to allow variable per address space pointer sizes to be optimized correctly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
7c894691ef8a36e089bc602d1b22130c44881772 19-Sep-2012 Duncan Sands <baldrick@free.fr> GCC doesn't understand that OrigAliasResult having a value is correlated with
ArePhisAssumedNoAlias, and warns that OrigAliasResult may be used uninitialized.
Pacify GCC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
3d5f96ee1bf5189e324089976026ed09b6be9e58 06-Sep-2012 Arnold Schwaighofer <arnolds@codeaurora.org> BasicAA: Recognize cyclic NoAlias phis

Enhances basic alias analysis to recognize phis whose first incoming values are
NoAlias and whose other incoming values are just the phi node itself through
some amount of recursion.

Example: With this change basicaa reports that ptr_phi and ptr_phi2 do not alias
each other.

bb:
ptr = ptr2 + 1

loop:
ptr_phi = phi [bb, ptr], [loop, ptr_plus_one]
ptr2_phi = phi [bb, ptr2], [loop, ptr2_plus_one]
...
ptr_plus_one = gep ptr_phi, 1
ptr2_plus_one = gep ptr2_phi, 1

This enables the elimination of one load in code like the following:

extern int foo;

int test_noalias(int *ptr, int num, int* coeff) {
int *ptr2 = ptr;
int result = (*ptr++) * (*coeff--);
while (num--) {
*ptr2++ = *ptr;
result += (*coeff--) * (*ptr++);
}
*ptr = foo;
return result;
}

Part 2/2 of fix for PR13564.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163319 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
029032693fdb065b6edfff6d68df188f98bee8ac 06-Sep-2012 Arnold Schwaighofer <arnolds@codeaurora.org> BasicAA: GEPs of NoAlias'ing base ptr with equivalent indices are NoAlias

If we can show that the base pointers of two GEPs don't alias each other using
precise analysis and the indices and base offset are equal then the two GEPs
also don't alias each other.
This is primarily needed for the follow up patch that analyses NoAlias'ing PHI
nodes.

Part 1/2 of fix for PR13564.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
998d3cca2937393d91b04d4d6105d9e67dd3b1b6 05-Sep-2012 Benjamin Kramer <benny.kra@googlemail.com> Switch BasicAliasAnalysis' cache to SmallDenseMap.

It relies on clear() being fast and the cache rarely has more than 1 or 2
elements, so give it an inline capacity and always shrink it back down in case
it grows. DenseMap will grow to 64 buckets which makes clear() a lot slower.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
9e72a79ef4a9fcda482ce0b0e1f0bd6a4f16cffd 21-Jun-2012 Nuno Lopes <nunoplopes@sapo.pt> refactor the MemoryBuiltin analysis:
- provide more extensive set of functions to detect library allocation functions (e.g., malloc, calloc, strdup, etc)
- provide an API to compute the size and offset of an object pointed by

Move a few clients (GVN, AA, instcombine, ...) to the new API.
This implementation is a lot more aggressive than each of the custom implementations being replaced.

Patch reviewed by Nick Lewycky and Chandler Carruth, thanks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158919 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
cd38485b8ae2928cc8cb3bb67dcff7c7b7529ebe 28-Feb-2012 Eli Friedman <eli.friedman@gmail.com> Duncan pointed out that if the alignment isn't explicitly specified, it defaults to the ABI alignment. Given that, make this code a bit more aggressive in such cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
1680a24e534f3066f99fa6b8a618e71373e2920c 27-Feb-2012 Eli Friedman <eli.friedman@gmail.com> Teach BasicAA about the LLVM IR rules that allow reading past the end of an object given sufficient alignment. Fixes PR12098.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
ebad58dc58d73097b3546e7fcb6fd7c17336d413 17-Feb-2012 Dan Gohman <gohman@apple.com> Remove a comment about an alternative approach that wouldn't
actually work, at least as described. LLVM Metadata is not
intended to suppress LLVM IR rules, as it can be stripped at
any time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
173862e5468fbcf4b022b9088d2c81b25c2d60c5 20-Nov-2011 Nick Lewycky <nicholas@mxc.ca> Refactor code to use new attribute getters on CallSite for NoCapture and ByVal.
Suggested in code review by Eli.

That code in InstCombine looks kinda suspicious.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
8540101252d3ff69f288e83821aa9f27b366227b 07-Oct-2011 Eli Friedman <eli.friedman@gmail.com> Remove the old atomic instrinsics. autoupgrade functionality is included with this patch.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141333 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
e6fadced87cef8faa69f00e3e13fc3a7369210b1 28-Sep-2011 Eli Friedman <eli.friedman@gmail.com> PR10628: Fix getModRefInfo so it queries the underlying alias() implementation correctly while checking nocapture calls.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
184166da619ac7f14d8460b4b0f8f85bfc601ebc 08-Sep-2011 Eli Friedman <eli.friedman@gmail.com> A couple minor corrections to r139276.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
81ac8ddc674d1589dbba97f752ec77750901f510 08-Sep-2011 Eli Friedman <eli.friedman@gmail.com> Fix the logic in BasicAliasAnalysis::aliasGEP for comparing GEP's with variable differences so that it actually does something sane. Fixes PR10881.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
e421ad64ff76b7d89a4ddf41bdb056376bc5f6a6 07-Sep-2011 Owen Anderson <resistor@mac.com> memset_pattern16 uses a 16 BYTE pattern, not a 16 BIT pattern. Add comments to that effect.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
69acc93b3de6854732a6d91b581c3c29b59bb315 07-Sep-2011 Owen Anderson <resistor@mac.com> Teach BasicAA about the aliasing properties of memset_pattern16.
Fixes PR10872 and <rdar://problem/10065079>.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a44defeb2208376ca3113ffdddc391570ba865b8 27-Jul-2011 Jeffrey Yasskin <jyasskin@google.com> Explicitly cast narrowing conversions inside {}s that will become errors in
C++0x.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
9a09ca348f3b82c669f93fec7b58ca57e6d67fba 11-Jun-2011 Dan Gohman <gohman@apple.com> Initialize BasicAA's AliasCache to set it to use fewer buckets by
default, since it usually has very few elements. This speeds up
alias queries in many cases, because AliasCache.clear() doesn't
have to visit as many buckets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
5f1312c36e811562c3ea3136332771aed98016ed 04-Jun-2011 Dan Gohman <gohman@apple.com> Reapply r131781, now that the GVN bug with partially-aliasing loads
is disabled.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
9a9d218ed013653b28741c26f28df0bd34c630fa 04-Jun-2011 Dan Gohman <gohman@apple.com> Revert r131781 again. Apparently there is more going on here.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
c122c625ce018e33f25ba35150bed10183ae2b40 04-Jun-2011 Dan Gohman <gohman@apple.com> Reapply r131781 (revert r131809), now that some BasicAA shortcomings
it exposed are fixed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
1fc18d71deb0e23a9101c87bb7b1455098ce1c09 04-Jun-2011 Dan Gohman <gohman@apple.com> Fix BasicAA's recursion detection so that it doesn't pessimize
queries in the case of a DAG, where a query reaches a node
visited earlier, but it's not on a cycle. This avoids
MayAlias results in cases where BasicAA is expected to
return MustAlias or PartialAlias in order to protect TBAA.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
965fefa1add8151619cc340c373a812c94342e58 03-Jun-2011 Dan Gohman <gohman@apple.com> When merging MustAlias and PartialAlias, chose PartialAlias instead
of conservatively choosing MayAlias.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
9adf151b3d46740ac103c4e21fbdec66d6ef1cdf 24-May-2011 Dan Gohman <gohman@apple.com> Make DecomposeGEPExpression check SimplifyInstruction only
after checking for a GEP, so that it matches what GetUnderlyingObject
does. This fixes an obscure bug turned up by bugpoint in the testcase
for PR9931.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
c10ecd8f23ebb4541acbe18563b7f19c4f79e721 23-May-2011 Chris Lattner <sabre@nondot.org> fix a really nasty basicaa mod/ref calculation bug that was causing miscompilation of
UnitTests/ObjC/messages-2.m with the recent optimizer improvements.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
d22920aae81ec318404f7c5235c634954d966cf6 21-May-2011 Duncan Sands <baldrick@free.fr> Revert commit 131781, to see if it fixes the x86-64 dragonegg buildbot.
Original log message:
When BasicAA can determine that two pointers have the same base but
differ by a dynamic offset, return PartialAlias instead of MayAlias.
See the comment in the code for details. This fixes PR9971.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
424b7771711d8be54f8ac65a24d1870d931c18ee 21-May-2011 Dan Gohman <gohman@apple.com> When BasicAA can determine that two pointers have the same base but
differ by a dynamic offset, return PartialAlias instead of MayAlias.
See the comment in the code for details. This fixes PR9971.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
1d7e818a386610da70d56809ea67eb81e0f9c84b 27-Apr-2011 Dan Gohman <gohman@apple.com> Teach BasicAA about arm.neon.vld1 and vst1.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
7a2bdde0a0eebcd2125055e0eacaca040f0b766c 15-Apr-2011 Chris Lattner <sabre@nondot.org> Fix a ton of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
fa4ebd396d0d5ac62535fb14fdd598a160cf09ce 23-Mar-2011 Anders Carlsson <andersca@mac.com> Revert r128140 for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
90af3420614fcfbcc6e2c2702fbdde144e13af86 23-Mar-2011 Anders Carlsson <andersca@mac.com> A global variable with internal linkage where all uses are in one function and whose address is never taken is a non-escaping local object and can't alias anything else.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
bd1801b5553c8be3960255a92738464e0010b6f6 24-Jan-2011 Dan Gohman <gohman@apple.com> Give GetUnderlyingObject a TargetData, to keep it in sync
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
615da1a9bcca05de06fab5f48ee9110267312974 18-Jan-2011 Dan Gohman <gohman@apple.com> Teach BasicAA to return PartialAlias in cases where both pointers
are pointing to the same object, one pointer is accessing the entire
object, and the other is access has a non-zero size. This prevents
TBAA from kicking in and saying NoAlias in such cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123775 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
895ace08e01578b5490ed9d064df6d89acf5420a 03-Jan-2011 Chris Lattner <sabre@nondot.org> fix rdar://8813415 - a miscompilation of 164.gzip that loop-idiom
exposed. It turns out to be a latent bug in basicaa, scary.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122772 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
c01895c7db4c4d8883dd4c31427c42cdae356567 15-Dec-2010 Dan Gohman <gohman@apple.com> Reapply r121886, and also update DecomposeGEPExpression to keep
it in sync.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121895 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
5034dd318a9dfa0dc45a3ac01e58e60f2aa2498d 15-Dec-2010 Dan Gohman <gohman@apple.com> Move Value::getUnderlyingObject to be a standalone
function so that it can live in Analysis instead of
VMCore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
0f7f194416b9f139d4233b499a1f56b20bd84022 13-Dec-2010 Dan Gohman <gohman@apple.com> Reapply r121520, PartialAlias implementation for BasicAA, now that
memdep is updated to handle it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
839c092548280561beb4720d74aee174ed113fd0 10-Dec-2010 Dan Gohman <gohman@apple.com> Revert r121520, which may have introduced miscompilations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121573 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
3bd5e52676681914f2cb2767da2d6ef8c168cf73 10-Dec-2010 Dan Gohman <gohman@apple.com> Implement PartialAlias checking in BasicAA.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
40f8f6264d5af2c38e797e0dc59827cd231e8ff7 07-Dec-2010 Jay Foad <jay.foad@gmail.com> PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
13815d9d3eec3d0ef2fc2f8a09e8ca8a9fa2654a 30-Nov-2010 Chris Lattner <sabre@nondot.org> enhance basicaa to return "Mod" for a memcpy call when the
queried location doesn't overlap the source, and add a testcase.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
201d1e56bb7535802c70d5eb46601afcc325045d 30-Nov-2010 Chris Lattner <sabre@nondot.org> Teach basicaa that memset's modref set is at worst "mod" and never
contains "ref".

Enhance DSE to use a modref query instead of a store-specific hack
to generalize the "ignore may-alias stores" optimization to handle
memset and memcpy.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
3fcfc9fafac268d282d1373ea4517b6901fc510d 08-Nov-2010 Dan Gohman <gohman@apple.com> Re-introduce the MaxLookup limit to BasicAliasAnalysis'
pointsToConstantMemory code to guard against possible
compile time slowdowns.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
431c794ade88f5da17ba06436f781b009c745dde 08-Nov-2010 Dan Gohman <gohman@apple.com> Teach BasicAliasAnalysis::getModRefBehavior(const Function *F)
to analyze intrinsic functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.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/BasicAliasAnalysis.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/BasicAliasAnalysis.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/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
6cc7c9b8fc185473c80b38d9ea176fcc88314fb5 18-Oct-2010 Dan Gohman <gohman@apple.com> Fix BasicAA to pass TBAAInfo through to the chained analysis.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
c1be92f3bb9158eade30d97db6997e2fe78150ab 18-Oct-2010 Dan Gohman <gohman@apple.com> Make BasicAliasAnalysis a normal AliasAnalysis implementation which
does normal initialization and normal chaining. Change the default
AliasAnalysis implementation to NoAlias.

Update StandardCompileOpts.h and friends to explicitly request
BasicAliasAnalysis.

Update tests to explicitly request -basicaa.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116720 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
39e30124e50534972c2e58f4dab7d67c0c437743 15-Sep-2010 Eli Friedman <eli.friedman@gmail.com> PR7959: Handle negative scales in GEPs correctly in BasicAA for non-64-bit
targets.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.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/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
2215c607c3035be197f163beb5e7d8308f8787e5 19-Aug-2010 Chris Lattner <sabre@nondot.org> refix PR1143 by making basicaa analyze zexts of indices aggresively,
which I broke with a recent patch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
ff2efb9f9caf6669beb587aa4d65f24d3a026090 19-Aug-2010 Chris Lattner <sabre@nondot.org> GetLinearExpression is only called when TD is non-null, pass as
a reference instead of pointer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
8807e9fbdf81221b277506064c46829732f019cf 19-Aug-2010 Chris Lattner <sabre@nondot.org> rework GEP decomposition to make a new VariableGEPIndex struct instead of
using a pair. This tidies up the code a bit. While setting things up, add
a (currently unused) field to keep track of how the value is extended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111444 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
30963fbe8fa0ba3a4cc35c7c6e8f24c772f1b40c 19-Aug-2010 Chris Lattner <sabre@nondot.org> move gep decomposition out of ValueTracking into BasicAA. The form of
decomposition that it is doing is very basicaa specific and is only used
by basicaa.

Now with less tree breakingness.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
4ae56d725d25020106d8056c09b19319a4c49e93 18-Aug-2010 Daniel Dunbar <daniel@zuster.org> Revert r111375, "move gep decomposition out of ValueTracking into BasicAA. The
form of", it doesn't pass tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
6b63037306c5c3dc9bf719a34243de5045a949da 18-Aug-2010 Chris Lattner <sabre@nondot.org> move gep decomposition out of ValueTracking into BasicAA. The form of
decomposition that it is doing is very basicaa specific and is only used
by basicaa.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
90c579de5a383cee278acc3f7e7b9d0a656e6a35 06-Aug-2010 Owen Anderson <resistor@mac.com> Reapply r110396, with fixes to appease the Linux buildbot gods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
e6a4a36096185d1716332956d04a92ea7ee3a40f 06-Aug-2010 Owen Anderson <resistor@mac.com> Fix botched revert.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
1f74590e9d1b9cf0f1f81a156efea73f76546e05 06-Aug-2010 Owen Anderson <resistor@mac.com> Revert r110396 to fix buildbots.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
5eeb19d189fd448293e607227e5564d2efab0f7f 06-Aug-2010 Dan Gohman <gohman@apple.com> Fix 80-column violations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110401 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
9ccaf53ada99c63737547c0235baeb8454b04e80 06-Aug-2010 Owen Anderson <resistor@mac.com> Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
130073904ffc18a6700bf7a6505ed2e19fc25ff3 06-Aug-2010 Dan Gohman <gohman@apple.com> Implement AccessesArguments checking in the two-callsite form
of BasicAA::getModRefInfo. This allows BasicAA to say that two
memset calls to non-aliasing memory locations don't interfere.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
5fa417c7904f7394d4e6dcb86e366c86867bcb5a 06-Aug-2010 Dan Gohman <gohman@apple.com> Fix memdep's code for reasoning about dependences between two calls. A Ref
response from getModRefInfo is not useful here. Instead, check for identical
calls only in the NoModRef case.

Reapply r110270, and strengthen it to compensate for the memdep changes.
When both calls are readonly, there is no dependence between them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
34fa82f7e82a2845a42d0a2725e70412d06c917b 05-Aug-2010 Dan Gohman <gohman@apple.com> Revert r110270 for now. It appears to uncover a memdep bug.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
3dcc91ee8c48f210d302937ecbbf0d277f8b656e 05-Aug-2010 Dan Gohman <gohman@apple.com> The two-callsite form of AliasAnalysis::getModRefInfo is documented
to return Ref if the left callsite only reads memory read or written
by the right callsite; fix BasicAliasAnalysis to implement this.

Add AliasAnalysisEvaluator support for testing the two-callsite
form of getModRefInfo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
6fc24467e91a2c515fa5347e90071573c454bcca 03-Aug-2010 Dan Gohman <gohman@apple.com> The singular of "indices" is "index".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
17f647d33237222bb8f79dad5046114a89a7efdf 03-Aug-2010 Dan Gohman <gohman@apple.com> Delete an unused function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
ef1cfac9e50def9097cd3e3ab3c5cad7f4c758cc 03-Aug-2010 Dan Gohman <gohman@apple.com> Introduce a symbolic constant for ~0u for use with AliasAnalysis.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
d8cc7be0262092882d848a1c7d8a4cb6752cce6f 22-Jul-2010 Owen Anderson <resistor@mac.com> Add INSTANTIATE_AG_PASS, which combines RegisterPass<> with RegisterAnalysisGroup<> for pass registration.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109058 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
8be3291f5942e3ae4a5d66c480e7aabe2f771031 20-Jul-2010 Owen Anderson <resistor@mac.com> Speculatively revert r108813, in an attempt to get the self-host buildbots working again. I don't see why this patch
would cause them to fail the way they are, but none of the other intervening patches seem likely either.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
9e081004dad1c3cae7de82ad412c3f19a1a48d48 20-Jul-2010 Owen Anderson <resistor@mac.com> Reapply r108794, a fix for the failing test from last time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
e8a469cdb400249ec263c79d1021f953f42f2760 20-Jul-2010 Daniel Dunbar <daniel@zuster.org> Revert r108794, "Separate PassInfo into two classes: a constructor-free
superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).", it is
breaking teh everything.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
8ba15cb7099d9eadcb345328228d77ffa5afa42d 20-Jul-2010 Owen Anderson <resistor@mac.com> Separate PassInfo into two classes: a constructor-free superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
b8c86a010c2d958d6f655b0f66101d8964d7a0fc 07-Jul-2010 Dan Gohman <gohman@apple.com> Minore code simplification.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
21de4c0daf2b35963d16541a3007c543237eb7bf 01-Jul-2010 Dan Gohman <gohman@apple.com> Remove context sensitivity concerns from interprocedural-basic-aa, and
make it more aggressive in cases where both pointers are known to live
in the same function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
6f205cbceb487b327708faf7ad25007b754dcf36 29-Jun-2010 Dan Gohman <gohman@apple.com> Fix whitespace style.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
3432d70d5b48164f0adaec0771c89c54408e2be9 29-Jun-2010 Benjamin Kramer <benny.kra@googlemail.com> Use a more obvious way to avoid compiling functions which are only used when XDEBUG is enabled.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107125 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
ca9f7efdf8eeffcabd95609c3bb7d481164a0d79 29-Jun-2010 Chandler Carruth <chandlerc@gmail.com> Jump through some silly hoops to make GCC accept that a function may not always
be called.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
50f424c3d079d4774bb323de1e0b77cf4627be69 28-Jun-2010 Dan Gohman <gohman@apple.com> Fix Value::stripPointerCasts and BasicAA to avoid trouble on
code in unreachable blocks, which have have use-def cycles.
This fixes PR7514.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
71339c965ca6268b9bff91213364783c3d06f666 24-Jun-2010 Gabor Greif <ggreif@gmail.com> use ArgOperand accessors

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
551754c4958086cc6910da7c950f2875e212f5cf 17-Apr-2010 Eric Christopher <echristo@apple.com> Revert 101465, it broke internal OpenGL testing.

Probably the best way to know that all getOperand() calls have been handled
is to replace that API instead of updating.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
4ec2258ffb495d7ce00177e447740ef1123a27db 16-Apr-2010 Gabor Greif <ggreif@gmail.com> reapply r101434
with a fix for self-hosting

rotate CallInst operands, i.e. move callee to the back
of the operand array

the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
607a7ab3da72a2eb53553a520507cbb8068dd1d8 16-Apr-2010 Gabor Greif <ggreif@gmail.com> back out r101423 and r101397, they break llvm-gcc self-host on darwin10

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
2ff961f66816daab8bbc58a19025161d969821c2 15-Apr-2010 Gabor Greif <ggreif@gmail.com> reapply r101364, which has been backed out in r101368
with a fix

rotate CallInst operands, i.e. move callee to the back
of the operand array

the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
9ee17208115482441953127615231c59a2f4d052 15-Apr-2010 Gabor Greif <ggreif@gmail.com> back out r101364, as it trips the linux nightlybot on some clang C++ tests

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
165dac08d1bb8428b32a5f39cdd3dbee2888987f 15-Apr-2010 Gabor Greif <ggreif@gmail.com> rotate CallInst operands, i.e. move callee to the back
of the operand array

the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
b57b6f1575ec87b22dc793fe03539cae9df0e586 08-Apr-2010 Dan Gohman <gohman@apple.com> Pointers to zero-sized objects don't point to overlapping objects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
1df9859c40492511b8aa4321eb76496005d3b75b 16-Feb-2010 Duncan Sands <baldrick@free.fr> There are two ways of checking for a given type, for example isa<PointerType>(T)
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
2033097b1f5b1889a5d801febbc7848c7b8ca439 20-Jan-2010 Chris Lattner <sabre@nondot.org> add some new methods to adjust this pointers. Not used yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
e405c64f6b91635c8884411447ff5756c2e6b4c3 26-Nov-2009 Chris Lattner <sabre@nondot.org> move DecomposeGEPExpression out into ValueTracking.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
fa3966881f7f0317803b09161602c9c7eeb2d3a3 26-Nov-2009 Chris Lattner <sabre@nondot.org> teach GetLinearExpression to be a bit more aggressive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89955 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
5369250b73e172efe886b20bfcdab74e5b251a71 26-Nov-2009 Chris Lattner <sabre@nondot.org> resolve a fixme. I haven't figured out how to write a testcase
to exercise this though.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89954 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
5d5261c819fa2a203dc8d09c7bb71e041a12cd69 26-Nov-2009 Chris Lattner <sabre@nondot.org> Teach basicaa that x|c == x+c when the c bits of x are clear. This
allows us to compile the example in readme.txt into:

LBB1_1: ## %bb
movl 4(%rdx,%rax), %ecx
movl %ecx, %esi
imull (%rdx,%rax), %esi
imull %esi, %ecx
movl %esi, 8(%rdx,%rax)
imull %ecx, %esi
movl %ecx, 12(%rdx,%rax)
movl %esi, 16(%rdx,%rax)
imull %ecx, %esi
movl %esi, 20(%rdx,%rax)
addq $16, %rax
cmpq $4000, %rax
jne LBB1_1

instead of:

LBB1_1:
movl (%rdx,%rax), %ecx
imull 4(%rdx,%rax), %ecx
movl %ecx, 8(%rdx,%rax)
imull 4(%rdx,%rax), %ecx
movl %ecx, 12(%rdx,%rax)
imull 8(%rdx,%rax), %ecx
movl %ecx, 16(%rdx,%rax)
imull 12(%rdx,%rax), %ecx
movl %ecx, 20(%rdx,%rax)
addq $16, %rax
cmpq $4000, %rax
jne LBB1_1

GCC (4.2) doesn't seem to be able to eliminate the loads in this
testcase either, it generates:

L2:
movl (%rdx), %eax
imull 4(%rdx), %eax
movl %eax, 8(%rdx)
imull 4(%rdx), %eax
movl %eax, 12(%rdx)
imull 8(%rdx), %eax
movl %eax, 16(%rdx)
imull 12(%rdx), %eax
movl %eax, 20(%rdx)
addl $4, %ecx
addq $16, %rdx
cmpl $1002, %ecx
jne L2




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
f6ac4d9dadaa62959e04a0281e3bc5f4270fc260 26-Nov-2009 Chris Lattner <sabre@nondot.org> teach basicaa that A[i] != A[i+1].



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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
23e2a5b2fff8b5b483a464ce1bea9a686e6731de 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 we care about passes, speedup up BasicAA a bit.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
4e91ee7a2a80142c3774a9984f92a3fae1c126e7 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*'s were non-zero, but strange constant express could be zero).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
539c9b99c27c0fe4f22a0498bc65334e4aa72ef0 26-Nov-2009 Chris Lattner <sabre@nondot.org> Use GEPOperator more pervasively to simplify code.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89914 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
b27db37ed05a846bd2e0fcdaf592e5bb1a573f8b 23-Nov-2009 Chris Lattner <sabre@nondot.org> fix comment, thanks all :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
5d56b2d47d324ecf2d1cc1551a28cce49d16ab01 23-Nov-2009 Chris Lattner <sabre@nondot.org> whitespace cleanup, tidying


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
b34b82e9d1ec6ddbdc23dfd9bb65cd9d22527cd2 23-Nov-2009 Chris Lattner <sabre@nondot.org> speed up BasicAA a bit by implementing a long-standing TODO.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
6c7276f17eca3dcbceed46dc70a833153cfc581f 22-Nov-2009 Chris Lattner <sabre@nondot.org> add fixme for dubious code. Duncan, what do you think?


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
4723303c97da6f30af0dac9a30c45e2feca79c93 22-Nov-2009 Chris Lattner <sabre@nondot.org> remove a silly condition that doesn't make a lot of sense anymore.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
92e803c2a412cda777535e4ae01fe78007997f8a 22-Nov-2009 Chris Lattner <sabre@nondot.org> reduce indentation, no functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
f94b5edc452c32d9ae258e7de30c33391fda6cc9 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 does
not alias with a value resulting from a load.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89398 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
20162ac5662a45388911ef1d35ba7559aae368f5 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!


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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
7b550ccfc5a3346c17e0390a59e2d6d19bc52705 06-Nov-2009 Chris Lattner <sabre@nondot.org> remove a bunch of extraneous LLVMContext arguments
from various APIs, addressing PR5325.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
f006b183e2d2bebcf6968d1dd7350397c95b0325 27-Oct-2009 Victor Hernandez <vhernandez@apple.com> Rename MallocFreeHelper as MemoryBuiltins

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
f2becca90b832cc02345fba063b9b439b2be33ad 27-Oct-2009 Victor Hernandez <vhernandez@apple.com> Rename MallocHelper as MallocFreeHelper, since it now also identifies calls to free()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85181 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
6665b0ea688941c1c044a5c034ee45d45862168f 26-Oct-2009 Dan Gohman <gohman@apple.com> Teach BasicAA how to analyze Select instructions, and make it more
aggressive on PHI instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
f5a86f45e75ec744c203270ffa03659eb0a220c1 25-Oct-2009 Nick Lewycky <nicholas@mxc.ca> Remove includes of Support/Compiler.h that are no longer needed after the
VISIBILITY_HIDDEN removal.


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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
391d23b6c29e17b5c969e732169a789ac9d0d422 18-Oct-2009 Chris Lattner <sabre@nondot.org> inline isGEP away.


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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
20312d0bb8e06c6881010d54f857b6d482994470 15-Oct-2009 Nick Lewycky <nicholas@mxc.ca> Add missing break statements! Thanks to Duncan Sands for pointing this out!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
6e9e010752e475c27d929147dc07d6261fc0f0f1 15-Oct-2009 Nick Lewycky <nicholas@mxc.ca> Teach basicaa about memcpy/memmove/memset. The length argument can be used to
improve alias results if constant, and the source pointer can't be modified.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
2d3820c29cfae37c4ed6060ae4fa823a3e9cb21a 15-Oct-2009 Nick Lewycky <nicholas@mxc.ca> Teach BasicAA to use the size parameter of the memory use marker intrinsics.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
22c031296ce91cdabb193a203b06b339ef500f4b 15-Oct-2009 Nick Lewycky <nicholas@mxc.ca> Take advantage of TargetData when available; we know that the atomic intrinsics
only dereference the element they point to directly with no pointer arithmetic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
f0429fd1ca7f6d359a33c20617785d7572a0292d 14-Oct-2009 Evan Cheng <evan.cheng@apple.com> Clear VisitedPHIs after use.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
681a33e26dd3222477f13520b94e7417bff59e32 14-Oct-2009 Evan Cheng <evan.cheng@apple.com> Another BasicAA fix. If a value does not alias a GEP's base pointer, then it
cannot alias the GEP. GEP pointer alias rule states this clearly:
A pointer value formed from a getelementptr instruction is associated with the
addresses associated with the first operand of the getelementptr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
d83c2ca3368f90d60234848e751842d29b248039 14-Oct-2009 Evan Cheng <evan.cheng@apple.com> More code clean up based on patch feedback.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
3dbe43b1b50472f4f24df17fff5ac2443be63d5f 14-Oct-2009 Evan Cheng <evan.cheng@apple.com> Change VisitedPHIs into an instance variable that's freed by each alias() call.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
50a5914e129c348e8878d4654b4306e0349281c2 14-Oct-2009 Evan Cheng <evan.cheng@apple.com> Teach basic AA about PHI nodes. If all operands of a phi NoAlias another value than it's safe to declare the PHI NoAlias the value. Ditto for MustAlias.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
094f04b429c11547ed98d7a53dd3399db51083bd 13-Oct-2009 Evan Cheng <evan.cheng@apple.com> Refactor some code. No functionality changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
5c9be67cffd689fa0e2111a3c60d7556c07b8608 13-Oct-2009 Nick Lewycky <nicholas@mxc.ca> Teach BasicAA a little something about the atomic intrinsics: they can only
modify through the pointer they're given.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
46e8312fb733338e9af4db3757a1a8beddeae15a 18-Sep-2009 Victor Hernandez <vhernandez@apple.com> Enhance analysis passes so that they apply the same analysis to malloc calls as to MallocInst.

Reviewed by Eli Friedman.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
aae87cde50fd004f394816820e57b7ef0e697c3b 27-Aug-2009 Dan Gohman <gohman@apple.com> Use stripPointerCasts instead of doing the same manually.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80267 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
1d0be15f89cb5056e20e2d24faa8d6afb1573bca 13-Aug-2009 Owen Anderson <resistor@mac.com> Push LLVMContexts through the IntegerType APIs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a7235ea7245028a0723e8ab7fd011386b3900777 31-Jul-2009 Owen Anderson <resistor@mac.com> Move a few more APIs back to 2.5 forms. The only remaining ones left to change back are
metadata related, which I'm waiting on to avoid conflicting with Devang.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
baf3c404409d5e47b13984a7f95bfbd6d1f2e79e 29-Jul-2009 Owen Anderson <resistor@mac.com> Move ConstantExpr to 2.5 API.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
eed707b1e6097aac2bb6b3d47271f6300ace7f2e 25-Jul-2009 Owen Anderson <resistor@mac.com> Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types. More to come.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
e922c0201916e0b980ab3cfe91e1413e68d55647 22-Jul-2009 Owen Anderson <resistor@mac.com> Get rid of the Pass+Context magic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
f2411744214dad8c71044aac2977ca77e9ebf028 20-Jul-2009 Dan Gohman <gohman@apple.com> Revert the addition of hasNoPointerOverflow to GEPOperator.
Getelementptrs that are defined to wrap are virtually useless to
optimization, and getelementptrs that are undefined on any kind
of overflow are too restrictive -- it's difficult to ensure that
all intermediate addresses are within bounds. I'm going to take
a different approach.

Remove a few optimizations that depended on this flag.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
3a7a68c10880c2a28387617b42d14d774e218727 18-Jul-2009 Dan Gohman <gohman@apple.com> Make BasicAliasAnalysis and Value::getUnderlyingObject use
GEPOperator's hasNoPointer0verflow(), and make a few places in instcombine
that create GEPs that may overflow clear the NoOverflow value. Among
other things, this partially addresses PR2831.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
001dbfebcbbded8c8e74b19e838b50da2b6c6fb5 16-Jul-2009 Owen Anderson <resistor@mac.com> Move the ConstantInt uniquing table into LLVMContextImpl. This exposed a number of issues in
our current context-passing stuff, which is also fixed here


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
c23197a26f34f559ea9797de51e187087c039c42 14-Jul-2009 Torok Edwin <edwintorok@gmail.com> llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
c25e7581b9b8088910da31702d4ca21c4734c6d7 11-Jul-2009 Torok Edwin <edwintorok@gmail.com> assert(0) -> LLVM_UNREACHABLE.
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
07cf79ef537caff6d39145f190a28a336e629b6f 07-Jul-2009 Owen Anderson <resistor@mac.com> "LLVMContext* " --> "LLVMContext *"


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
508955156a25a9abc470a29e1760aa176d341cf9 06-Jul-2009 Owen Anderson <resistor@mac.com> Thread LLVMContext through the constant folding APIs, which touches a lot of files.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
e7b6118a51eb3b523c36c7b2f2e90e617eac19da 23-Jun-2009 Owen Anderson <resistor@mac.com> Remove unneeded #include.


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


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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
826f7cebfd347bf2218ba35486bc13623523ed7f 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 return of a function call. That's
what malloc and calloc are for, actually.


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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
8556d2a7f155c7edfaf454a3acda8ce28863c5e4 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 version in BasicAliasAnalysis


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
7f85bb6f83440382ed5154f2a7ba7756acda6160 18-Jan-2009 Gabor Greif <ggreif@gmail.com> add a comment

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
ceb4d1aecb9deffe59b3dcdc9a783ffde8477be9 12-Jan-2009 Duncan Sands <baldrick@free.fr> Rename getABITypeSize to getTypePaddedSize, as
suggested by Chris.


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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
91c9c31033ff8166289bfee050b02bb6b586d510 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!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
f23d0d392ab47e191e1bbd17dc7487b9d461485c 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)
without breaking existing users or the file format.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
6fa311c2338391b0f332c062b3140c6df139a949 16-Dec-2008 Bill Wendling <isanbard@gmail.com> Temporarily revert r61019, r61030, and r61040. These were breaking LLVM Release
builds.


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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
b957bda0bcb81c88ed4464d07100c349af76890f 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 allows GVN to delete 62 more instructions out of 403.gcc.



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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
1832705b06e0378040c5fc94042fd0b0a9ee5b61 08-Dec-2008 Duncan Sands <baldrick@free.fr> Fix comment typo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
295d4e953a1214f60632220b9fcb31c1af8b0c27 08-Dec-2008 Chris Lattner <sabre@nondot.org> Some minor optimizations for isObjectSmallerThan.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
b2b32fd3fe22ca6b165d9c21d7ec0bcd2af105f5 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 pointing out the error in the original
and helping devise this definition.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
02ff308aa1c165d37fcf35f618243180ee68eedd 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 (for now).

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
5d0392c6b370758750b397e254a6c6f028479969 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 only strips GEPs if all
indices are zero, while getUnderlyingObject
strips GEPs no matter what the indices are.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
eaf42abab6d465c38891345d999255871cf03943 24-Sep-2008 Devang Patel <dpatel@apple.com> s/ParameterAttributes/Attributes/g



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
ae73dc1448d25b02cabc7c64c86c64371453dda8 04-Sep-2008 Dan Gohman <gohman@apple.com> Tidy up several unbeseeming casts from pointer to intptr_t.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
25df20f169eb90d2e5f9cff3018a4d935ee5d796 16-Jun-2008 Chris Lattner <sabre@nondot.org> simplify some code by using a helper function. This really really
wants a 'nocapture' predicate.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
defa1c8034c5d69b1b91fc970f5faef255bdc660 16-Jun-2008 Chris Lattner <sabre@nondot.org> move a bunch of predicates up into their own section
in this file, no other changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
e7275794d399615e8bde0dfb69b02934549e4fb6 16-Jun-2008 Chris Lattner <sabre@nondot.org> Other parts of this code treat noalias arguments as objects for
the purposes of escape analysis.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52302 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
845f0d2f0fd4a268ca1b3df9afb3de523f6dfa9d 16-Jun-2008 Chris Lattner <sabre@nondot.org> If we are checking to see if the result of a call aliases a
pointer derived from a local allocation, if the local allocation
never escapes, the pointers can't alias. This implements PR2436


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a413960a4847b996e48ebad5c41f094df441641d 16-Jun-2008 Chris Lattner <sabre@nondot.org> Refactor basicaa's main alias function somethin' fierce.
This fixes several minor bugs (such as returning noalias
for comparisons between external weak functions an null) but
is mostly a cleanup.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
98e3a6829aaf070a8893a164d6dc8c75f9f9feaa 02-Jun-2008 Wojciech Matyjewicz <wmatyjewicz@fastmail.fm> Fixes PR2395. Looking for a constant in a GEP tail (when the first GEP
is longer than the second one) should stop after finding one. Added break
instruction guarantees it. It also changes difference between offsets to
absolute value of this difference in the condition.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
e47d98200e4181e0558fc761c4145ccc727961af 21-Apr-2008 Duncan Sands <baldrick@free.fr> Fix a "large integer implicitly truncated to unsigned type"
warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
21d31a8d94eb260635c0ecfc81d6793a54fe56d0 15-Apr-2008 Dale Johannesen <dalej@apple.com> Don't assume a tail call can't reference a byval
argument to the outer function, this isn't correct.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
4f4c28f75f74fe557efb63feaf5f4f8bf639dcd5 20-Mar-2008 Devang Patel <dpatel@apple.com> Restore isCFGOnly property of various analysis passes.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
c758209153ca0f6da6737f25ada269c573fba456 19-Mar-2008 Devang Patel <dpatel@apple.com> PassInfo keep tracks whether a pass is an analysis pass or not.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
ec5ec88d15b0aab050141b7247ac0335ebcb97ac 19-Feb-2008 Duncan Sands <baldrick@free.fr> Fix a compiler warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47328 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
851bfff50f7251e4d00b5fffbb5e140544cc4a63 19-Feb-2008 Owen Anderson <resistor@mac.com> In addition to arguments passed to it, memcpy (and all other calls) can ModRef pointers that alias their arguments as well. This fixes PR2057.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
bb494bcb0e3b25297412d609eec774edccab7575 18-Feb-2008 Chris Lattner <sabre@nondot.org> don't bother calling getUnderlyingObject for non-pointers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
ef562471cebd643288a19fca1ece8c52e70ceff0 18-Feb-2008 Owen Anderson <resistor@mac.com> Since we're not checking for the more general AllocationInst first, we need to explicitly check
that Object is an Argument before casting it to one.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
26d914ada39516974d9fb97ea7504329d3822501 18-Feb-2008 Owen Anderson <resistor@mac.com> This check is not correct for mallocs, so exclude them earlier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
ae708a3d91a9babfa171760f15d0fdcedd674d0d 18-Feb-2008 Owen Anderson <resistor@mac.com> Fix a comment, and a bug where we weren't applying the tail call logic in cases that failed the first test.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
9aa7c35cee0eac0b84212f01abb41ca923f70ec2 18-Feb-2008 Owen Anderson <resistor@mac.com> Fix bugs that Chris noticed in my last patch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
0ab5a4ae552765069baf4a45fcc26dba817020f9 18-Feb-2008 Chris Lattner <sabre@nondot.org> bitcasts of pointers are always pointers.
If we see a memcpy of a pointer, make sure to check later
uses of the pointer as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
9b636cb3385376faa7f33a943cac7d40bff1531a 17-Feb-2008 Owen Anderson <resistor@mac.com> Teach getModRefInfo that memcpy, memmove, and memset don't "capture" memory addresses.
Also, noalias arguments are be considered "like" stack allocated ones for this purpose, because
the only way they can be modref'ed is if they escape somewhere in the current function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47247 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
d087480166d8f0ec2a44732c7ec087f4eb1ba527 24-Jan-2008 Chris Lattner <sabre@nondot.org> getUnderlyingObject can return null, handle this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
fd687500384803311556571989dc14cd84786904 24-Jan-2008 Chris Lattner <sabre@nondot.org> Teach basicaa that 'byval' arguments define a new memory location that
can't be aliased to other known objects. This allows us to know that byval
pointer args don't alias globals, etc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
4ba8cfc5a4e98dbe55529bb2a0de17565e90c128 13-Dec-2007 Wojciech Matyjewicz <wmatyjewicz@fastmail.fm> Make these loops follow GetGEPOperands() behavior.
Let: %q = GEP %p, X, ...
If %p is a GEP, we can chase baseptr further, only if X==0.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
f88380ba2cf472db6576a8534315449931e8cf50 09-Dec-2007 Chris Lattner <sabre@nondot.org> Fix PR1782, patch by Wojtek Matyjewicz!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
afa3b6da11bc05281bcf09e45de9e037e0ee5011 28-Nov-2007 Duncan Sands <baldrick@free.fr> Add some convenience methods for querying attributes, and
use them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
dc024674ff96820d6020757b48d47f46d4c07db2 27-Nov-2007 Duncan Sands <baldrick@free.fr> Fix PR1146: parameter attributes are longer part of
the function type, instead they belong to functions
and function calls. This is an updated and slightly
corrected version of Reid Spencer's original patch.
The only known problem is that auto-upgrading of
bitcode files doesn't seem to work properly (see
test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully
a bitcode guru (who might that be? :) ) will fix it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
e4dc717585d5b891d187248352cbbc8d2438da96 23-Nov-2007 Duncan Sands <baldrick@free.fr> Ding dong, the DoesntAccessMemoryFns and
OnlyReadsMemoryFns tables are dead! We
get more, and more accurate, information
from gcc via the readnone and readonly
function attributes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
920653d41e101787cad4b733ae5c3d4241aa0cec 22-Nov-2007 Duncan Sands <baldrick@free.fr> Teach alias analysis about readnone/readonly functions.
Based on a patch by Török Edwin.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
ee22be064ecfd9d49ac43dd5be998e8ea931ca57 16-Nov-2007 Tanya Lattner <tonic@nondot.org> Fix for PR1801



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
9907cb12ae431ed6168bbb93088195b530b62ce8 06-Nov-2007 Chris Lattner <sabre@nondot.org> Fix PR1774 and BasicAA/2007-11-05-SizeCrash.ll



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43756 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
ef1502925851c813a57bb2257be3026e9de1fdd1 26-Oct-2007 Owen Anderson <resistor@mac.com> Make a comment better.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
f92ff03f7124bdd1da31863a47a0c9af84ef6f23 25-Oct-2007 Owen Anderson <resistor@mac.com> Fix for PR1741.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43326 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
718cb665ca6ce2bc4d8e8479f46a45db91b49f86 07-Sep-2007 Owen Anderson <resistor@mac.com> Add lengthof and endof templates that hide a lot of sizeof computations.
Patch by Sterling Stein!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
df344febe27b8fa68424032c4181e494307d6eaf 05-Sep-2007 Evan Cheng <evan.cheng@apple.com> Missing break. Patch by Wojciech Matyjewicz.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a583990ec83a4773608084a9694943ddd268e571 06-Aug-2007 Chandler Carruth <chandlerc@gmail.com> This resolves a regression of BasicAA which failed to find any memory information for overloaded intrinsics (PR1600). This resolves that issue, and improves the matching scheme to use a BitVector rather than a binary search.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
8c5287086c02cff4a905db2e9c7735a82ed9137f 05-Aug-2007 Chris Lattner <sabre@nondot.org> Upgrade BasicAliasAnalysis::getModRefBehavior to not call Value::getName,
which dynamically allocates the string result. This speeds up dse on the
testcase from PR1432 from 0.3781s to 0.1804s (2.1x).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a326b5da4bdab865ba440b57ae4487fbb16a0b7d 02-Aug-2007 Christopher Lamb <christopher.lamb@gmail.com> Implement review feedback.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
406bfa3e21e8fab3deab240c30c763e78eddf2f5 02-Aug-2007 Christopher Lamb <christopher.lamb@gmail.com> Teach BasicAA about noalias parameter attributes, but do it correctly this time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
321ff4e6d55401d8f30b9c10023f6fea1803ba18 31-Jul-2007 Christopher Lamb <christopher.lamb@gmail.com> Revert overly aggressive interpretation of noalias


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
50192c215252cf20e0b205ee2012272aa9b9b1a2 31-Jul-2007 Christopher Lamb <christopher.lamb@gmail.com> Teach BasicAA about noalias function parameters. Passes all of DejaGNU and test-suite.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
07a96765daedf180a7102d39fe56c499878312b7 16-Jul-2007 Dan Gohman <gohman@apple.com> Fix comments about vectors to use the current wording.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a6900c7ad9752a27e2e3b1bd78b2af3b1381176d 02-Jul-2007 Dan Gohman <gohman@apple.com> Add explicit keywords.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
03265f98a3b2f49ecd0c01b868e0a9c844c3eeb7 18-Jun-2007 Anton Korobeynikov <asl@math.spbu.ru> Make BasicAliasAnalysis correctly register itself. Patch by Devang


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.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/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
843f0767acd05baed952d39e77ea89b438430a4f 19-Apr-2007 Zhou Sheng <zhousheng00@gmail.com> Make use of ConstantInt::isZero instead of ConstantInt::isNullValue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
9d6565a5b1fbc4286d6ee638d8f47a3171a9ed7e 15-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR1195:
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a77600e8612c51e75f55710ce9af7eb8aba8b083 10-Feb-2007 Chris Lattner <sabre@nondot.org> Switch some std::vector's to SmallVectors. This speeds up -load-vn -gcse
by 6% on tramp3d.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
fd1ad3b730a087555655b55d6345f6c0677cd7bd 10-Feb-2007 Chris Lattner <sabre@nondot.org> modify CheckGEPInstructions to take a pointer and size instead of a vector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34166 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
829621c59e9e4e2f4e15cd562688fae9f82ea549 10-Feb-2007 Chris Lattner <sabre@nondot.org> eliminate use of TargetData::getIndexedOffset that takes a vector


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34163 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
d7d83db5f22d05e5b14b6b1d838668222113c83a 06-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Make classes in anonymous namespaces use VISIBILITY_HIDDEN to help reduce
LLVM's footprint and speed up linking.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
5cbf985dcbc89fba3208e7baf8b6f488b06d3ec9 30-Jan-2007 Reid Spencer <rspencer@reidspencer.com> For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid
confusion with external linkage types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
241607d01648e85754f72de945684c7a8641a292 14-Jan-2007 Chris Lattner <sabre@nondot.org> fit to 80 cols.
Remove now-extraneous checks for ptr->ptr bitcasts.

Fix PR1109 and Analysis/BasicAA/2007-01-13-BasePointerBadNoAlias.ll. We
need to consider arbitrary sized objects when checking for nested GEP offsets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
0bb38313ae78a621a0596dc1089522ad5255e399 12-Jan-2007 Chris Lattner <sabre@nondot.org> GEP operands can't be bools


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33125 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
579dca12c2cfd60bc18aaadbd5331897d48fec29 12-Jan-2007 Reid Spencer <rspencer@reidspencer.com> Implement review feedback for the ConstantBool->ConstantInt merge. Chris
recommended that getBoolValue be replaced with getZExtValue and that
get(bool) be replaced by get(const Type*, uint64_t). This implements
those changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33110 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
4fe16d607d11e29d742208894909733f5ad01f8f 11-Jan-2007 Reid Spencer <rspencer@reidspencer.com> Rename BoolTy as Int1Ty. Patch by Sheng Zhou.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
6b6b6ef1677fa71b1072c2911b4c1f9524a558c9 11-Jan-2007 Zhou Sheng <zhousheng00@gmail.com> For PR1043:
Merge ConstantIntegral and ConstantBool into ConstantInt.
Remove ConstantIntegral and ConstantBool from LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
c5b206b6be61d0d933b98b6af5e22f42edd48ad1 31-Dec-2006 Reid Spencer <rspencer@reidspencer.com> For PR950:
This patch replaces signed integer types with signless ones:
1. [US]Byte -> Int8
2. [U]Short -> Int16
3. [U]Int -> Int32
4. [U]Long -> Int64.
5. Removal of isSigned, isUnsigned, getSignedVersion, getUnsignedVersion
and other methods related to signedness. In a few places this warranted
identifying the signedness information from other sources.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32785 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
e4d87aa2de6e52952dca73716386db09aad5a8fd 23-Dec-2006 Reid Spencer <rspencer@reidspencer.com> For PR950:
This patch removes the SetCC instructions and replaces them with the ICmp
and FCmp instructions. The SetCondInst instruction has been removed and
been replaced with ICmpInst and FCmpInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
d977d8651a5cd26a3e1088267f31cade405f2adf 13-Dec-2006 Reid Spencer <rspencer@reidspencer.com> Replace inferred getCast(V,Ty) calls with more strict variants.
Rename getZeroExtend and getSignExtend to getZExt and getSExt to match
the the casting mnemonics in the rest of LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
e81561909d128c6e2d8033cb5465a49b2596b26a 07-Dec-2006 Bill Wendling <isanbard@gmail.com> Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
now cerr, cout, and NullStream resp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a5b31ca85686062408bca0f0a8aa43f9fe58e644 29-Nov-2006 Bill Wendling <isanbard@gmail.com> Convert to using llvm streams instead of iostreams.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
3da59db637a887474c1b1346c1f3ccf53b6c4663 27-Nov-2006 Reid Spencer <rspencer@reidspencer.com> For PR950:
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
c2e6801cc7c85deaaa6bc02186e2efa1bba065fe 13-Nov-2006 Chris Lattner <sabre@nondot.org> remove redundant code


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
7765d71304f0f26ab348deb41af9b6ae033aae4d 03-Nov-2006 Chris Lattner <sabre@nondot.org> Fix BasicAA/2006-11-03-BasicAAVectorCrash.ll by handling out-of-range
vector accesses like we handle out-of-range array accesses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
3ed469ccd7b028a030b550d84b7336d146f5d8fa 02-Nov-2006 Reid Spencer <rspencer@reidspencer.com> For PR786:
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
b83eb6447ba155342598f0fabe1f08f5baa9164a 20-Oct-2006 Reid Spencer <rspencer@reidspencer.com> For PR950:
This patch implements the first increment for the Signless Types feature.
All changes pertain to removing the ConstantSInt and ConstantUInt classes
in favor of just using ConstantInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31063 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
90aa839c88776e3dd0b3a798a98ea30d85b6b53c 04-Oct-2006 Chris Lattner <sabre@nondot.org> Fix more static dtor issues


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a5370172b64bed5daf8e2869d7bf7cb52f80d6b7 28-Aug-2006 Chris Lattner <sabre@nondot.org> simplify AnalysisGroup registration, eliminating one typeid call.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29932 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
7f8897f22e88271cfa114998a4d6088e7c8e8e11 28-Aug-2006 Chris Lattner <sabre@nondot.org> eliminate RegisterOpt. It does the same thing as RegisterPass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a4f0b3a084d120cfc5b5bb06f64b222f5cb72740 27-Aug-2006 Chris Lattner <sabre@nondot.org> s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
9525528a7dc5462b6374d38c81ba5c07b11741fe 29-Jun-2006 Chris Lattner <sabre@nondot.org> Use hidden visibility to make symbols in an anonymous namespace get
dropped. This shrinks libllvmgcc.dylib another 67K


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
cad25379d30b80c7d1a61271aed18938b01617e2 09-Mar-2006 Chris Lattner <sabre@nondot.org> Use autogenerated mod/ref info for intrinsics.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
2cfdd2854c7bcc050758749a2e28e5f7b3c1b35f 04-Mar-2006 Chris Lattner <sabre@nondot.org> Fix a crash compiling Obsequi


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
5a3cf8de5db8d2ca91e77132a40b590c27f497ec 04-Mar-2006 Chris Lattner <sabre@nondot.org> Be more conservative with our symbolic alias analysis. In particular,
don't assume that A[1][0] and A[0][i] can't alias. "i" might be out of
range, or even negative. This fixes a miscompilation of 188.ammp (which
does bad pointer tricks) with the new CFE.

Testcase here: Analysis/BasicAA/2006-03-03-BadArraySubscript.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
6fb3bd6a658940287789198d3207b0da04c0a4e6 14-Jan-2006 Nate Begeman <natebegeman@mac.com> Add bswap intrinsics as documented in the Language Reference


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25309 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
f6947c1bb84f1cd077987fe57f6c33f8319168e7 11-Nov-2005 Andrew Lenharth <andrewl@lenharth.org> prevent cse of readcyclecounter


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
51b8d54922350b7e1c2cd5a5183ef2c5f5d1b1d5 11-Nov-2005 Andrew Lenharth <andrewl@lenharth.org> continued readcyclecounter support


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
ab466d769aa33a6973a1e6e11fe2b803a7dbdabc 24-Aug-2005 Chris Lattner <sabre@nondot.org> floor/ceil don't read/write memory. This allows gcse to eliminate 6 calls
in mesa.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
d3513e026b9afc82000c4ed67a3b49acee4e97da 11-Jul-2005 Andrew Lenharth <andrewl@lenharth.org> Remove glibc specific functions, and mark a couple as C99


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
d9793e6c0ad590fb168e93c41f03467a6fdece1d 11-Jul-2005 Andrew Lenharth <andrewl@lenharth.org> because on alpha:
# define errno (*__errno_location ())

*shakes head


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
42e3c81c5f23c42ba2415a8f797d430dad387734 09-May-2005 Chris Lattner <sabre@nondot.org> By definition, 'tail' calls cannot access the stack frame of their caller.
Expose this as a simple form of mod/ref information. This implements
BasicAA/tailcall-modref.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
998fffdda1109dc603e0cae32f745ae8c8b640d4 06-May-2005 Chris Lattner <sabre@nondot.org> These intrinsics do not access memory


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21718 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
eed37bad011c8d3843611ecabfaf279eebf68a02 30-Apr-2005 Chris Lattner <sabre@nondot.org> Add llvm.sqrt intrinsic, patch contributed by Morten Ofstad


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
5b103c20e37638e8665c0b64b4166ca59bc8b369 28-Apr-2005 Chris Lattner <sabre@nondot.org> These functions can set errno!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
50bc9ef507090176773aa323e4d2d9413cc9d223 09-Mar-2005 Chris Lattner <sabre@nondot.org> Fix Regression/Analysis/BasicAA/2005-03-09-BrokenBasicAA.ll, a miscompilation
that Alkis found with Java, thanks Alkis!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
534927d82de6d1be0f6e939263eeb309ad135661 08-Jan-2005 Jeff Cohen <jeffc@jolt-lang.org> Add even more missing createXxxPass functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
5226f6a901241c0aa1a8fbdccf1abb7a07e29d18 15-Dec-2004 Chris Lattner <sabre@nondot.org> Fix a bug in -no-aa that caused two DSGraph tests to XPASS.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
c49741d047f7cf1143aa34a3a97379a8d1b5f0e5 09-Dec-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Add testcase and fix for yet another case where we query the size an
abstract type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a95cf3024b9a3c3ed6bf3e862d956ce46a8cbebe 09-Dec-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Add testcase and fix for another case where we query the size an
abstract type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
4a7ebfa4111305ea22fc753d4f029eed88149662 07-Dec-2004 Reid Spencer <rspencer@reidspencer.com> For PR387:\
Add getModRefInfo method to avoid overloaded virtuals


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
eaf8f9c667b15cf09b4608558cc24675e92ad2cd 28-Nov-2004 Chris Lattner <sabre@nondot.org> Fix DeadStoreElimination/2004-11-28-LiveStoreDeleted.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
4e61676b568e6a30759d08073d174a0694dfea00 26-Nov-2004 Chris Lattner <sabre@nondot.org> The trick with globals actually works with allocas and malloc too


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
0a1ac907c30cd3a5d0d8f96c1015bdb1c7461290 26-Nov-2004 Chris Lattner <sabre@nondot.org> A store or load cannot alias a global if the accessed amount is larger then
the global.

This implements Regression/Analysis/BasicAA/global-size.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
bc2a99b4803487202e5521839b7a9e4d5869e5c8 17-Nov-2004 Chris Lattner <sabre@nondot.org> Simplify conditional and fix LICM/2004-11-17-UndefIndexCrash.ll
by saying what we mean


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17913 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a35339dfb67cec3d7e9783c9c6d3de110ea6bafe 16-Oct-2004 Chris Lattner <sabre@nondot.org> Be more careful about looking for constants when we really want constantint's.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17029 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
20aa474f8fbebde588edc101b90e834df28ce4ce 03-Sep-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Fixes to make LLVM compile with vc7.1.

Patch contributed by Paolo Invernizzi!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
eb62bc77b68e8d2350453d15aca300f481a612d5 29-Jul-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Merge i*.h headers into Instructions.h as part of bug403.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
730b1ad2c4e33dd8b0f22744ece4f884f44c816a 29-Jul-2004 Chris Lattner <sabre@nondot.org> Fix test/Regression/Analysis/BasicAA/2004-07-28-MustAliasbug.llx

This also fixes the miscompilation of MallocBench/gs with dead store
elimination enabled.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
db5b80a7f2521a1f9ca8f339fdac2b6e11cc422a 27-Jul-2004 Chris Lattner <sabre@nondot.org> Make basicaa a bit more aggressive


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
e181b94309e34f9c16830a0a2a22e1c3c4b7f7ac 27-Jul-2004 Chris Lattner <sabre@nondot.org> basic-aa can actually provide simple mod/ref info


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
05e47987ee50d7d2bb1c9bde12a9e4a7636868eb 27-Jul-2004 Chris Lattner <sabre@nondot.org> This was implemented back in march


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
bb8f43c8fcac4688f25c6d3a46651a0b1893eb03 21-Jul-2004 Chris Lattner <sabre@nondot.org> Do not ignore casts unless they are pointer-pointer casts. This caused us
to miscompile the SingleSource/Regression/C++/pointer_member.cpp program.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
e840434755e2165ac20ec55e9d5ff3d2defac2d2 18-Jul-2004 Reid Spencer <rspencer@reidspencer.com> bug 122:
- Replace ConstantPointerRef usage with GlobalValue usage
- Minimize redundant isa<GlobalValue> usage
- Correct isa<Constant> for GlobalValue subclass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
f70770abd53cf275368acd08f1f494301f4ce138 14-Jul-2004 Chris Lattner <sabre@nondot.org> Simplify logic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
689835a2d98ddd1e3766f5ce6816c8d908e8fff1 19-Jun-2004 Chris Lattner <sabre@nondot.org> Fix a tiny bug in the -no-aa pass, in which it did not ever get a target data.
This is a regression from 1.2, though noone uses -no-aa anyway


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
4ee623de0b0fdaa2d5caa75bd65bc300cb889962 15-Jun-2004 Chris Lattner <sabre@nondot.org> isnan is dead


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
9f35196fc22fc807eb5fd6d0e5c58685bf79c056 11-Jun-2004 Chris Lattner <sabre@nondot.org> llvm.isnan doesn't access memory


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
b52f44086006434039b0c5df55aaac1079d26b96 23-May-2004 Chris Lattner <sabre@nondot.org> Move the -no-aa AA implementation into this file since both of these
alias analysis implementations are special: they do not autoforward to a
chained implementation of alias analysis


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13683 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
7512c08bfd9f3f34f718803d21130f8e061adebc 12-Apr-2004 Chris Lattner <sabre@nondot.org> Hrm, operator new and new[] do not belong here. We should not CSE them! :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12859 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
bec63d606f31679cb41777315325b96a65dfe3f4 11-Apr-2004 Chris Lattner <sabre@nondot.org> operator new & operator new[] do not kill any legal memory locations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
65585aa3fcb6c70ab36fb8965ac864378f5e3d44 11-Apr-2004 Chris Lattner <sabre@nondot.org> Allow clients to be more efficient.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
b903fc5c1b62ebf7f9339d63a623596be792ef00 10-Apr-2004 Chris Lattner <sabre@nondot.org> Add a couple of more functions that cannot access memory (the intrinsics) and
don't write to memory


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
28977af72a11fcad5d1b54d7a96b3df02828f6fc 05-Apr-2004 Chris Lattner <sabre@nondot.org> Support getelementptr instructions which use uint's to index into structure
types and can have arbitrary 32- and 64-bit integer types indexing into
sequential types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
002be767333e4253df6c5477dda28890dbd3488c 16-Mar-2004 Chris Lattner <sabre@nondot.org> Add some missing functions. Make sure to handle calls together in case the
client has another VN implementation that can VN calls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
bbcc147220d885b129743c009c3e46a7a3d8ab2e 15-Mar-2004 Chris Lattner <sabre@nondot.org> Fix a minor bug, implementing GCSE/call_pure_function.ll

Also, add some stuff I missed before.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
4244bb5bbd6fd815f86fc121ca507c6bd04459b3 15-Mar-2004 Chris Lattner <sabre@nondot.org> Teach basicaa about some stdc functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
7a82ba0510aece59f59fe988ab273c3542b4d559 13-Mar-2004 Chris Lattner <sabre@nondot.org> Fix a couple of minor problems. Because PHI nodes can use themselves, this
could cause infinite loops. Also, getUnderlyingObject can return null


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
04b75935462642641469fb264aab9f1110ce2666 12-Mar-2004 Chris Lattner <sabre@nondot.org> Implement mod/ref analysis for a trivial case where locals don't escape.
This comes up when you have a local array on the stack and you never pass
the address of elements around.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
2d6a6aa1376c220c60f524c4e028c3fb42d2a398 01-Mar-2004 Chris Lattner <sabre@nondot.org> Expand on my note-to-self


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12029 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
e735b2de30b05f5469026ed662975d9e692f0242 22-Feb-2004 Chris Lattner <sabre@nondot.org> Fix a soon-to-be-missing #include


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11707 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a4dd6743e7b300a62b0ee288912657123dafe2f6 30-Jan-2004 Chris Lattner <sabre@nondot.org> Fix thinko


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
bc1daaa8bb13f2cce6801f49928697fcde095a2e 30-Jan-2004 Chris Lattner <sabre@nondot.org> Implement the pointsToConstantMemory() method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
6eb88d44c93f782a988039a047a9b80354a81887 12-Jan-2004 Chris Lattner <sabre@nondot.org> Eliminate use of ConstantHandling itf


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
6cdc42b3d101b698266421f075fdd8ea47c1a66a 28-Dec-2003 Chris Lattner <sabre@nondot.org> Add a note


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
4a83088b307968c25d11ea3e7de254cfb1771aeb 12-Dec-2003 Chris Lattner <sabre@nondot.org> Factor out some duplicated code, implement the rest of the cases in
BasicAA/2003-12-11-ConstExprGEP.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
b307c88fe799eb69c37bee2840d9fde93d407e3a 11-Dec-2003 Chris Lattner <sabre@nondot.org> Fix PR86. This makes basicaa _SIGNIFICANLY_ more aggressive with getelementptr's


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
c54735e7cbd639a612837d93bf75d73507dd7d47 11-Dec-2003 Chris Lattner <sabre@nondot.org> Fix a glaring bug


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
88d3e03429bf3b0e78b1cccbad8a9246a7fdb23e 11-Dec-2003 Chris Lattner <sabre@nondot.org> Realize the gep P, <zeros> must aliases P.
This is a partial fix for PR 86


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
863914578a10d4cf83e1fdc5d7bc3242838c8e6f 11-Dec-2003 Chris Lattner <sabre@nondot.org> With Brian's change to AA.h we can now clean out this uglyness


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10398 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
9d7c9ea05316bab07b2b83caa357dac220078a65 25-Nov-2003 Chris Lattner <sabre@nondot.org> Fix file header


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
1af55e169396dfa057f0a6067fa8b16eb4317909 25-Nov-2003 Chris Lattner <sabre@nondot.org> Use gep_type_begin/end instead of looking for ubytes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10217 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
ec4e8085e83fa1f14a82849548f7c1ad82009ade 25-Nov-2003 Chris Lattner <sabre@nondot.org> Finegrainify namespacification


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.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/BasicAliasAnalysis.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/BasicAliasAnalysis.cpp
c1820036bdedea566c89d2bd47bbbbe4384bdc73 20-Sep-2003 Chris Lattner <sabre@nondot.org> Fix bug: BasicAA/2003-09-19-LocalArgument.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
2f2d06506c9167dada05b11debe717334de972d4 11-Sep-2003 Misha Brukman <brukman+llvm@gmail.com> Fixed spelling and grammar.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
5bfccb9defee2026e113c1fd694eb29b99d4f8a6 03-Jul-2003 Chris Lattner <sabre@nondot.org> Reuse the values if they are constants: this is important so that we index into the right structure field
This fixes bug: BasicAA/2003-07-03-BasicAACrash.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
388f669d956c08571108f26a5371e02269e662f5 17-Jun-2003 Chris Lattner <sabre@nondot.org> Implement handling of constantexprs for disambiguation. This implements
BasicAA/featuretest.ll:constexpr_test


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
920bd79f344acfabe23c8fb00363c58532426753 02-Jun-2003 Chris Lattner <sabre@nondot.org> Be more robust in the face of undefined behavior.
Fixes bug: BasicAA/2003-06-01-AliasCrash.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
9098f64ccce3c3e110e9ef4f08aa2842add4ef08 21-May-2003 Chris Lattner <sabre@nondot.org> Fix Bug: BasicAA/2003-05-21-GEP-Problem.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
807b7055b21c3262f6dfb15bbe22ef648e73c5a9 25-Apr-2003 Chris Lattner <sabre@nondot.org> Fix BasicAA/2003-04-25-GEPCrash.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
b581148bd9d3fea008b5fdd58681671a3d738f19 23-Apr-2003 Chris Lattner <sabre@nondot.org> Fix bug: BasicAA/2003-04-22-GEPProblem.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
3e76157d5afd1ae2b4dc6e41987ab7f9837408ab 06-Mar-2003 Chris Lattner <sabre@nondot.org> Remove unneccesary forward decl


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5710 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
506b4e4368601da94547990213fcd4efc4436163 04-Mar-2003 Chris Lattner <sabre@nondot.org> Fix bug: BasicAA/2003-03-04-GEPCrash.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
ff2d556bab95f32c81a5d1fbf3061d521547ac0a 03-Mar-2003 Chris Lattner <sabre@nondot.org> Fix a problem with negative indexes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5681 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
c330ee6f0245569ade06f72af30bd85ae3cb3341 26-Feb-2003 Chris Lattner <sabre@nondot.org> Fix bug: BasicAA/2003-02-26-AccessSizeTest.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/BasicAliasAnalysis.cpp
a36635aba78d46d0e80dd296c3b0aff56ca94d5e 26-Feb-2003 Chris Lattner <sabre@nondot.org> Fix several bugs in basic-aa


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