Dan Gohman 
							
						 
					 
					
						
						
							
						
						70eff63008 
					 
					
						
						
							
							Revert the part of r107257 which introduced new logic for using  
						
						... 
						
						
						
						nsw and nuw flags from IR Instructions. On further consideration,
this isn't valid.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107298  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-30 17:27:11 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						b9f9651445 
					 
					
						
						
							
							Improve ScalarEvolution's nsw and nuw preservation.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107257  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-30 07:16:37 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						8a18d6b48f 
					 
					
						
						
							
							When computing a new ConservativeResult, intersect it with  
						
						... 
						
						
						
						the old one instead of replacing it, to be more precise.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107256  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-30 06:58:35 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						1104645eef 
					 
					
						
						
							
							Fix ScalarEvolution's tripcount computation for chains of loops  
						
						... 
						
						
						
						where each loop's induction variable's start value is the exit
value of a preceding loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107224  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-29 23:43:06 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						7a64257f94 
					 
					
						
						
							
							Just as its not safe to blindly transfer the nsw bit from an add  
						
						... 
						
						
						
						instruction to an add scev, it's not safe to blindly transfer the
inbounds flag from a gep instruction to an nsw on the scev for the
gep.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107117  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-29 01:41:41 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						420ab9102c 
					 
					
						
						
							
							Eliminate a redundant FoldingSet lookup.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106872  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-25 18:47:08 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						eaf6cf28dd 
					 
					
						
						
							
							Don't try to preserve pointer types in SCEVConstants; the old code  
						
						... 
						
						
						
						was over-complicated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106760  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-24 16:47:03 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						1faa88280e 
					 
					
						
						
							
							Make the trunc code consistent with the zext and sext code in its  
						
						... 
						
						
						
						handling of pointer types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106757  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-24 16:33:38 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						605c14fb11 
					 
					
						
						
							
							Replace ScalarEvolution's private copy of getLoopPredecessor  
						
						... 
						
						
						
						with LoopInfo's public copy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106603  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-22 23:43:28 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						9d4588ffad 
					 
					
						
						
							
							Allow "exhaustive" trip count evaluation on phi nodes with all  
						
						... 
						
						
						
						constant operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106537  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-22 13:15:46 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						403a8cdda5 
					 
					
						
						
							
							Use A.append(...) instead of A.insert(A.end(), ...) when A is a  
						
						... 
						
						
						
						SmallVector, and other SmallVector simplifications.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106452  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-21 19:47:52 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						b92654d9c9 
					 
					
						
						
							
							Fix ScalarEvolution's "exhaustive" trip count evaluation code to avoid  
						
						... 
						
						
						
						assuming that loops are in canonical form, as ScalarEvolution doesn't
depend on LoopSimplify itself. Also, with indirectbr not all loops can
be simplified. This fixes PR7416.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106389  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-19 14:17:24 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						3bf63768e5 
					 
					
						
						
							
							Revert r106304 (105548 and friends), which are the SCEVComplexityCompare  
						
						... 
						
						
						
						optimizations. There is still some nondeterminism remaining.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106306  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-18 19:54:20 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						78db186d2d 
					 
					
						
						
							
							Reapply 105540, 105542, and 105548, and revert r105732.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106304  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-18 19:26:04 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						e0f0c7b024 
					 
					
						
						
							
							Reapply 105546.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106302  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-18 19:12:32 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						c72f0c8c57 
					 
					
						
						
							
							Reapply 105544.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106301  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-18 19:09:27 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						07587a4500 
					 
					
						
						
							
							Remove getIntegerSCEV; it's redundant with getConstant, and getConstant  
						
						... 
						
						
						
						is more consistent with the ConstantInt API.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106281  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-18 14:33:50 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						27ed6a41ce 
					 
					
						
						
							
							Simplify this code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106254  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-17 23:34:09 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						1d451dff63 
					 
					
						
						
							
							Revert 105540, 105542, 105544, 105546, and 105548 to unbreak bootstrapping.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105740  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-09 18:59:43 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						fd447eff22 
					 
					
						
						
							
							The FoldingSet hash data includes pointer values, so it isn't  
						
						... 
						
						
						
						determinstic. Instead, give SCEV objects an arbitrary sequence
number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105548  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-07 19:36:14 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						5e5dd68c7f 
					 
					
						
						
							
							Optimize this code somewhat by taking advantage of the fact  
						
						... 
						
						
						
						that the operands are sorted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105546  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-07 19:20:57 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						1f23d63ddf 
					 
					
						
						
							
							Micro-optimize this, to speed up this hotspot in debug builds a little.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105544  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-07 19:16:37 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						ef07158c11 
					 
					
						
						
							
							Micro-optimize this.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105542  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-07 19:12:54 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						4d52c6d622 
					 
					
						
						
							
							Optimize ScalarEvolution's SCEVComplexityCompare predicate: don't go  
						
						... 
						
						
						
						scrounging through SCEVUnknown contents and SCEVNAryExpr operands;
instead just do a simple deterministic comparison of the precomputed
hash data.
Also, since this is more precise, it eliminates the need for the slow
N^2 duplicate detection code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105540  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-07 19:06:13 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						700012231d 
					 
					
						
						
							
							ConstantFoldConstantExpression can theoretically return null.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104948  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-28 16:12:08 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						acd8cab843 
					 
					
						
						
							
							Use the SCEVAddRecExpr::getPostIncExpr utility function instead  
						
						... 
						
						
						
						of doing the same thing manually.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102997  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-04 01:12:27 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						c0ed0091dc 
					 
					
						
						
							
							Fix a copy+pasto.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102996  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-04 01:11:15 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						deff621abd 
					 
					
						
						
							
							Use getConstant instead of getIntegerSCEV. The two are basically the  
						
						... 
						
						
						
						same, now that getConstant has overloads consistent with ConstantInt::get.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102965  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-03 22:09:21 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						f16c6803d7 
					 
					
						
						
							
							Silence warnings about -1 being converted to an unsigned value.  
						
						... 
						
						
						
						Also, pass true for isSigned even when creating constants for unsigned
comparisons, because the point is to create an all-ones constant,
rather than UINT64_MAX, even for integers wider than 64 bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102946  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-03 20:23:47 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						34c3e36e63 
					 
					
						
						
							
							Use isTrueWhenEqual and isFalseWhenEqual instead of assuming that  
						
						... 
						
						
						
						SimplifyICmpOperands will simplify such cases to EQ or NE. This makes
the correcntess of the code independent on SimplifyICmpOperands doing
certain simplifications.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102927  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-03 18:00:24 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						a189bae771 
					 
					
						
						
							
							In ScalarEvolution::print, don't bother printing out the SCEVs for  
						
						... 
						
						
						
						comparison instructions, since they aren't interesting, despite having
integer result types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102925  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-03 17:03:23 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						3abb69c07f 
					 
					
						
						
							
							In SimplifyICmpOperands, avoid needlessly swapping the operands in the  
						
						... 
						
						
						
						case where both are addrecs in unrelated loops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102924  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-03 17:00:11 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						03557dc0ad 
					 
					
						
						
							
							Factor out the new <= and >= analysis code into SimplifyICmpOperands.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102922  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-03 16:35:17 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						8833c32108 
					 
					
						
						
							
							Set isSigned to true when creating an all-ones integer constant, even  
						
						... 
						
						
						
						for unsigned purposes, so >64-bit integer values get a full all-ones
value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102739  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-30 19:22:39 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						b6fd0b481c 
					 
					
						
						
							
							Silence compiler warnings.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102734  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-30 19:21:13 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						9f93d30a26 
					 
					
						
						
							
							ScalarEvolution support for <= and >= loops.  
						
						... 
						
						
						
						Also, generalize ScalarEvolutions's min and max recognition to handle
some new forms of min and max that this change makes more common.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102234  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-24 03:09:42 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						d19bba69ad 
					 
					
						
						
							
							Use SimplifyICmpOperands in isKnownPredicate too.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102233  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-24 01:38:36 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						d4da5af271 
					 
					
						
						
							
							Update isImpliedCond to use the new SimplifyICmpOperands utility.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102232  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-24 01:34:53 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						e979650fa5 
					 
					
						
						
							
							Add a new utility function SimplifyICmpOperands. Much of this code is  
						
						... 
						
						
						
						refactored out of ScalarEvolution::isImpliedCond, which will be updated
to use this new utility routine soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102229  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-24 01:28:42 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						c6863989fc 
					 
					
						
						
							
							When it doesn't matter whether zero or sign extension is used,  
						
						... 
						
						
						
						use ScalarEvolutions "any" extend function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102156  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-23 01:51:29 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						ddb3eafc32 
					 
					
						
						
							
							Don't attempt to analyze values which are obviously undef. This fixes some  
						
						... 
						
						
						
						assertion failures in extreme cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102042  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-22 01:35:11 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						a560fd28c0 
					 
					
						
						
							
							Make ScalarEvolution::getConstant support pointer types, for consistency  
						
						... 
						
						
						
						with ScalarEvolution's overall approach to pointer types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102003  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-21 16:04:04 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						a5145c8d5a 
					 
					
						
						
							
							Fix SCEVCommutativeExpr::print to be robust in the case of improper  
						
						... 
						
						
						
						expression canonicalization. Its job is to print what's there, not to
make judgements about it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101461  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-16 15:03:25 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						005752bbe7 
					 
					
						
						
							
							Make getPredecessorWithUniqueSuccessorForBB return the unique successor  
						
						... 
						
						
						
						in addition to the predecessor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101374  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-15 16:19:08 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						2c93e39072 
					 
					
						
						
							
							Add a comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101248  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-14 16:08:56 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						28287794d4 
					 
					
						
						
							
							Teach ScalarEvolution to simplify smax and umax when it can prove  
						
						... 
						
						
						
						that one operand is always greater than another.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101142  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-13 16:51:03 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						3ab131243e 
					 
					
						
						
							
							Minor code micro-optimizations.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101141  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-13 16:49:23 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						bca091d561 
					 
					
						
						
							
							Micro-optimize a few hot spots.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101086  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-12 23:08:18 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						6ab10f69a9 
					 
					
						
						
							
							Add fast paths to ScalarEvolution::getSizeOf and getOffsetOf, as  
						
						... 
						
						
						
						they're used a lot by getNodeForGEP, which can be called a lot.
This speeds up -iv-users by around 15% on several testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101083  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-12 23:03:26 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						27dead44e0 
					 
					
						
						
							
							Generalize ScalarEvolution's PHI analysis to handle loops that don't  
						
						... 
						
						
						
						have preheaders or dedicated exit blocks, as clients may not otherwise
need to run LoopSimplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101030  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-12 07:49:36 +00:00