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 
						 
				 
			
				
					
						
							
							
								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 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						71802344fc 
					 
					
						
						
							
							Move the pass initialization helper functions into the llvm namespace, and add  
						
						... 
						
						
						
						a header declaring them all.  This is also where we will declare per-library pass-set
initializer functions down the road.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115900  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-07 04:13:08 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						02dd53e1c5 
					 
					
						
						
							
							Now that PassInfo and Pass::ID have been separated, move the rest of the passes over to the new registration API.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111815  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-23 17:52:01 +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 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						f012705c7e 
					 
					
						
						
							
							Avoid going through the LLVMContext for type equality where it's safe to dereference the type pointer.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92726  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-01-05 13:12:22 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						e02a698acf 
					 
					
						
						
							
							Change instnamer to name arguments "arg" instead of "tmp" for clarity, and  
						
						... 
						
						
						
						to name basic blocks "bb" instead of "BB", for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84502  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-19 14:47:32 +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 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						24313e7aba 
					 
					
						
						
							
							make instnamer name unnamed blocks as well as instructions and args.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61175  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-12-18 00:33:11 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						e0de705eb7 
					 
					
						
						
							
							Don't forget arguments!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59745  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-11-20 19:50:17 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						33e868ff43 
					 
					
						
						
							
							InstructionNamer preserves everything.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58787  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-11-06 01:00:16 +00:00 
						 
				 
			
				
					
						
							
							
								Torok Edwin 
							
						 
					 
					
						
						
							
						
						3d54502304 
					 
					
						
						
							
							export an ID for the instructionNamer, allowing analysis/transformation passes  
						
						... 
						
						
						
						that need it to require it by ID.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58238  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-27 10:16:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3793325cb3 
					 
					
						
						
							
							Add a new trivial -inst-namer pass which makes it possible to diff the  
						
						... 
						
						
						
						before/after effects of a pass, crazy!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55230  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-23 06:07:02 +00:00