History log of /external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
de2d8694e25a814696358e95141f4b1aa4d8847e 20-Sep-2016 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master LLVM for rebase to r275480

Bug: http://b/31320715

This merges commit 7dcf7f03e005379ef2f06db96aa93f06186b66d5 from
aosp/dev.

Test: Build AOSP and run RenderScript tests (host tests for slang and
libbcc, RsTest, CTS)

Change-Id: Iaf3738f74312d875e69f61d604ac058f381a2a1a
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
f3ef5332fa3f4d5ec72c178a2b19dac363a19383 04-Mar-2016 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master LLVM for rebase to r256229

http://b/26987366

Change-Id: I1f29c4676a8abe633ab5707dded58d846c973d50
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
6948897e478cbd66626159776a8017b3c18579b9 01-Jul-2015 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master LLVM for rebase to r239765

Bug: 20140355: This rebase pulls the upstream fix for the spurious
warnings mentioned in the bug.

Change-Id: I7fd24253c50f4d48d900875dcf43ce3f1721a3da
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
0c7f116bb6950ef819323d855415b2f2b0aad987 06-May-2015 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master LLVM for rebase to r235153

Change-Id: I9bf53792f9fc30570e81a8d80d296c681d005ea7
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
4c5e43da7792f75567b693105cc53e3f1992ad98 08-Apr-2015 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master llvm for rebase to r233350

Change-Id: I07d935f8793ee8ec6b7da003f6483046594bca49
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
ebe69fe11e48d322045d5949c83283927a0d790b 23-Mar-2015 Stephen Hines <srhines@google.com> Update aosp/master LLVM for rebase to r230699.

Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
37ed9c199ca639565f6ce88105f9e39e898d82d0 01-Dec-2014 Stephen Hines <srhines@google.com> Update aosp/master LLVM for rebase to r222494.

Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

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

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
985dac65791b9f6f631bdd51c18fe66592a67469 06-Mar-2013 Shuxin Yang <shuxin.llvm@gmail.com> Memory Dependence Analysis (not mem-dep test) take advantage of "invariant.load" metadata.

The "invariant.load" metadata indicates the memory unit being accessed is immutable.
A load annotated with this metadata can be moved across any store.

As I am not sure if it is legal to move such loads across barrier/fence, this
change dose not allow such transformation.

rdar://11311484

Thank Arnold for code review.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
882b9276cb3a19ecc4fd307d8c0acd17574570a0 09-Feb-2013 Jakub Staszak <kubastaszak@gmail.com> Remove trailing spaces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
674be02d525d4e24bc6943ed9274958c580bcfbc 10-Jan-2013 Jakub Staszak <kubastaszak@gmail.com> Fix include guards so they exactly match file names.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
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/include/llvm/Analysis/MemoryDependenceAnalysis.h
255f89faee13dc491cb64fbeae3c763e7e2ea4e6 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Sort the #include lines for the include/... tree with the script.

AKA: Recompile *ALL* the source code!

This one went much better. No manual edits here. I spot-checked for
silliness and grep-checked for really broken edits and everything seemed
good. It all still compiles. Yell if you see something that looks goofy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
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/include/llvm/Analysis/MemoryDependenceAnalysis.h
a3a3219b3a972db6449548abf7e0c9112e8ce7b9 13-Aug-2012 Nadav Rotem <nrotem@apple.com> Fix a documentation typo.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
88990248d3bfb2f265fcf27f8a032ac0eb14d09f 14-Nov-2011 Nick Lewycky <nicholas@mxc.ca> Refactor capture tracking (which already had a couple flags for whether returns
and stores capture) to permit the caller to see each capture point and decide
whether to continue looking.

Use this inside memdep to do an analysis that basicaa won't do. This lets us
solve another devirtualization case, fixing PR8908!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
b414142036012dd9432c4e8c5fef09d4d49fcc22 14-Oct-2011 Eli Friedman <eli.friedman@gmail.com> Enhance the memdep interface so that users can tell the difference between a dependency which cannot be calculated and a path reaching the entry point of the function. This patch introduces isNonFuncLocal, which replaces isUnknown in some cases.

Patch by Xiaoyi Guo.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141896 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
a990e071f2f29ba326b97a4288207a2c406c5b66 15-Jun-2011 Eli Friedman <eli.friedman@gmail.com> Add "unknown" results for memdep, which mean "I don't know whether a dependence for the given instruction exists in the given block". This cleans up all the existing hacks in memdep which represent this concept by returning clobber with various unrelated instructions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
4034e14985af013f71f7884fa275415a3be27778 28-Apr-2011 Chris Lattner <sabre@nondot.org> teach GVN to widen integer loads when they are overaligned, when doing an
wider load would allow elimination of subsequent loads, and when the wider
load is still a native integer type. This eliminates a ton of loads on
various benchmarks involving struct fields, though it is somewhat hobbled
by clang not being very aggressive about field alignment.

This is yet another step along the way towards resolving PR6627.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
1f821512fc1441480b3355305e0da5267073fe1c 26-Apr-2011 Chris Lattner <sabre@nondot.org> Enhance MemDep: When alias analysis returns a partial alias result,
return it as a clobber. This allows GVN to do smart things.

Enhance GVN to be smart about the case when a small load is clobbered
by a larger overlapping load. In this case, forward the value. This
allows us to compile stuff like this:

int test(void *P) {
int tmp = *(unsigned int*)P;
return tmp+*((unsigned char*)P+1);
}

into:

_test: ## @test
movl (%rdi), %ecx
movzbl %ch, %eax
addl %ecx, %eax
ret

which has one load. We already handled the case where the smaller
load was from a must-aliased base pointer.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
cf82dc376a11acb1b5d46d56c032bb0b9326c682 30-Nov-2010 Chris Lattner <sabre@nondot.org> Rewrite the main DSE loop to be written in terms of reasoning
about pairs of AA::Location's instead of looking for MemDep's
"Def" predicate. This is more powerful and general, handling
memset/memcpy/store all uniformly, and implementing PR8701 and
probably obsoleting parts of memcpyoptimizer.

This also fixes an obscure bug with init.trampoline and i8
stores, but I'm not surprised it hasn't been hit yet. Enhancing
init.trampoline to carry the size that it stores would allow
DSE to be much more aggressive about optimizing them.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120406 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
f6f1f062cc8029aa75ca7d0e99fbc1e0b453d07e 21-Nov-2010 Chris Lattner <sabre@nondot.org> implement PR8576, deleting dead stores with intervening may-alias stores.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
ec9b4ac914e91791c580148cf8068c82d4b2cb91 11-Nov-2010 Dan Gohman <gohman@apple.com> Set NonLocalDepInfo's Size field to UnknownSize when invalidating
it, so that it doesn't appear to be a known size.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
075fb5d68fcb55d26e44c48f07dfdbbfa21ccb2a 10-Nov-2010 Dan Gohman <gohman@apple.com> Enhance GVN to do more precise alias queries for non-local memory
references. For example, this allows gvn to eliminate the load in
this example:

void foo(int n, int* p, int *q) {
p[0] = 0;
p[1] = 1;
if (n) {
*q = p[0];
}
}


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
50bcaece670fea4c936c6730fab9f4d869d2ec67 10-Nov-2010 Dan Gohman <gohman@apple.com> Give NonLocalDepResult a NonLocalDepEntry member, replacing
indivudal members holding the same data, to clarify the relationship
between NonLocalDepResult and NonLocalDepEntry.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
bea77bb6e82e7f7feae71b2cafea4f6a9f6098c0 23-Sep-2010 Dan Gohman <gohman@apple.com> Fix uninitialized TBAAFlag field values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
c1ac0d7623f4f2047b4ab86bd5a60a9e19432b38 22-Sep-2010 Dan Gohman <gohman@apple.com> Teach memdep about TBAA tags.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114588 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
ba6ca6dd3bc4a7f30e07010c3b0b95cced719f76 22-Sep-2010 Dan Gohman <gohman@apple.com> Constify.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114574 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
484d4a30c055eef3101d01a7a468db3413dd20d3 16-Feb-2010 Bob Wilson <bob.wilson@apple.com> Split critical edges as needed for load PRE.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
0ee443d169786017d151034b8bd34225bc144c98 22-Dec-2009 Chris Lattner <sabre@nondot.org> The phi translated pointer can be computed when returning a partially cached result
instead of stored. This reduces memdep memory usage, and also eliminates a bunch of
weakvh's. This speeds up gvn on gcc.c-torture/20001226-1.c from 23.9s to 8.45s (2.8x)
on a different machine than earlier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
dad451cb7c6b94b3af40f59271e24357616a05a9 09-Dec-2009 Chris Lattner <sabre@nondot.org> enhance NonLocalDepEntry to keep the per-block phi translated address
of the query.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
e18b97121c286eeff5efe89150b093bf1b7b7bfc 09-Dec-2009 Chris Lattner <sabre@nondot.org> change NonLocalDepEntry from being a typedef for an std::pair to be its
own small class. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
05e15f8897bd949f9d4bce073d53ed3256c71e2b 09-Dec-2009 Chris Lattner <sabre@nondot.org> Switch GVN and memdep to use PHITransAddr, which correctly handles
phi translation of complex expressions like &A[i+1]. This has the
following benefits:

1. The phi translation logic is all contained in its own class with
a strong interface and verification that it is self consistent.

2. The logic is more correct than before. Previously, if intermediate
expressions got PHI translated, we'd miss the update and scan for
the wrong pointers in predecessor blocks. @phi_trans2 is a testcase
for this.

3. We have a lot less code in memdep.

We can handle phi translation across blocks of things like @phi_trans3,
which is pretty insane :).

This patch should fix the miscompiles of 255.vortex, and I tested it
with a bootstrap of llvm-gcc, llvm-test and dejagnu of course.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
750e0e0ad0e599fe701e5492eef5c2cab05f2e5c 05-Dec-2009 Nick Lewycky <nicholas@mxc.ca> Document that memory use intrinsics may also return Def results.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
dd696052f0e4ecc973d105be19cf1b4b72f9a0c4 28-Nov-2009 Chris Lattner <sabre@nondot.org> Enhance InsertPHITranslatedPointer to be able to return a list of newly
inserted instructions. No functionality change until someone starts using it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
6f7b210b2577fbc9247a9fc5223655390008ae89 27-Nov-2009 Chris Lattner <sabre@nondot.org> Rework InsertPHITranslatedPointer to handle the recursive case, this
fixes PR5630 and sets the stage for the next phase of goodness (testcase
pending).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
616613d7a4ddc7cefce53b2bfe3fdcdec6b032c2 27-Nov-2009 Chris Lattner <sabre@nondot.org> teach GVN's load PRE to insert computations of the address in predecessors
where it is not available. It's unclear how to get this inserted
computation into GVN's scalar availability sets, Owen, help? :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
62deff066c5ee4474be80ed2d95aca010e237343 27-Nov-2009 Chris Lattner <sabre@nondot.org> Fix phi translation in load PRE to agree with the phi
translation done by memdep, and reenable gep translation
again.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
81acc554b9599bacf843e080dbf4c72fe88de0f7 31-Jul-2009 Dan Gohman <gohman@apple.com> Fix a typo in a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
6a0dcc10778468b1556474aa43d4a86a14ab15d7 29-Mar-2009 Chris Lattner <sabre@nondot.org> now that you can put a PointerIntPair in a SmallPtrSet, remove some
hackish workarounds from memdep


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
9817b24e74532c13bad2c7350f17e17473b8c57a 22-Jan-2009 Bill Wendling <isanbard@gmail.com> The operator<() and operator>() were reversing their tests. Have the test the correct way.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
9e59c64c14cfe55e7cc9086c6bff8cfeecac361e 15-Dec-2008 Chris Lattner <sabre@nondot.org> Implement initial support for PHI translation in memdep. This means that
memdep keeps track of how PHIs affect the pointer in dep queries, which
allows it to eliminate the load in cases like rle-phi-translate.ll, which
basically end up being:

BB1:
X = load P
br BB3
BB2:
Y = load Q
br BB3
BB3:
R = phi [P] [Q]
load R

turning "load R" into a phi of X/Y. In addition to additional exposed
opportunities, this makes memdep safe in many cases that it wasn't before
(which is required for load PRE) and also makes it substantially more
efficient. For example, consider:


bb1: // has many predecessors.
P = some_operator()
load P

In this example, previously memdep would scan all the predecessors of BB1
to see if they had something that would mustalias P. In some cases (e.g.
test/Transforms/GVN/rle-must-alias.ll) it would actually find them and end
up eliminating something. In many other cases though, it would scan and not
find anything useful. MemDep now stops at a block if the pointer is defined
in that block and cannot be phi translated to predecessors. This causes it
to miss the (rare) cases like rle-must-alias.ll, but makes it faster by not
scanning tons of stuff that is unlikely to be useful. For example, this
speeds up GVN as a whole from 3.928s to 2.448s (60%)!. IMO, scalar GVN
should be enhanced to simplify the rle-must-alias pointer base anyway, which
would allow the loads to be eliminated.

In the future, this should be enhanced to phi translate through geps and
bitcasts as well (as indicated by FIXMEs) making memdep even more powerful.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
bc99be10b815e0bfc5102bd5746e9a80feebf6f4 09-Dec-2008 Chris Lattner <sabre@nondot.org> Teach GVN to invalidate some memdep information when it does an RAUW
of a pointer. This allows is to catch more equivalencies. For example,
the type_lists_compatible_p function used to require two iterations of
the gvn pass (!) to delete its 18 redundant loads because the first pass
would CSE all the addressing computation cruft, which would unblock the
second memdep/gvn passes from recognizing them. This change allows
memdep/gvn to catch all 18 when run just once on the function (as is
typical :) instead of just 3.

On all of 403.gcc, this bumps up the # reundandancies found from:

63 gvn - Number of instructions PRE'd
153991 gvn - Number of instructions deleted
50069 gvn - Number of loads deleted
to:
63 gvn - Number of instructions PRE'd
154137 gvn - Number of instructions deleted
50185 gvn - Number of loads deleted

+120 loads deleted isn't bad.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
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/include/llvm/Analysis/MemoryDependenceAnalysis.h
1559b3625be7b80bee6b066af4b91b9d10dfb5fa 09-Dec-2008 Chris Lattner <sabre@nondot.org> rename getNonLocalDependency -> getNonLocalCallDependency, and remove
pointer stuff from it, simplifying the code a bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
9863c3f507913f17de0fd707e27fde9dc35f6ca6 09-Dec-2008 Chris Lattner <sabre@nondot.org> rename getNonLocalPointerDepInternal -> getNonLocalPointerDepFromBB
and split its inner loop out into a new GetNonLocalInfoForBlock
function. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
4012fdda13710d21b415a79475adc2bbb6628527 09-Dec-2008 Chris Lattner <sabre@nondot.org> use hte new pred cache to speed up the new non-local memdep
queries. This speeds up GVN using the new queries (not yet
checked in) by just over 10%.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
11dcd8d38de031c34380fd6ab7a0daacdefb263a 08-Dec-2008 Chris Lattner <sabre@nondot.org> add another level of caching for non-local pointer queries, keeping
track of whether the CachedNonLocalPointerInfo for a block is specific
to a block. If so, just return it without any pred scanning. This is
good for a 6% speedup on GVN (when it uses this lookup method, which
it doesn't right now).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
c765a5acad26ae3d86832d4153e6569d1043a9ca 07-Dec-2008 Dan Gohman <gohman@apple.com> Use bool instead of int, now that it no longer evokes a warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
e91a4881e17127686345f62df08da6370b14d51f 07-Dec-2008 Chris Lattner <sabre@nondot.org> fix a typo duncan noticed!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
6290f5cac23399201f8785e5ca8b305e42a1342c 07-Dec-2008 Chris Lattner <sabre@nondot.org> add support for caching pointer dependence queries. Nothing uses this yet
so it "can't" break anything. That said, it does appear to work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
9a193fd8ae630478123938e12b56f84c5b2227b9 07-Dec-2008 Chris Lattner <sabre@nondot.org> Some internal refactoring to make it easier to cache results.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60650 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
7ebcf0324668b7c6ba48832d5d8df95689a8d837 07-Dec-2008 Chris Lattner <sabre@nondot.org> Introduce a new MemDep::getNonLocalPointerDependency
method. This will eventually take over load/store dep
queries from getNonLocalDependency. For now it works
fine, but is incredibly slow because it does no caching.
Lets not switch GVN to use it until that is fixed :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
e79be944c8ced0a0cb80ede8cb9f97e4fdc6778f 07-Dec-2008 Chris Lattner <sabre@nondot.org> push the "pointer case" up the analysis stack a bit. This causes
duplication of logic (in 2 places) to determine what pointer a
load/store touches. This will be addressed in a future commit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
8ef57c5faf77890828ac439482420646b2a0beb8 07-Dec-2008 Chris Lattner <sabre@nondot.org> Rename getCallSiteDependency -> getCallSiteDependencyFrom to
emphasize the scanning and make it more similar to
getDependencyFrom



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60642 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
aea5a2a22ad5fa030bb77899f79d9aa27a8b6a88 07-Dec-2008 Chris Lattner <sabre@nondot.org> make getDependencyFrom private.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
b51deb929ca95ce62e622b0475a05d83f26ab04d 05-Dec-2008 Chris Lattner <sabre@nondot.org> Make a few major changes to memdep and its clients:
1. Merge the 'None' result into 'Normal', making loads
and stores return their dependencies on allocations as Normal.
2. Split the 'Normal' result into 'Clobber' and 'Def' to
distinguish between the cases when memdep knows the value is
produced from when we just know if may be changed.
3. Move some of the logic for determining whether readonly calls
are CSEs into memdep instead of it being in GVN. This still
leaves verification that the arguments are hte same to GVN to
let it know about value equivalences in different contexts.
4. Change memdep's call/call dependency analysis to use
getModRefInfo(CallSite,CallSite) instead of doing something
very weak. This only really matters for things like DSA, but
someday maybe we'll have some other decent context sensitive
analyses :)
5. This reimplements the guts of memdep to handle the new results.
6. This simplifies GVN significantly:
a) readonly call CSE is slightly simpler
b) I eliminated the "getDependencyFrom" chaining for load
elimination and load CSE doesn't have to worry about
volatile (they are always clobbers) anymore.
c) GVN no longer does any 'lastLoad' caching, leaving it to
memdep.
7. The logic in DSE is simplified a bit and sped up. A potentially
unsafe case was eliminated.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
6951381995f24dc9c7bbcacefd5a1315784f66f3 05-Dec-2008 Chris Lattner <sabre@nondot.org> Make it illegal to call getDependency* on non-memory instructions
like binary operators.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
0f41ad3bc9a295332a8e6d025b42cebc9b9e8125 01-Dec-2008 Chris Lattner <sabre@nondot.org> cleanups suggested by duncan, thanks!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
bf145d6e2ba01f5099ccaa1b58ed3619406928a0 01-Dec-2008 Chris Lattner <sabre@nondot.org> Reimplement the non-local dependency data structure in terms of a sorted
vector instead of a densemap. This shrinks the memory usage of this thing
substantially (the high water mark) as well as making operations like
scanning it faster. This speeds up memdep slightly, gvn goes from
3.9376 to 3.9118s on 403.gcc

This also splits out the statistics for the cached non-local case to
differentiate between the dirty and clean cached case. Here's the stats
for 403.gcc:

6153 memdep - Number of dirty cached non-local responses
169336 memdep - Number of fully cached non-local responses
162428 memdep - Number of uncached non-local responses

yay for caching :)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
fd3dcbea06f934572a3ba02821b1485eb7a073aa 01-Dec-2008 Chris Lattner <sabre@nondot.org> Eliminate the DepResultTy abstraction. It is now completely
redundant with MemDepResult, and MemDepResult has a nicer interface.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
d777d405cdda8d418ba8e8818e5c1272dfd999a0 30-Nov-2008 Chris Lattner <sabre@nondot.org> Cache TargetData/AliasAnalysis in the pass instead of calling
getAnalysis<>. getAnalysis<> is apparently extremely expensive.
Doing this speeds up GVN on 403.gcc by 16%!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
4a69bade2385022ca776edc22150f3b750cdf23c 30-Nov-2008 Chris Lattner <sabre@nondot.org> Two changes: Make getDependency remove QueryInst for a dirty record's
ReverseLocalDeps when we update it. This fixes a regression test
failure from my last commit.

Second, for each non-local cached information structure, keep a bit that
indicates whether it is dirty or not. This saves us a scan over the whole
thing in the common case when it isn't dirty.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
25f4b2b7a3f1f2bbaf954257e7834ba29a6ede7c 30-Nov-2008 Chris Lattner <sabre@nondot.org> introduce a typedef, no functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
f68f310386c8e1772a3e6eba01f09590678a8f96 30-Nov-2008 Chris Lattner <sabre@nondot.org> Change NonLocalDeps to be a densemap of pointers to densemap
instead of containing them by value. This increases the density
(!) of NonLocalDeps as well as making the reallocation case
faster. This speeds up gvn on 403.gcc by 2% and makes room for
future improvements.

I'm not super thrilled with having to explicitly manage the new/delete
of the map, but it is necesary for the next change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
73ec3cdd7140aee6d2b9ac32bc2298254ff48c97 30-Nov-2008 Chris Lattner <sabre@nondot.org> implement a fixme by introducing a new getDependencyFromInternal
method that returns its result as a DepResultTy instead of as a
MemDepResult. This reduces conversion back and forth.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60266 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
0e0a5b690ca772a9002d8e8d21edac5f011bc7e8 30-Nov-2008 Chris Lattner <sabre@nondot.org> REmove an old fixme, resolve another fixme by adding liberal
comments about what this class does.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
4f8c18c7c757875cfa45383e7cf33d65d2c4d564 30-Nov-2008 Chris Lattner <sabre@nondot.org> Eliminate the dropInstruction method, which is not needed any more.
Fix a subtle iterator invalidation bug I introduced in the last commit.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
0ec48ddef20deaa061152d86645972122beef605 29-Nov-2008 Chris Lattner <sabre@nondot.org> implement some fixme's: when deleting an instruction with
an entry in the nonlocal deps map, don't reset entries
referencing that instruction to [dirty, null], instead, set
them to [dirty,next] where next is the instruction after the
deleted one. Use this information in the non-local deps
code to avoid rescanning entire blocks.

This speeds up GVN slightly by avoiding pointless work. On
403.gcc this makes GVN 1.5% faster.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
396a4a55e535728e2023aa331401c1a2b782cb9a 29-Nov-2008 Chris Lattner <sabre@nondot.org> Change MemDep::getNonLocalDependency to return its results as
a smallvector instead of a DenseMap. This speeds up GVN by 5%
on 403.gcc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
86b29ef64a36c8779ef7855b3c4b95744eb2f08b 29-Nov-2008 Chris Lattner <sabre@nondot.org> reimplement getNonLocalDependency with a simpler worklist
formulation that is faster and doesn't require nonLazyHelper.
Much less code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
233336ebc588e77dde51ebbc3ce88c2d4304f168 29-Nov-2008 Chris Lattner <sabre@nondot.org> tidy up some variable names.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
8c4652790e04515f34cf920b0783d6ec4161a313 29-Nov-2008 Chris Lattner <sabre@nondot.org> rename some maps.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60242 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
5391a1d8046396fb4dd005b1910973789f5427f4 29-Nov-2008 Chris Lattner <sabre@nondot.org> Split getDependency into getDependency and getDependencyFrom, the
former does caching, the later doesn't. This dramatically simplifies
the logic in getDependency and getDependencyFrom.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
7f52422a3c821c1deb7171808ffcf83386970791 29-Nov-2008 Chris Lattner <sabre@nondot.org> Now that DepType is private, we can start cleaning up some of its uses:
Document the Dirty value more precisely, use it for the uninitialized
DepResultTy value. Change reverse mappings to be from an instruction*
instead of DepResultTy, and stop tracking other forms. This makes it more
clear that we only care about the instruction cases.

Eliminate a DepResultTy,bool pair by using Dirty in the local case as well,
shrinking the map and simplifying the code.

This speeds up GVN by ~3% on 403.gcc.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
4c724006256032e827177afeae04ea62436796e7 29-Nov-2008 Chris Lattner <sabre@nondot.org> Introduce and use a new MemDepResult class to hold the results of a memdep
query. This makes it crystal clear what cases can escape from MemDep that
the clients have to handle. This also gives the clients a nice simplified
interface to it that is easy to poke at.

This patch also makes DepResultTy and MemoryDependenceAnalysis::DepType
private, yay.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
39f372e23e49cecb8db2eb7120eb331173e50c74 29-Nov-2008 Chris Lattner <sabre@nondot.org> Reimplement the internal abstraction used by MemDep in terms
of a pointer/int pair instead of a manually bitmangled pointer.
This forces clients to think a little more about checking the
appropriate pieces and will be useful for internal
implementation improvements later.

I'm not particularly happy with this. After going through this
I don't think that the clients of memdep should be exposed to
the internal type at all. I'll fix this in a subsequent commit.

This has no functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
956033a4f5de491fcc07bc3ef0700ad22fd836a0 28-Nov-2008 Chris Lattner <sabre@nondot.org> comment cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
b390b1728e6c36f1f28d75d6f8f27cb91f8a8c56 28-Nov-2008 Chris Lattner <sabre@nondot.org> forward declare CallSite instead of #includ'ing it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60217 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
8b589fa135d873e683b29ed0918638a79272f5d2 28-Nov-2008 Chris Lattner <sabre@nondot.org> rename "ping" to "verifyRemoved". I don't know why 'ping' what chosen,
but it doesn't make any sense at all.

Also make the method const, private, and fit in 80 cols while we're at it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
e85866313a551fa3d4e2f118c3bf34e96af36763 28-Nov-2008 Chris Lattner <sabre@nondot.org> comment and indentation improvements.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
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/include/llvm/Analysis/MemoryDependenceAnalysis.h
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/include/llvm/Analysis/MemoryDependenceAnalysis.h
c7fe32e840758baa9ce4f93c321b508a69b98262 19-Mar-2008 Devang Patel <dpatel@apple.com> Do not use virtual function to identify an analysis pass.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
1cee94f04111cfd7114979d6dfddce2669c9380d 18-Mar-2008 Devang Patel <dpatel@apple.com> Identify Analysis pass.
Do not run analysis pass again if analysis info is still available.
This fixes PR1441.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
30b4bd4d1099764db4f1e1a955b7f7cc9dafdd97 12-Feb-2008 Owen Anderson <resistor@mac.com> Re-apply the patch to improve the optimizations of memcpy's, with several
bugs fixed. This now passes PPC bootstrap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
7ed47a13356daed2a34cd2209a31f92552e3bdd8 29-Dec-2007 Chris Lattner <sabre@nondot.org> Don't attribute in file headers anymore. See llvmdev for the
discussion of this change. Boy are my fingers tired. ;-)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
5fc4abac3db46b6e6b3824163c0f1252c1ab0ebb 08-Dec-2007 Owen Anderson <resistor@mac.com> Fix several cache coherence bugs in MemDep/GVN that were found. Also add some (disabled) debugging code
to make such problems easier to diagnose in the future, written by Duncan Sands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
742f9b66822cb03af0cf7b94436e9d0288565591 19-Sep-2007 Owen Anderson <resistor@mac.com> Add a flag to mark a dirty cache entry. This is not yet used, but will eventually
help non-local memdep caching.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
4d13de4e3bfc5121207efd01e1b31caa6bb4e40b 16-Aug-2007 Owen Anderson <resistor@mac.com> Cache non-local memory dependence analysis. This is a significant compile
time performance win in most cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
9528f11481e6840a10442733f1dc45c04b79d596 09-Aug-2007 Owen Anderson <resistor@mac.com> Make NonLocal and None const in the right way. :-)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
49609a5ddfe8a318eb155a9ccaf0464cd54aa3c7 08-Aug-2007 Owen Anderson <resistor@mac.com> Add one more comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
179463c0d4c20bfb2c6b1e697eed6f16305a201e 08-Aug-2007 Owen Anderson <resistor@mac.com> Cleanup and comment-ize the memdep header.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
8cad423d94fd7e30d84742311c454016f36e3ee3 08-Aug-2007 Owen Anderson <resistor@mac.com> Change the None and NonLocal markers in memdep to be const.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40946 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
371d68958f1c59dbd47730ed17acec5594b1149d 07-Aug-2007 Owen Anderson <resistor@mac.com> Get rid of unnecessary #include.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
dbbe816757700e44018144f392d8e6f13971ba86 07-Aug-2007 Owen Anderson <resistor@mac.com> Clean up a bunch of caching stuff in memdep. This reduces the time to run GVN
on 403.gcc from ~15s to ~10s.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
9066020993695a690c1f979f9cac4e14d325e237 02-Aug-2007 Owen Anderson <resistor@mac.com> Make non-local memdep not be recursive, and fix a bug on 403.gcc that this exposed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
df464195fe049d5ea921e2e37f4f833c2ea4e3ec 31-Jul-2007 David Greene <greened@obbligato.org> Fix GLIBCXX_DEBUG error owing to dereference of end iterator. There's
no guarantee that an instruction returned by getDependency exists in
the maps.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
02d6852a1c295030a8cff6b665c57e97c2624df5 25-Jul-2007 Owen Anderson <resistor@mac.com> Forgot to include this file in my last commit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
0cd320362e91852c8f7f2c8c4841498aab7f92fa 25-Jul-2007 Owen Anderson <resistor@mac.com> Add basic support for performing whole-function RLE.
Note: This has not yet been thoroughly tested. Use at your own risk.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
4beedbd0063a8ba6f97db02c3c94707d8ab45b50 24-Jul-2007 Owen Anderson <resistor@mac.com> Add initial support for non-local memory dependence analysis.
NOTE: This has only been cursorily tested. Expected improvements soon.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
faac518ce0ae88a19f26b9aa9d34f6bf86ecb8c4 16-Jul-2007 Owen Anderson <resistor@mac.com> Add support for walking up memory def chains, which enables finding many more
dead stores on 400.perlbench.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39929 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
5f323207971da23e2f78dd61d383e9d506fd9d6c 10-Jul-2007 Owen Anderson <resistor@mac.com> Add support for finding the dependencies of call and invoke instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
6b278fc7860c1e0e5cf72340e43f78a87159be4c 10-Jul-2007 Owen Anderson <resistor@mac.com> Fix a bunch of things from Chris' feedback


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
78e02f78ce68274163e1e63be59abd17aaaf6cbf 07-Jul-2007 Owen Anderson <resistor@mac.com> A first stab at memory dependence analysis. This is an interface on top of
alias analysis, adding caching and lazy computation of queries. This will
be used in planned improvements to memory access optimizations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h