cddc3e03e4ec99c0268c03a126195173e519ed58 |
|
04-Mar-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r256229 http://b/26987366 (cherry picked from commit f3ef5332fa3f4d5ec72c178a2b19dac363a19383) Change-Id: Ic75dcb63191d65df1b69724576392c0aaeb47728
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
4c5e43da7792f75567b693105cc53e3f1992ad98 |
|
08-Apr-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master llvm for rebase to r233350 Change-Id: I07d935f8793ee8ec6b7da003f6483046594bca49
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
ebe69fe11e48d322045d5949c83283927a0d790b |
|
23-Mar-2015 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r230699. Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
37ed9c199ca639565f6ce88105f9e39e898d82d0 |
|
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r222494. Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
6227d5c690504c7ada5780c00a635b282c46e275 |
|
04-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
de0eb19248f3053c07a5b1dad9c47b8435458337 |
|
31-Jan-2013 |
Dan Gohman <dan433584@gmail.com> |
Move isKnownNonNull out of AliasAnalysis.h and into ValueTracking.cpp since it isn't really an AliasAnalysis concept, and ValueTracking has similar things that it could plausibly share code with some day. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
0b8c9a80f20772c3793201ab5b251d3520b9cea3 |
|
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move all of the header files which are involved in modelling the LLVM IR into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib. Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
4734fe19f6d240a911918a330a786751fe1030d9 |
|
26-Oct-2012 |
Nick Lewycky <nicholas@mxc.ca> |
Hoist out some work done inside a loop doing a linear scan over all instructions in a block. GetUnderlyingObject is more expensive than it looks as it can, for instance, call SimplifyInstruction. This might have some behavioural changes in odd corner cases, but only because of some strange artefacts of the original implementation. If you were relying on those, we can fix that by replacing this with a smarter algorithm. Change passes the existing tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166754 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
3574eca1b02600bac4e625297f4ecf745f4c4f32 |
|
08-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Move TargetData to DataLayout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
94c22716d60ff5edf6a98a3c67e0faa001be1142 |
|
27-Sep-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
7e2c793a2b5c746344652b6579e958ee42fafdcc |
|
27-Sep-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Fix a typo 'iff' => 'if' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
408853ea162b6b68d3e8defc7f96afad1942dd11 |
|
06-Sep-2012 |
Manman Ren <mren@apple.com> |
JumpThreading: when default destination is the destination of some cases in a switch, make sure we include the value for the cases when calculating edge value from switch to the default destination. rdar://12241132 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
05d96f98cbd96dab7f4ea1ea4ebe4285597e7e88 |
|
22-Aug-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Reduce duplicated hash map lookups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
e50487796d49624bf174bd08a86d20fcdbfb45c1 |
|
28-Jun-2012 |
Nuno Lopes <nunoplopes@sapo.pt> |
make LazyValueInfo analyze the default case of switch statements (we know that in the default branch the value cannot be any of the switch cases) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
e4413947843c66cd71c160fffcb711a763c30914 |
|
28-Jun-2012 |
Nuno Lopes <nunoplopes@sapo.pt> |
make LVI::getEdgeValue() always intersect the constraints of the edge with the range of the block. Previously it was only performing the intersection for a few cases, thus losing precision git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
90255a85172a560da73e05dad6cdb77d8e9480e1 |
|
18-May-2012 |
Nuno Lopes <nunoplopes@sapo.pt> |
allow LazyValueInfo::getEdgeValue() to reason about multiple edges from the same switch instruction by doing union of ranges (which may still be conservative, but it's more aggressive than before) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
97f87abbf4bc270c794abbbf8e152f38b0731d85 |
|
18-May-2012 |
Nuno Lopes <nunoplopes@sapo.pt> |
minor simplification in the call to ConstantRange constructor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157024 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
3d3abe0852d5f499bed7ab014519dd582a0a795d |
|
11-Mar-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
llvm::SwitchInst Renamed methods caseBegin, caseEnd and caseDefault with case_begin, case_end, and case_default. Added some notes relative to case iterators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
c10fa6c801e48771b5eade50afc2fe6abaf08227 |
|
08-Mar-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Taken into account Duncan's comments for r149481 dated by 2nd Feb 2012: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120130/136146.html Implemented CaseIterator and it solves almost all described issues: we don't need to mix operand/case/successor indexing anymore. Base iterator class is implemented as a template since it may be initialized either from "const SwitchInst*" or from "SwitchInst*". ConstCaseIt is just a read-only iterator. CaseIt is read-write iterator; it allows to change case successor and case value. Usage of iterator allows totally remove resolveXXXX methods. All indexing convertions done automatically inside the iterator's getters. Main way of iterator usage looks like this: SwitchInst *SI = ... // intialize it somehow for (SwitchInst::CaseIt i = SI->caseBegin(), e = SI->caseEnd(); i != e; ++i) { BasicBlock *BB = i.getCaseSuccessor(); ConstantInt *V = i.getCaseValue(); // Do something. } If you want to convert case number to TerminatorInst successor index, just use getSuccessorIndex iterator's method. If you want initialize iterator from TerminatorInst successor index, use CaseIt::fromSuccessorIndex(...) method. There are also related changes in llvm-clients: klee and clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152297 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
8979e5f3725c05bd7120890e39399213fd08f83e |
|
02-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
LVI: Recognize the form instcombine canonicalizes range checks into when forming constant ranges. This could probably be made a lot smarter, but this is a common case and doesn't require LVI to scan a lot of code. With this change CVP can optimize away the "shift == 0" case in Hashing.h that only gets hit when "shift" is in a range not containing 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151919 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
24473120a253a05f3601cd3373403b47e6d03d41 |
|
01-Feb-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
SwitchInst refactoring. The purpose of refactoring is to hide operand roles from SwitchInst user (programmer). If you want to play with operands directly, probably you will need lower level methods than SwitchInst ones (TerminatorInst or may be User). After this patch we can reorganize SwitchInst operands and successors as we want. What was done: 1. Changed semantics of index inside the getCaseValue method: getCaseValue(0) means "get first case", not a condition. Use getCondition() if you want to resolve the condition. I propose don't mix SwitchInst case indexing with low level indexing (TI successors indexing, User's operands indexing), since it may be dangerous. 2. By the same reason findCaseValue(ConstantInt*) returns actual number of case value. 0 means first case, not default. If there is no case with given value, ErrorIndex will returned. 3. Added getCaseSuccessor method. I propose to avoid usage of TerminatorInst::getSuccessor if you want to resolve case successor BB. Use getCaseSuccessor instead, since internal SwitchInst organization of operands/successors is hidden and may be changed in any moment. 4. Added resolveSuccessorIndex and resolveCaseIndex. The main purpose of these methods is to see how case successors are really mapped in TerminatorInst. 4.1 "resolveSuccessorIndex" was created if you need to level down from SwitchInst to TerminatorInst. It returns TerminatorInst's successor index for given case successor. 4.2 "resolveCaseIndex" converts low level successors index to case index that curresponds to the given successor. Note: There are also related compatability fix patches for dragonegg, klee, llvm-gcc-4.0, llvm-gcc-4.2, safecode, clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
160fee7349941ea8c6b350023d6ed0685840c9a2 |
|
18-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
805e2247fc915246f0409d107233328a6dc2ba78 |
|
12-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
A DenseMap of a std::map isn't a very good idea because the "grow()" method will need to make a deep copy of each of the std::maps. Use a std::map of the std::map instead. This improves the compile time of sqlite3 by ~2%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
aa8b994c6a7302902b00313bdf249cea9e302f7f |
|
12-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Revert r147978. A DenseMap's iterators may become invalidated here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
337a269dece7f14ef0a39f980d5ee45ae3034a8f |
|
11-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Use a DenseMap. This appears to improve sqlite3's compile time by ~2%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
c00c05f8f5b89d9feb7a822dfc7ba85f843a9a55 |
|
03-Dec-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Clear the new cache. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145771 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
feb9b4bc3be0afe3f820c35fb858b4ea196a0e99 |
|
03-Dec-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add a "seen blocks" cache to LVI to avoid a linear scan over the whole cache just to remove no blocks from the maps. -15% on ARMDisassembler.cpp (Release build). It's not that great to add another layer of caching to the caching-heavy LVI but I don't see a better way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
aab8e28d5e470711d80276bbf717408c3ab966fd |
|
02-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Fix a few more places where TargetData/TargetLibraryInfo is not being passed. Add FIXMEs to places that are non-trivial to fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e |
|
18-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
land David Blaikie's patch to de-constify Type, with a few tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
69388e5a4a941e7e02c7f4b52d6e743a480e135f |
|
31-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
llvm.memcpy.* has two distinct associated address spaces; the source address space, and the destination address space. Fix up the interface on MemIntrinsic and MemTransferInst to make this clear, and fix InstructionDereferencesPointer in LazyValueInfo.cpp to use the interface properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
ddcdcc88631c6bd4ad43d9198b98bc9a829be036 |
|
23-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove unused STL header includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
3b55a372d4c457d65dadd9a04c2b2d310f1bab83 |
|
18-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Mark some functions as used which are used within debug-only code. This silences Clang's -Wunused-function when building in release mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
786c7cd14174265cfb0847f6e7faf53b6b96f9f6 |
|
15-Jan-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Teach LazyValueInfo that allocas aren't NULL. Over all of llvm-test, this saves half a million non-local queries, each of which would otherwise have triggered a linear scan over a basic block. Also fix a fixme for memory intrinsics which dereference pointers. With this, we prove that a pointer is non-null because it was dereferenced by an intrinsic 112 times in llvm-test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123533 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
e68713ae8b7bc30ce96f9d74685e3c230340a01f |
|
06-Jan-2011 |
Owen Anderson <resistor@mac.com> |
Reorder, rename, and document some members to make this easier to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122929 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
be41901d5a8b48ef6587a9f4c688376033e4a590 |
|
05-Jan-2011 |
Owen Anderson <resistor@mac.com> |
When computing the value on an edge, in certain cases LVI would fail to compute the value range in the predecessor block, leading to an incorrect conclusion for the edge value. Found by inspection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122908 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
89778462c0ebd61f54048cf19be6a7387a6fc940 |
|
05-Jan-2011 |
Owen Anderson <resistor@mac.com> |
Re-convert several of LazyValueInfo's internal maps to Dense{Map|Set}, and fix the issue in hasBlockValue() that was causing iterator invalidations. Many thanks to Dimitry Andric for tracking down those invalidations! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
4d3daab1a1fac657552d8eaf230a41d260670f84 |
|
21-Dec-2010 |
Owen Anderson <resistor@mac.com> |
Speculatively revert the use of DenseMap in LazyValueInfo, which may be causing Linux self-host failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
bb39ac1458deecf167af2c51c9cbc0a80a0efb98 |
|
21-Dec-2010 |
Owen Anderson <resistor@mac.com> |
Attempt to appease the DragonEgg buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
aa6f105629e264b8de47b532028f99f75a33aa70 |
|
20-Dec-2010 |
Owen Anderson <resistor@mac.com> |
Convert one of LVI's primary maps to a DenseMap, now that we know are more assured of iterator stability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
87790abb08eea60a2fa090b6d7b498cc625fa3f2 |
|
20-Dec-2010 |
Owen Anderson <resistor@mac.com> |
More LVI cleanups, including trying to simplify the process of maintaining the OverDefinedCache. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
61863945284611b85b8f5d1233fa3817b00994cd |
|
20-Dec-2010 |
Owen Anderson <resistor@mac.com> |
Reuse the reference into the LVI cache throughout the solver subsystem. This is much easier to verify as being safe thanks its recent de-recursivization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
90862eeb7d7b15966e8711b26605eb507879837b |
|
18-Dec-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Make LazyValueInfo non-recursive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
5034dd318a9dfa0dc45a3ac01e58e60f2aa2498d |
|
15-Dec-2010 |
Dan Gohman <gohman@apple.com> |
Move Value::getUnderlyingObject to be a standalone function so that it can live in Analysis instead of VMCore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
69bfdf5a2465ad4439079cf7a4ee158f4fcc5b35 |
|
15-Dec-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Clean up some of LVI: * mergeIn now uses constant folding for constants that are provably not-equal. * sink some sanity checks from the get*() methods into the mark*() methods, to ensure that we never have a constant/notconstant ConstantInt * some textual cleanups, whitespace changes, removing "else" after return, that sort of thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
f33b302e5bef8d7c71cbf6c6bb63776f067d3d89 |
|
09-Dec-2010 |
Owen Anderson <resistor@mac.com> |
Take the first step towards making LVI non-recursive: get rid of the LVIQuery abstraction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
ce665bd2e2b581ab0858d1afe359192bac96b868 |
|
08-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Now with fewer extraneous semicolons! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
c2ce21ad51590377b572a572243e373f7a7b9fb4 |
|
16-Sep-2010 |
Owen Anderson <resistor@mac.com> |
It is possible, under specific circumstances involving ptrtoint ConstantExpr's, for LVI to end up trying to merge a Constant into a ConstantRange. Handle this conservatively for now, rather than asserting. The testcase is more complex that I would like, but the manifestation of the problem is sensitive to iteration orders and the state of the LVI cache, and I have not been able to reproduce it with manually constructed or simplified cases. Fixes PR8162. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
6bcd3a02653c45b87094577517547b7eb9f76395 |
|
07-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Clean up some of the PassRegistry implementation, and pImpl-ize it to reduce #include clutter and exposing internal details. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
198381e542320265e1c5fed18e938db3563a45bf |
|
07-Sep-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Add completely hokey binary-and and binary-or operations to ConstantRange and teach LazyValueInfo to use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
17aa68055beed6faa48ca3a995c5b6fdf5092fd4 |
|
04-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
zap dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
1593dd6779d7ab1db13c44f32f987c32aff2b54b |
|
03-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Add support for simplifying a load from a computed value to a load from a global when it is provable that they're equivalent. This fixes PR4855. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
4caef6001d2180a707ab42f4986f9941d5d0248b |
|
03-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Remove incorrect and poorly tested code for trying to reason about values on default edges of switches. Just return the conservatively correct answer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112876 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
66048c2169dd8d7541eae39e5c2aa2a935fc46fa |
|
02-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Fix a bug in LazyValueInfo that CorrelatedValuePropagation exposed: In the LVI lattice, undef and the full set ConstantRange should not be treated as equivalent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
392953262ee9ce3e3ff714867d01e1e1edbe391d |
|
30-Aug-2010 |
Owen Anderson <resistor@mac.com> |
It is possible to try to merge a not-constant with a constantrage, when dealing with ptrtoint ConstantExpr's. Unfortunately, the only testcase I have for this is huge and doesn't reduce well because the error is sensitive to iteration-order issues, since the problem only occurs when merging values in a particular order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
ee61fcf98bb84e7e9f3450035bef92c4d087c0ae |
|
28-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Improve the precision of getConstant(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
660cab32fe5105bcaa17daa4704c24065ac0a7e6 |
|
27-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Use LVI to eliminate conditional branches where we've tested a related condition previously. Update tests for this change. This fixes PR5652. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
6cd207554994a6ad8577cdd1efd3ef3917bd547f |
|
25-Aug-2010 |
Owen Anderson <resistor@mac.com> |
In the default address space, any GEP off of null results in a trap value if you try to load it. Thus, any load in the default address space that completes implies that the base value that it GEP'd from was not null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
7bef92ac7ad4da315fab3aca017175e856cb4702 |
|
25-Aug-2010 |
Owen Anderson <resistor@mac.com> |
NULL loads are only invalid in the default address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111972 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
dae90c6afb5f625244c5bb3962669bd1f8a3d5be |
|
24-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Add support for inferring values for the default cases of switches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
c8ef750605385b3704c0e310b91a0e042cac5781 |
|
24-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Add support for inferring that a load from a pointer implies that it is not null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
59b06dc7758fb6087cdcf5d9f45a9ebb11e05504 |
|
24-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Don't assume that all constants with integer types are ConstantInts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
b81fd62a6688d165d1de268d1f9fe0f4abe1d99b |
|
18-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Use ConstantRange to propagate information through value definitions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
00ac77ef886f57bd421341d717849695e5fde474 |
|
18-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Inform LazyValueInfo whenever a block is deleted, to avoid dangling pointer issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
4bb3eafab535d5f5c3567e1d958df257c1e3a4aa |
|
17-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Fix another iterator invalidation that caused a *really* nasty miscompilation in 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
cf6abd248672486bf037c8b74d4a779be6d5688a |
|
12-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Fix a subtle use-after-free issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
2d0f2470ff8127351fb10dc229a921fe9003eff3 |
|
11-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Improve indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
625051be7e30d70ba44878a0f3b4d4195902a8ef |
|
11-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Now that we're using ConstantRange to represent potential values, make use of that represenation to create constraints from comparisons other than eq/neq. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
9f014061799c01bd6eb5947f95a330ee99798efc |
|
10-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Switch over to using ConstantRange to track integral values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
2f3ffb80fa19cea89e507ad14966ce511012f308 |
|
09-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Add ConstantRange information to the debugging output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
5be2e78fa1cc2df5d51d6ff3b107598a32974b49 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Add the beginnings of infrastructure for range tracking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110388 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
db78d73d969d84730816c574c30dc166450ef974 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Split the tag and value members of LVILatticeVal in preparation for expanding the lattice to something that won't fit in two bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
7f9cb744f284f23b362b010c1986d230c89d179c |
|
31-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Add an initial implementation of PHI translation for LazyValueInfo. This involves rolling back some of my earlier data structure improvements until I can ensure that there are no iterator invalidation problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
81881bcd35ad944a8f8e14b8c5c05096cabd98c7 |
|
30-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Revert my last two patches to LVI, which recent changes have exposed a miscompilation in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
e2fb451dbb50d9b1b4254f5acc7c98b1a8ebd3cf |
|
29-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Pass the queried value by argument rather than in a member, in preparation for supporting PHI translation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
9da5c997c0015079c9f082759ea07ea09f285333 |
|
29-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Get rid of LVIQuery as a distinct data structure, so that we don't have to initialize a new set of maps on every query. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
9a65dc996801d73c2a460a41cdb46bff6f8303a1 |
|
28-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Rearrange several datastructures in LazyValueInfo to improve compile time. This is still not perfect, but better than it was before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109563 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
cfa7fb6df5aaaf9e54fe97633167b44782224e45 |
|
26-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Add an initial implementation of LazyValueInfo updating for JumpThreading. Disabled for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
d13db2c59cc94162d6cf0a04187d408bfef6d4a7 |
|
22-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Fix batch of converting RegisterPass<> to INTIALIZE_PASS(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
5d93a1fb36ee91c92b5d219376f3c2f26ec7301e |
|
23-Dec-2009 |
David Greene <greened@obbligato.org> |
Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
d6add155a7d690c11d707f36934d62a939531381 |
|
16-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
typo spotted by duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
800c47ec10b199e6601031b508c31d783c19a659 |
|
15-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
teach LVI to infer edge information from switch instructions. This allows JT to eliminate a ton of infeasible edges when handling code like the templates in PatternMatch.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
5553a3a5108f2942672cfac6f7bcf433acaf89ff |
|
15-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
fix a logic error that would cause LVI-JT to miscompile some conditionals git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
e5642812d388c29c71e078c5599db350c3dbc79a |
|
15-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
implement the first stab at caching queries. This isn't correct (because the invalidation logic is missing) but LVI isn't enabled by default anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
2c5adf832aa40240adb7c3e673b4d4ac902c9ad7 |
|
15-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
refactor a bunch of code forming the new LazyValueInfoCache and LVIQuery classes, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
f496e79f44f13ac80564f5f8e69aa648033e7889 |
|
12-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
various fixes to the lattice transfer functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
b52675b643db496bcea218bd3d5fc5e23f523c22 |
|
12-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
Add a new getPredicateOnEdge method which returns more rich information for constant constraints. Improve the LVI lattice to include inequality constraints. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
38392bbeb81233d0b342ad33166fc82ad922bc34 |
|
12-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
expose edge information and switch j-t to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
b8c124c3439ae5fad6a6c8a7aa0d3dd48787d265 |
|
12-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
move some stuff into DEBUG's and turn on lazy-value-info for the basic.ll testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
1697652922452529e2f20730398d09a69a60e530 |
|
11-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
make LazyValueInfo actually to some stuff. This isn't very tested but improves strswitch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
cc4d3b25f336eef135cb7125716ecb2c1979e92e |
|
11-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
stub out some LazyValueInfo interfaces, and have JumpThreading start using them in a trivial way when -enable-jump-threading-lvi is passed. enable-jump-threading-lvi will be my playground for awhile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|
10f2d13d580da348ba9769864f02d0d5a862c1e0 |
|
11-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
Stub out a new lazy value info pass, which will eventually vend value constraint information to the optimizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/LazyValueInfo.cpp
|