Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								d9d80b1dde 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 151919 
							
						 
						
							2012-03-02 15:34:43 +00:00  
						
					 
				
					
						
							
							
								 
								Stepan Dyatkovskiy
							
						 
						
							 
							
							
							
							
								
							
							
								513aaa5691 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 149481 
							
						 
						
							2012-02-01 07:49:51 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								75afc7afe8 
								
							 
						 
						
							
							
								
								Remove dead code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 148384 
							
						 
						
							2012-01-18 10:10:28 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								58c7569854 
								
							 
						 
						
							
							
								
								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%.
llvm-svn: 148003 
							
						 
						
							2012-01-12 01:41:03 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								4ec081a4d2 
								
							 
						 
						
							
							
								
								Revert r147978. A DenseMap's iterators may become invalidated here.  
							
							 
							
							... 
							
							
							
							llvm-svn: 147980 
							
						 
						
							2012-01-11 23:43:34 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								f0275df9e3 
								
							 
						 
						
							
							
								
								Use a DenseMap.  
							
							 
							
							... 
							
							
							
							This appears to improve sqlite3's compile time by ~2%.
llvm-svn: 147978 
							
						 
						
							2012-01-11 22:57:32 +00:00  
						
					 
				
					
						
							
							
								 
								Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								bbf3c60786 
								
							 
						 
						
							
							
								
								Clear the new cache.  
							
							 
							
							... 
							
							
							
							llvm-svn: 145771 
							
						 
						
							2011-12-03 15:19:55 +00:00  
						
					 
				
					
						
							
							
								 
								Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								3664708378 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 145770 
							
						 
						
							2011-12-03 15:16:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chad Rosier
							
						 
						
							 
							
							
							
							
								
							
							
								43a33066b4 
								
							 
						 
						
							
							
								
								Fix a few more places where TargetData/TargetLibraryInfo is not being passed.  
							
							 
							
							... 
							
							
							
							Add FIXMEs to places that are non-trivial to fix.
llvm-svn: 145661 
							
						 
						
							2011-12-02 01:26:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								229907cd11 
								
							 
						 
						
							
							
								
								land David Blaikie's patch to de-constify Type, with a few tweaks.  
							
							 
							
							... 
							
							
							
							llvm-svn: 135375 
							
						 
						
							2011-07-18 04:54:35 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								7a5fc693f9 
								
							 
						 
						
							
							
								
								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.  
							
							 
							
							... 
							
							
							
							llvm-svn: 132356 
							
						 
						
							2011-05-31 20:40:16 +00:00  
						
					 
				
					
						
							
							
								 
								Jay Foad
							
						 
						
							 
							
							
							
							
								
							
							
								1a180156b6 
								
							 
						 
						
							
							
								
								Remove unused STL header includes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 130068 
							
						 
						
							2011-04-23 19:53:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chandler Carruth
							
						 
						
							 
							
							
							
							
								
							
							
								2b1ba48f8d 
								
							 
						 
						
							
							
								
								Mark some functions as used which are used within debug-only code. This  
							
							 
							
							... 
							
							
							
							silences Clang's -Wunused-function when building in release mode.
llvm-svn: 129709 
							
						 
						
							2011-04-18 18:49:44 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								367f98f000 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 123533 
							
						 
						
							2011-01-15 09:16:12 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								6f060afbbd 
								
							 
						 
						
							
							
								
								Reorder, rename, and document some members to make this easier to follow.  
							
							 
							
							... 
							
							
							
							llvm-svn: 122929 
							
						 
						
							2011-01-05 23:26:22 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								e86dacf449 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 122908 
							
						 
						
							2011-01-05 21:37:18 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								118ac80c81 
								
							 
						 
						
							
							
								
								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!
llvm-svn: 122906 
							
						 
						
							2011-01-05 21:15:29 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								c6beda80ff 
								
							 
						 
						
							
							
								
								Speculatively revert the use of DenseMap in LazyValueInfo, which may be causing Linux self-host failures.  
							
							 
							
							... 
							
							
							
							llvm-svn: 122291 
							
						 
						
							2010-12-20 23:53:19 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								9be3ec6264 
								
							 
						 
						
							
							
								
								Attempt to appease the DragonEgg buildbots.  
							
							 
							
							... 
							
							
							
							llvm-svn: 122288 
							
						 
						
							2010-12-20 23:23:18 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								813a2c45a8 
								
							 
						 
						
							
							
								
								Convert one of LVI's primary maps to a DenseMap, now that we know are more assured of iterator stability.  
							
							 
							
							... 
							
							
							
							llvm-svn: 122273 
							
						 
						
							2010-12-20 21:30:54 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								d83f98a51e 
								
							 
						 
						
							
							
								
								More LVI cleanups, including trying to simplify the process of maintaining the OverDefinedCache.  
							
							 
							
							... 
							
							
							
							llvm-svn: 122256 
							
						 
						
							2010-12-20 19:33:41 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								64c2c5798a 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 122254 
							
						 
						
							2010-12-20 18:18:16 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								55a700b0cf 
								
							 
						 
						
							
							
								
								Make LazyValueInfo non-recursive.  
							
							 
							
							... 
							
							
							
							llvm-svn: 122120 
							
						 
						
							2010-12-18 01:00:40 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								a4fcd2418d 
								
							 
						 
						
							
							
								
								Move Value::getUnderlyingObject to be a standalone  
							
							 
							
							... 
							
							
							
							function so that it can live in Analysis instead of
VMCore.
llvm-svn: 121885 
							
						 
						
							2010-12-15 20:02:24 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								11678bd299 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 121877 
							
						 
						
							2010-12-15 18:57:18 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								c7ed4dc932 
								
							 
						 
						
							
							
								
								Take the first step towards making LVI non-recursive: get rid of the LVIQuery abstraction.  
							
							 
							
							... 
							
							
							
							llvm-svn: 121357 
							
						 
						
							2010-12-09 06:14:58 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								df7a4f2515 
								
							 
						 
						
							
							
								
								Now with fewer extraneous semicolons!  
							
							 
							
							... 
							
							
							
							llvm-svn: 115996 
							
						 
						
							2010-10-07 22:25:06 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								140296f5c0 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 114103 
							
						 
						
							2010-09-16 18:28:33 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a74fa15f32 
								
							 
						 
						
							
							
								
								Clean up some of the PassRegistry implementation, and pImpl-ize it to reduce #include clutter  
							
							 
							
							... 
							
							
							
							and exposing internal details.
llvm-svn: 113252 
							
						 
						
							2010-09-07 19:16:25 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								ad48e01eef 
								
							 
						 
						
							
							
								
								Add completely hokey binary-and and binary-or operations to ConstantRange and  
							
							 
							
							... 
							
							
							
							teach LazyValueInfo to use them.
llvm-svn: 113196 
							
						 
						
							2010-09-07 05:39:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								65b48b5dfc 
								
							 
						 
						
							
							
								
								zap dead code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 113073 
							
						 
						
							2010-09-04 18:12:00 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								c725462245 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 112994 
							
						 
						
							2010-09-03 19:08:37 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								2912df072d 
								
							 
						 
						
							
							
								
								Remove incorrect and poorly tested code for trying to reason about values on default edges of  
							
							 
							
							... 
							
							
							
							switches.  Just return the conservatively correct answer.
llvm-svn: 112876 
							
						 
						
							2010-09-02 22:16:52 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a8c896b704 
								
							 
						 
						
							
							
								
								Fix a bug in LazyValueInfo that CorrelatedValuePropagation exposed: In the LVI lattice, undef and the full set ConstantRange should not  
							
							 
							
							... 
							
							
							
							be treated as equivalent.
llvm-svn: 112843 
							
						 
						
							2010-09-02 18:23:58 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								9517943d11 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 112489 
							
						 
						
							2010-08-30 17:03:45 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								38f6b7fe3b 
								
							 
						 
						
							
							
								
								Improve the precision of getConstant().  
							
							 
							
							... 
							
							
							
							llvm-svn: 112323 
							
						 
						
							2010-08-27 23:29:38 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								6ebbd92380 
								
							 
						 
						
							
							
								
								Use LVI to eliminate conditional branches where we've tested a related condition previously.  Update tests for this change.  
							
							 
							
							... 
							
							
							
							This fixes PR5652.
llvm-svn: 112270 
							
						 
						
							2010-08-27 17:12:29 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								4afea9e3c6 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 112015 
							
						 
						
							2010-08-25 01:16:47 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a10000006e 
								
							 
						 
						
							
							
								
								NULL loads are only invalid in the default address space.  
							
							 
							
							... 
							
							
							
							llvm-svn: 111972 
							
						 
						
							2010-08-24 22:00:55 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								b695c83de9 
								
							 
						 
						
							
							
								
								Add support for inferring values for the default cases of switches.  
							
							 
							
							... 
							
							
							
							llvm-svn: 111971 
							
						 
						
							2010-08-24 21:59:42 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								da34de1599 
								
							 
						 
						
							
							
								
								Add support for inferring that a load from a pointer implies that it is not null.  
							
							 
							
							... 
							
							
							
							llvm-svn: 111959 
							
						 
						
							2010-08-24 20:47:29 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								c62f704576 
								
							 
						 
						
							
							
								
								Don't assume that all constants with integer types are ConstantInts.  
							
							 
							
							... 
							
							
							
							llvm-svn: 111906 
							
						 
						
							2010-08-24 07:55:44 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								80d19f0905 
								
							 
						 
						
							
							
								
								Use ConstantRange to propagate information through value definitions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 111425 
							
						 
						
							2010-08-18 21:11:37 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								208636fa33 
								
							 
						 
						
							
							
								
								Inform LazyValueInfo whenever a block is deleted, to avoid dangling pointer issues.  
							
							 
							
							... 
							
							
							
							llvm-svn: 111382 
							
						 
						
							2010-08-18 18:39:01 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								fa7d44687f 
								
							 
						 
						
							
							
								
								Fix another iterator invalidation that caused a *really* nasty miscompilation in 403.gcc.  
							
							 
							
							... 
							
							
							
							llvm-svn: 111210 
							
						 
						
							2010-08-16 23:42:33 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								7b974a45db 
								
							 
						 
						
							
							
								
								Fix a subtle use-after-free issue.  
							
							 
							
							... 
							
							
							
							llvm-svn: 110863 
							
						 
						
							2010-08-11 22:36:04 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								0bd61240e9 
								
							 
						 
						
							
							
								
								Improve indentation.  
							
							 
							
							... 
							
							
							
							llvm-svn: 110778 
							
						 
						
							2010-08-11 04:24:25 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								5f1dd0967d 
								
							 
						 
						
							
							
								
								Now that we're using ConstantRange to represent potential values, make use of that represenation to  
							
							 
							
							... 
							
							
							
							create constraints from comparisons other than eq/neq.
llvm-svn: 110742 
							
						 
						
							2010-08-10 23:20:01 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								185fe00633 
								
							 
						 
						
							
							
								
								Switch over to using ConstantRange to track integral values.  
							
							 
							
							... 
							
							
							
							llvm-svn: 110714 
							
						 
						
							2010-08-10 20:03:09 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								8afac043fb 
								
							 
						 
						
							
							
								
								Add ConstantRange information to the debugging output.  
							
							 
							
							... 
							
							
							
							llvm-svn: 110598 
							
						 
						
							2010-08-09 20:50:46 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								0f306a45ad 
								
							 
						 
						
							
							
								
								Add the beginnings of infrastructure for range tracking.  
							
							 
							
							... 
							
							
							
							llvm-svn: 110388 
							
						 
						
							2010-08-05 22:59:19 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								c3a1413ea1 
								
							 
						 
						
							
							
								
								Split the tag and value members of LVILatticeVal in preparation for expanding the lattice to something that won't fit in two bits.  
							
							 
							
							... 
							
							
							
							llvm-svn: 110383 
							
						 
						
							2010-08-05 22:10:46 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								c1561b8400 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 109935 
							
						 
						
							2010-07-30 23:59:40 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								e4a0ab69d2 
								
							 
						 
						
							
							
								
								Revert my last two patches to LVI, which recent changes have exposed a miscompilation in.  
							
							 
							
							... 
							
							
							
							llvm-svn: 109889 
							
						 
						
							2010-07-30 20:56:07 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a44f49f189 
								
							 
						 
						
							
							
								
								Pass the queried value by argument rather than in a member, in preparation for supporting PHI translation.  
							
							 
							
							... 
							
							
							
							llvm-svn: 109701 
							
						 
						
							2010-07-28 23:50:08 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								6982dd4e1f 
								
							 
						 
						
							
							
								
								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.  
							
							 
							
							... 
							
							
							
							llvm-svn: 109679 
							
						 
						
							2010-07-28 22:07:25 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								aac5a72139 
								
							 
						 
						
							
							
								
								Rearrange several datastructures in LazyValueInfo to improve compile time.  
							
							 
							
							... 
							
							
							
							This is still not perfect, but better than it was before.
llvm-svn: 109563 
							
						 
						
							2010-07-27 23:58:11 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								aa7f66ba67 
								
							 
						 
						
							
							
								
								Add an initial implementation of LazyValueInfo updating for JumpThreading.  Disabled for now.  
							
							 
							
							... 
							
							
							
							llvm-svn: 109424 
							
						 
						
							2010-07-26 18:48:03 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a57b97e7e7 
								
							 
						 
						
							
							
								
								Fix batch of converting RegisterPass<> to INTIALIZE_PASS().  
							
							 
							
							... 
							
							
							
							llvm-svn: 109045 
							
						 
						
							2010-07-21 22:09:45 +00:00  
						
					 
				
					
						
							
							
								 
								David Greene
							
						 
						
							 
							
							
							
							
								
							
							
								37e9809294 
								
							 
						 
						
							
							
								
								Convert debug messages to use dbgs().  Generally this means  
							
							 
							
							... 
							
							
							
							s/errs/dbgs/g except for certain special cases.
llvm-svn: 92040 
							
						 
						
							2009-12-23 20:43:58 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e58c05780e 
								
							 
						 
						
							
							
								
								typo spotted by duncan.  
							
							 
							
							... 
							
							
							
							llvm-svn: 88884 
							
						 
						
							2009-11-16 03:51:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7735878591 
								
							 
						 
						
							
							
								
								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
llvm-svn: 88869 
							
						 
						
							2009-11-15 20:02:12 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b0c0a0df3e 
								
							 
						 
						
							
							
								
								fix a logic error that would cause LVI-JT to miscompile  
							
							 
							
							... 
							
							
							
							some conditionals
llvm-svn: 88868 
							
						 
						
							2009-11-15 20:01:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2c708562f5 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 88867 
							
						 
						
							2009-11-15 20:00:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								af025d3f6e 
								
							 
						 
						
							
							
								
								refactor a bunch of code forming the new LazyValueInfoCache  
							
							 
							
							... 
							
							
							
							and LVIQuery classes, no functionality change.
llvm-svn: 88866 
							
						 
						
							2009-11-15 19:59:49 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								22db4b5e0c 
								
							 
						 
						
							
							
								
								various fixes to the lattice transfer functions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 86952 
							
						 
						
							2009-11-12 04:57:13 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								565ee2f1bd 
								
							 
						 
						
							
							
								
								Add a new getPredicateOnEdge method which returns more rich information for  
							
							 
							
							... 
							
							
							
							constant constraints.  Improve the LVI lattice to include inequality 
constraints.
llvm-svn: 86950 
							
						 
						
							2009-11-12 04:36:58 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d5e25436a1 
								
							 
						 
						
							
							
								
								expose edge information and switch j-t to use it.  
							
							 
							
							... 
							
							
							
							llvm-svn: 86920 
							
						 
						
							2009-11-12 01:29:10 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b584d1e456 
								
							 
						 
						
							
							
								
								move some stuff into DEBUG's and turn on lazy-value-info for  
							
							 
							
							... 
							
							
							
							the basic.ll testcase.
llvm-svn: 86918 
							
						 
						
							2009-11-12 01:22:16 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								19019eaf00 
								
							 
						 
						
							
							
								
								make LazyValueInfo actually to some stuff.  This isn't very tested but improves  
							
							 
							
							... 
							
							
							
							strswitch.
llvm-svn: 86889 
							
						 
						
							2009-11-11 22:48:44 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fde1f8d0d8 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 86789 
							
						 
						
							2009-11-11 02:08:33 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								741c94c719 
								
							 
						 
						
							
							
								
								Stub out a new lazy value info pass, which will eventually  
							
							 
							
							... 
							
							
							
							vend value constraint information to the optimizer.
llvm-svn: 86767 
							
						 
						
							2009-11-11 00:22:30 +00:00