Dan Gohman 
							
						 
					 
					
						
						
							
						
						bd1801b555 
					 
					
						
						
							
							Give GetUnderlyingObject a TargetData, to keep it in sync  
						
						... 
						
						
						
						with BasicAA's DecomposeGEPExpression, which recently began
using a TargetData. This fixes PR8968, though the testcase
is awkward to reduce.
Also, update several off GetUnderlyingObject's users
which happen to have a TargetData handy to pass it in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124134  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-01-24 18:53:32 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						5034dd318a 
					 
					
						
						
							
							Move Value::getUnderlyingObject to be a standalone  
						
						... 
						
						
						
						function so that it can live in Analysis instead of
VMCore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121885  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-15 20:02:24 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						c1f1efdd1a 
					 
					
						
						
							
							Update a comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121727  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-13 22:53:18 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						4a2a3eab2d 
					 
					
						
						
							
							Use PartialAlias to do better noalias lint checking.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121514  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-10 20:04:06 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						23a19572b2 
					 
					
						
						
							
							Now that hasConstantValue has been made simpler, it may return the  
						
						... 
						
						
						
						phi node itself if it occurs in an unreachable basic block.  Protect
against this.  Hopefully this will fix some more buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119493  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-17 10:23:23 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						d261dc650a 
					 
					
						
						
							
							Previously SimplifyInstruction could report that an instruction  
						
						... 
						
						
						
						simplified to itself (this can only happen in unreachable blocks).
Change it to return null instead.  Hopefully this will fix some
buildbot failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119490  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-17 08:35:29 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						ff10341183 
					 
					
						
						
							
							Fix a layering violation: hasConstantValue, which is part of the PHINode  
						
						... 
						
						
						
						class, uses DominatorTree which is an analysis.  This change moves all of
the tricky hasConstantValue logic to SimplifyInstruction, and replaces it
with a very simple literal implementation.  I already taught users of
hasConstantValue that need tricky stuff to use SimplifyInstruction instead.
I didn't update InlineFunction because the IR looks like it might be in a
funky state at the point it calls hasConstantValue, which makes calling
SimplifyInstruction dangerous since it can in theory do a lot of tricky
reasoning.  This may be a pessimization, for example in the case where
all phi node operands are either undef or a fixed constant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119459  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-17 04:30:22 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						f3b8c76599 
					 
					
						
						
							
							Avoid calling alias on non-pointer values.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118822  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-11 19:23:51 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						3da848bbda 
					 
					
						
						
							
							Reapply r116831 and r116839, converting AliasAnalysis to use  
						
						... 
						
						
						
						uint64_t, plus fixes for places I missed before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116875  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-19 22:54:46 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						1db839e734 
					 
					
						
						
							
							Revert r116831 and r116839, which are breaking selfhost builds.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116858  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-19 21:06:16 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						4cccb87b4d 
					 
					
						
						
							
							Change AliasAnalysis and its clients to use uint64_t instead of unsigned  
						
						... 
						
						
						
						for representing object sizes, for consistency with other parts of LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116831  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-19 18:00:02 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						081c34b725 
					 
					
						
						
							
							Get rid of static constructors for pass registration.  Instead, every pass exposes an initializeMyPassFunction(), which  
						
						... 
						
						
						
						must be called in the pass's constructor.  This function uses static dependency declarations to recursively initialize
the pass's dependencies.
Clients that only create passes through the createFooPass() APIs will require no changes.  Clients that want to use the
CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
before parsing commandline arguments.
I have tested this with all standard configurations of clang and llvm-gcc on Darwin.  It is possible that there are problems
with the static dependencies that will only be visible with non-standard options.  If you encounter any crash in pass
registration/creation, please send the testcase to me directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116820  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-19 17:21:58 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						f3a925dc7a 
					 
					
						
						
							
							Consistently use AliasAnalysis::UnknownSize instead of hardcoding ~0u.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116815  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-19 17:06:23 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						2ab36d3502 
					 
					
						
						
							
							Begin adding static dependence information to passes, which will allow us to  
						
						... 
						
						
						
						perform initialization without static constructors AND without explicit initialization
by the client.  For the moment, passes are required to initialize both their
(potential) dependencies and any passes they preserve.  I hope to be able to relax
the latter requirement in the future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116334  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-12 19:48:12 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						ce665bd2e2 
					 
					
						
						
							
							Now with fewer extraneous semicolons!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115996  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-07 22:25:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						17aa68055b 
					 
					
						
						
							
							zap dead code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113073  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-04 18:12:00 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						9883b95a2b 
					 
					
						
						
							
							Revert r111058, the lint check for indirectbr successors that aren't  
						
						... 
						
						
						
						address-taken. This can occur normally, if the code which took the
address got DCEd.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111121  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-16 14:39:19 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						61556e3a94 
					 
					
						
						
							
							Add a lint check for an indirectbr destination which has not  
						
						... 
						
						
						
						had its address taken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111058  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-13 23:56:28 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						90c579de5a 
					 
					
						
						
							
							Reapply r110396, with fixes to appease the Linux buildbot gods.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-06 18:33:48 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						1f74590e9d 
					 
					
						
						
							
							Revert r110396 to fix buildbots.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-06 00:23:35 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						9ccaf53ada 
					 
					
						
						
							
							Don't use PassInfo* as a type identifier for passes.  Instead, use the address of the static  
						
						... 
						
						
						
						ID member as the sole unique type identifier.  Clean up APIs related to this change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-05 23:42:04 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						847a84efd2 
					 
					
						
						
							
							Add a convenient form of AliasAnalysis::alias for the case where the sizes  
						
						... 
						
						
						
						are unknown.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110090  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-03 00:56:30 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						a8afb2a623 
					 
					
						
						
							
							Add a lint check for indirectbr with no successors.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110074  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-02 23:06:43 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						d13db2c59c 
					 
					
						
						
							
							Fix batch of converting RegisterPass<> to INTIALIZE_PASS().  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109045  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-21 22:09:45 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						545d00645c 
					 
					
						
						
							
							Add a lint check for mismatched return types, inspired by PR6944.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108162  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-12 18:02:04 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						0ce249911b 
					 
					
						
						
							
							Add some more TODO comments.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107657  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-06 15:23:00 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						d3b6e41ffb 
					 
					
						
						
							
							Add a comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107656  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-06 15:21:57 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						10e7726e6c 
					 
					
						
						
							
							Fix the noalias checking so that it doesn't worry about  
						
						... 
						
						
						
						an argument aliasing itself. Thanks Duncan!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105288  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-01 20:51:40 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						aec2a0dbce 
					 
					
						
						
							
							Add lint checks for function attributes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105009  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-28 21:43:57 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						13ec30b6a1 
					 
					
						
						
							
							Fix lint's memcpy and memmove checks, and its basic block traversal.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104970  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-28 17:44:00 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						17d95965cb 
					 
					
						
						
							
							Detect self-referential values.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104957  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-28 16:45:33 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						078f8595b5 
					 
					
						
						
							
							Eli pointed out that va_arg instruction result values don't  
						
						... 
						
						
						
						reference the stack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104951  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-28 16:34:49 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						ff26d4e9ce 
					 
					
						
						
							
							Teach lint how to look through simple store+load pairs and other  
						
						... 
						
						
						
						effective no-op constructs, to make it more effective on
unoptimized IR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104950  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-28 16:21:24 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						292fc87fe2 
					 
					
						
						
							
							Add a lint check for returning the address of stack memory.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104936  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-28 04:33:42 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						a0f7ff334f 
					 
					
						
						
							
							Fix Lint printing warnings multiple times. Remove the ErrorStr  
						
						... 
						
						
						
						option from lintModule, which was an artifact from being
based on Verifier code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104765  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-26 22:28:53 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						882ddb492d 
					 
					
						
						
							
							Reinstate checking of stackrestore, with checking for both Read  
						
						... 
						
						
						
						and Write, and add a comment explaining this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104756  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-26 22:21:25 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						749be11f4d 
					 
					
						
						
							
							Stackrestore is not a load.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104752  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-26 22:00:10 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						df9c8bc569 
					 
					
						
						
							
							Remove a TODO which isn't practical.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104748  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-26 21:50:41 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						113b3e2c6e 
					 
					
						
						
							
							Implement checking of the tail keyword.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104744  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-26 21:46:36 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						5b61b3818a 
					 
					
						
						
							
							Add lint checks for invalid uses of memory.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102733  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-30 19:05:00 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						0883355976 
					 
					
						
						
							
							Tidy a comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102041  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-22 01:30:05 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						be02b20a8f 
					 
					
						
						
							
							Add several more lint checks.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100841  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-09 01:39:53 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						dd98c4d185 
					 
					
						
						
							
							Add a few more lint checks.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100825  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-08 23:05:57 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						113902e9fb 
					 
					
						
						
							
							Add a -lint pass which checks for common sources of undefined or likely  
						
						... 
						
						
						
						unintended behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100798  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-08 18:47:09 +00:00