Chris Lattner 
							
						 
					 
					
						
						
							
						
						5d5261c819 
					 
					
						
						
							
							Teach basicaa that x|c == x+c when the c bits of x are clear.  This  
						
						... 
						
						
						
						allows us to compile the example in readme.txt into:
LBB1_1:                                                     ## %bb
	movl	4(%rdx,%rax), %ecx
	movl	%ecx, %esi
	imull	(%rdx,%rax), %esi
	imull	%esi, %ecx
	movl	%esi, 8(%rdx,%rax)
	imull	%ecx, %esi
	movl	%ecx, 12(%rdx,%rax)
	movl	%esi, 16(%rdx,%rax)
	imull	%ecx, %esi
	movl	%esi, 20(%rdx,%rax)
	addq	$16, %rax
	cmpq	$4000, %rax
	jne	LBB1_1
instead of:
LBB1_1: 
	movl	(%rdx,%rax), %ecx
	imull	4(%rdx,%rax), %ecx
	movl	%ecx, 8(%rdx,%rax)
	imull	4(%rdx,%rax), %ecx
	movl	%ecx, 12(%rdx,%rax)
	imull	8(%rdx,%rax), %ecx
	movl	%ecx, 16(%rdx,%rax)
	imull	12(%rdx,%rax), %ecx
	movl	%ecx, 20(%rdx,%rax)
	addq	$16, %rax
	cmpq	$4000, %rax
	jne	LBB1_1
GCC (4.2) doesn't seem to be able to eliminate the loads in this 
testcase either, it generates:
L2:
	movl	(%rdx), %eax
	imull	4(%rdx), %eax
	movl	%eax, 8(%rdx)
	imull	4(%rdx), %eax
	movl	%eax, 12(%rdx)
	imull	8(%rdx), %eax
	movl	%eax, 16(%rdx)
	imull	12(%rdx), %eax
	movl	%eax, 20(%rdx)
	addl	$4, %ecx
	addq	$16, %rdx
	cmpl	$1002, %ecx
	jne	L2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89952  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-26 16:26:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f6ac4d9dad 
					 
					
						
						
							
							teach basicaa that A[i] != A[i+1].  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89951  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-26 16:18:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d84eb911a9 
					 
					
						
						
							
							Change the other half of aliasGEP (which handles GEP differencing) to use DecomposeGEPExpression.  This dramatically simplifies and shrinks the code by eliminating the horrible CheckGEPInstructions method, fixes a miscompilation (@test3) and makes the code more aggressive.  In particular, we now handle the @test4 case, which is reduced from the SmallPtrSet constructor.  Missing this caused us to emit a variable length memset instead of a fixed size one.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89922  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-26 02:17:34 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						23e2a5b2ff 
					 
					
						
						
							
							Generalize DecomposeGEPExpression to exactly handle what Value::getUnderlyingObject does (when TD is around).  This allows us to avoid calling DecomposeGEPExpression unless the ultimate alias check we care about passes, speedup up BasicAA a bit.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89920  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-26 02:14:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4e91ee7a2a 
					 
					
						
						
							
							Implement a new DecomposeGEPExpression method, which decomposes a GEP into a list of scaled offsets.  Use this to eliminate some previous ad-hoc code which was subtly broken (it assumed all Constant*'s were non-zero, but strange constant express could be zero).  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89915  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-26 02:13:03 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						539c9b99c2 
					 
					
						
						
							
							Use GEPOperator more pervasively to simplify code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89914  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-26 02:11:08 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b27db37ed0 
					 
					
						
						
							
							fix comment, thanks all :)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89666  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-23 17:07:35 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						403ac2ece3 
					 
					
						
						
							
							use the new isNoAlias method to simplify some code, only do an escaping check if  
						
						... 
						
						
						
						we have a non-constant pointer.  Constant pointers can't be local.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89665  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-23 16:46:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5d56b2d47d 
					 
					
						
						
							
							whitespace cleanup, tidying  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89664  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-23 16:45:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b34b82e9d1 
					 
					
						
						
							
							speed up BasicAA a bit by implementing a long-standing TODO.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89663  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-23 16:44:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6c7276f17e 
					 
					
						
						
							
							add fixme for dubious code.  Duncan, what do you think?  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89602  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-22 16:16:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4723303c97 
					 
					
						
						
							
							remove a silly condition that doesn't make a lot of sense anymore.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89601  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-22 16:15:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						92e803c2a4 
					 
					
						
						
							
							reduce indentation, no functionality change.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89600  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-22 16:05:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						66e08cf79a 
					 
					
						
						
							
							Remove the AliasAnalysis::getMustAliases method, which is dead.  
						
						... 
						
						
						
						The hasNoModRefInfoForCalls isn't worth it as a filter because 
basicaa provides m/r info and everything chains to it, so remove
it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89599  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-22 16:01:44 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						f94b5edc45 
					 
					
						
						
							
							Extend CaptureTracking to indicate when a value is never stored, even  
						
						... 
						
						
						
						if it is not ultimately captured. Teach BasicAliasAnalysis that a 
local object address which does not escape and is never stored does
not alias with a value resulting from a load.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89398  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-19 21:57:48 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						20162ac566 
					 
					
						
						
							
							Teach BasicAA that a constant expression can't alias memory provably not  
						
						... 
						
						
						
						allocated until runtime (such as an alloca). Patch by Hans Wennborg!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88760  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-14 06:15:14 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						f75ef668a7 
					 
					
						
						
							
							Default-addressspace null pointers don't alias anything. This allows  
						
						... 
						
						
						
						GVN to be more aggressive. Patch by Hans Wennborg! (with a comment added by me)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86582  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-09 19:29:11 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7b550ccfc5 
					 
					
						
						
							
							remove a bunch of extraneous LLVMContext arguments  
						
						... 
						
						
						
						from various APIs, addressing PR5325.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86231  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-06 04:27:31 +00:00 
						 
				 
			
				
					
						
							
							
								Victor Hernandez 
							
						 
					 
					
						
						
							
						
						f006b183e2 
					 
					
						
						
							
							Rename MallocFreeHelper as MemoryBuiltins  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85286  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-27 20:05:49 +00:00 
						 
				 
			
				
					
						
							
							
								Victor Hernandez 
							
						 
					 
					
						
						
							
						
						f2becca90b 
					 
					
						
						
							
							Rename MallocHelper as MallocFreeHelper, since it now also identifies calls to free()  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85181  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-26 23:58:56 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						6665b0ea68 
					 
					
						
						
							
							Teach BasicAA how to analyze Select instructions, and make it more  
						
						... 
						
						
						
						aggressive on PHI instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85158  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-26 21:55:43 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						f5a86f45e7 
					 
					
						
						
							
							Remove includes of Support/Compiler.h that are no longer needed after the  
						
						... 
						
						
						
						VISIBILITY_HIDDEN removal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85043  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-25 06:57:41 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						6726b6d75a 
					 
					
						
						
							
							Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.  
						
						... 
						
						
						
						Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85042  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-25 06:33:48 +00:00 
						 
				 
			
				
					
						
							
							
								Victor Hernandez 
							
						 
					 
					
						
						
							
						
						7b929dad59 
					 
					
						
						
							
							Remove AllocationInst.  Since MallocInst went away, AllocaInst is the only subclass of AllocationInst, so it no longer is necessary.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84969  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-23 21:09:37 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						391d23b6c2 
					 
					
						
						
							
							inline isGEP away.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84373  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-17 23:48:54 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						a846a8a1dc 
					 
					
						
						
							
							When checking aliases between phi sources and V2, we know the sources are not themselves phi nodes. However, V2 may be. Call aliasCheck with V2 first to potentially eliminate a std::swap call.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84226  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-16 00:33:09 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						20312d0bb8 
					 
					
						
						
							
							Add missing break statements!  Thanks to Duncan Sands for pointing this out!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84191  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-15 18:48:58 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						6e9e010752 
					 
					
						
						
							
							Teach basicaa about memcpy/memmove/memset. The length argument can be used to  
						
						... 
						
						
						
						improve alias results if constant, and the source pointer can't be modified.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84175  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-15 07:11:24 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						2d3820c29c 
					 
					
						
						
							
							Teach BasicAA to use the size parameter of the memory use marker intrinsics.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84174  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-15 06:12:11 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						22c031296c 
					 
					
						
						
							
							Take advantage of TargetData when available; we know that the atomic intrinsics  
						
						... 
						
						
						
						only dereference the element they point to directly with no pointer arithmetic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84159  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-15 00:36:35 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f0429fd1ca 
					 
					
						
						
							
							Clear VisitedPHIs after use.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84080  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-14 06:46:26 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						681a33e26d 
					 
					
						
						
							
							Another BasicAA fix. If a value does not alias a GEP's base pointer, then it  
						
						... 
						
						
						
						cannot alias the GEP. GEP pointer alias rule states this clearly:
A pointer value formed from a getelementptr instruction is associated with the
addresses associated with the first operand of the getelementptr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84079  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-14 06:41:49 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d83c2ca336 
					 
					
						
						
							
							More code clean up based on patch feedback.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84074  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-14 05:22:03 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						3dbe43b1b5 
					 
					
						
						
							
							Change VisitedPHIs into an instance variable that's freed by each alias() call.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84072  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-14 05:05:02 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						50a5914e12 
					 
					
						
						
							
							Teach basic AA about PHI nodes. If all operands of a phi NoAlias another value than it's safe to declare the PHI NoAlias the value. Ditto for MustAlias.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84038  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-13 22:02:20 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						094f04b429 
					 
					
						
						
							
							Refactor some code. No functionality changes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84000  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-13 18:42:04 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						5c9be67cff 
					 
					
						
						
							
							Teach BasicAA a little something about the atomic intrinsics: they can only  
						
						... 
						
						
						
						modify through the pointer they're given.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83959  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-13 07:48:38 +00:00 
						 
				 
			
				
					
						
							
							
								Victor Hernandez 
							
						 
					 
					
						
						
							
						
						46e8312fb7 
					 
					
						
						
							
							Enhance analysis passes so that they apply the same analysis to malloc calls as to MallocInst.  
						
						... 
						
						
						
						Reviewed by Eli Friedman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82281  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-09-18 21:34:51 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						aae87cde50 
					 
					
						
						
							
							Use stripPointerCasts instead of doing the same manually.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80267  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-08-27 18:02:03 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						1d0be15f89 
					 
					
						
						
							
							Push LLVMContexts through the IntegerType APIs.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-08-13 21:58:54 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						a7235ea724 
					 
					
						
						
							
							Move a few more APIs back to 2.5 forms.  The only remaining ones left to change back are  
						
						... 
						
						
						
						metadata related, which I'm waiting on to avoid conflicting with Devang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77721  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-31 20:28:14 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						baf3c40440 
					 
					
						
						
							
							Move ConstantExpr to 2.5 API.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77494  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-29 18:55:55 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						fc2a3ed0c9 
					 
					
						
						
							
							Make AliasAnalysis and related classes use  
						
						... 
						
						
						
						getAnalysisIfAvailable<TargetData>().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77028  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-25 00:48:42 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						eed707b1e6 
					 
					
						
						
							
							Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types.  More to come.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77011  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-24 23:12:02 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						e922c02019 
					 
					
						
						
							
							Get rid of the Pass+Context magic.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-22 00:24:57 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						f241174421 
					 
					
						
						
							
							Revert the addition of hasNoPointerOverflow to GEPOperator.  
						
						... 
						
						
						
						Getelementptrs that are defined to wrap are virtually useless to
optimization, and getelementptrs that are undefined on any kind
of overflow are too restrictive -- it's difficult to ensure that
all intermediate addresses are within bounds. I'm going to take
a different approach.
Remove a few optimizations that depended on this flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76437  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-20 17:43:30 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						3a7a68c108 
					 
					
						
						
							
							Make BasicAliasAnalysis and Value::getUnderlyingObject use  
						
						... 
						
						
						
						GEPOperator's hasNoPointer0verflow(), and make a few places in instcombine
that create GEPs that may overflow clear the NoOverflow value. Among
other things, this partially addresses PR2831.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76252  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-17 22:25:10 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						001dbfebcb 
					 
					
						
						
							
							Move the ConstantInt uniquing table into LLVMContextImpl.  This exposed a number of issues in  
						
						... 
						
						
						
						our current context-passing stuff, which is also fixed here
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76089  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-16 18:04:31 +00:00 
						 
				 
			
				
					
						
							
							
								Torok Edwin 
							
						 
					 
					
						
						
							
						
						c23197a26f 
					 
					
						
						
							
							llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.  
						
						... 
						
						
						
						This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-14 16:55:14 +00:00 
						 
				 
			
				
					
						
							
							
								Torok Edwin 
							
						 
					 
					
						
						
							
						
						c25e7581b9 
					 
					
						
						
							
							assert(0) -> LLVM_UNREACHABLE.  
						
						... 
						
						
						
						Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-11 20:10:48 +00:00