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
|