History log of /external/llvm/lib/Analysis/LazyValueInfo.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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