6c18d1aac0 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 116820 
							
						 
						
							2010-10-19 17:21:58 +00:00  
				
					
						
							
							
								 
						
							
								df7a4f2515 
								
							 
						 
						
							
							
								
								Now with fewer extraneous semicolons!  
							
							... 
							
							
							
							llvm-svn: 115996 
							
						 
						
							2010-10-07 22:25:06 +00:00  
				
					
						
							
							
								 
						
							
								d31d82d75c 
								
							 
						 
						
							
							
								
								Now that PassInfo and Pass::ID have been separated, move the rest of the passes over to the new registration API.  
							
							... 
							
							
							
							llvm-svn: 111815 
							
						 
						
							2010-08-23 17:52:01 +00:00  
				
					
						
							
							
								 
						
							
								a7aed18624 
								
							 
						 
						
							
							
								
								Reapply r110396, with fixes to appease the Linux buildbot gods.  
							
							... 
							
							
							
							llvm-svn: 110460 
							
						 
						
							2010-08-06 18:33:48 +00:00  
				
					
						
							
							
								 
						
							
								bda59bd247 
								
							 
						 
						
							
							
								
								Revert r110396 to fix buildbots.  
							
							... 
							
							
							
							llvm-svn: 110410 
							
						 
						
							2010-08-06 00:23:35 +00:00  
				
					
						
							
							
								 
						
							
								755aceb5d0 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 110396 
							
						 
						
							2010-08-05 23:42:04 +00:00  
				
					
						
							
							
								 
						
							
								81781220d2 
								
							 
						 
						
							
							
								
								Speculatively revert r108813, in an attempt to get the self-host buildbots working again.  I don't see why this patch  
							
							... 
							
							
							
							would cause them to fail the way they are, but none of the other intervening patches seem likely either.
llvm-svn: 108818 
							
						 
						
							2010-07-20 08:26:15 +00:00  
				
					
						
							
							
								 
						
							
								8dc129325f 
								
							 
						 
						
							
							
								
								Reapply r108794, a fix for the failing test from last time.  
							
							... 
							
							
							
							llvm-svn: 108813 
							
						 
						
							2010-07-20 06:52:42 +00:00  
				
					
						
							
							
								 
						
							
								4a35d6f8cd 
								
							 
						 
						
							
							
								
								Revert r108794, "Separate PassInfo into two classes: a constructor-free  
							
							... 
							
							
							
							superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).", it is
breaking teh everything.
llvm-svn: 108805 
							
						 
						
							2010-07-20 03:06:07 +00:00  
				
					
						
							
							
								 
						
							
								e7c5fe586a 
								
							 
						 
						
							
							
								
								Separate PassInfo into two classes: a constructor-free superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).  
							
							... 
							
							
							
							llvm-svn: 108794 
							
						 
						
							2010-07-20 01:19:58 +00:00  
				
					
						
							
							
								 
						
							
								6c6b2fd2b2 
								
							 
						 
						
							
							
								
								rename pred_const_iterator to const_pred_iterator for consistency's sake  
							
							... 
							
							
							
							llvm-svn: 99567 
							
						 
						
							2010-03-25 23:25:28 +00:00  
				
					
						
							
							
								 
						
							
								da363d9af8 
								
							 
						 
						
							
							
								
								adopt getAdjustedAnalysisPointer in a few more passes.  
							
							... 
							
							
							
							llvm-svn: 94018 
							
						 
						
							2010-01-20 20:09:02 +00:00  
				
					
						
							
							
								 
						
							
								3fe18e72b3 
								
							 
						 
						
							
							
								
								Change dbgs() back to errs() for assert messages as Chris requested.  
							
							... 
							
							
							
							llvm-svn: 92077 
							
						 
						
							2009-12-23 23:00:50 +00:00  
				
					
						
							
							
								 
						
							
								8135870f23 
								
							 
						 
						
							
							
								
								Convert debug messages to use dbgs().  Generally this means  
							
							... 
							
							
							
							s/errs/dbgs/g except for certain special cases.
llvm-svn: 92063 
							
						 
						
							2009-12-23 21:58:29 +00:00  
				
					
						
							
							
								 
						
							
								b87d0f0662 
								
							 
						 
						
							
							
								
								Use ProfileInfo-API in ProfileInfo Loader and do more assertions.  
							
							... 
							
							
							
							llvm-svn: 90446 
							
						 
						
							2009-12-03 11:00:37 +00:00  
				
					
						
							
							
								 
						
							
								78eedecade 
								
							 
						 
						
							
							
								
								Apply fix for PR5135, Credit to Andreas Neustifter.  
							
							... 
							
							
							
							llvm-svn: 85779 
							
						 
						
							2009-11-02 02:55:39 +00:00  
				
					
						
							
							
								 
						
							
								974e12b2d3 
								
							 
						 
						
							
							
								
								Remove includes of Support/Compiler.h that are no longer needed after the  
							
							... 
							
							
							
							VISIBILITY_HIDDEN removal.
llvm-svn: 85043 
							
						 
						
							2009-10-25 06:57:41 +00:00  
				
					
						
							
							
								 
						
							
								02d5f77d26 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 85042 
							
						 
						
							2009-10-25 06:33:48 +00:00  
				
					
						
							
							
								 
						
							
								41c1103273 
								
							 
						 
						
							
							
								
								Reapplied r81355 with the problems fixed.  
							
							... 
							
							
							
							(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090907/086737.html  and
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090907/086746.html )
llvm-svn: 82039 
							
						 
						
							2009-09-16 11:35:50 +00:00  
				
					
						
							
							
								 
						
							
								f4858d59e5 
								
							 
						 
						
							
							
								
								Cleaned up code by factoring out common portions of edge loading into function.  
							
							... 
							
							
							
							llvm-svn: 81438 
							
						 
						
							2009-09-10 07:12:35 +00:00  
				
					
						
							
							
								 
						
							
								1bad7f222a 
								
							 
						 
						
							
							
								
								Reverted r81358.  
							
							... 
							
							
							
							llvm-svn: 81364 
							
						 
						
							2009-09-09 18:19:35 +00:00  
				
					
						
							
							
								 
						
							
								3cb19a156d 
								
							 
						 
						
							
							
								
								Fix build, add missing simicolon.  
							
							... 
							
							
							
							llvm-svn: 81362 
							
						 
						
							2009-09-09 18:03:46 +00:00  
				
					
						
							
							
								 
						
							
								505fd86bd2 
								
							 
						 
						
							
							
								
								Cleaned up code by factoring out common portions of edge loading into funcion.  
							
							... 
							
							
							
							llvm-svn: 81358 
							
						 
						
							2009-09-09 17:51:39 +00:00  
				
					
						
							
							
								 
						
							
								9ded9ac8af 
								
							 
						 
						
							
							
								
								revert r81335, which breaks the build.  
							
							... 
							
							
							
							llvm-svn: 81347 
							
						 
						
							2009-09-09 16:00:57 +00:00  
				
					
						
							
							
								 
						
							
								0bd472dc33 
								
							 
						 
						
							
							
								
								Updated ProfileInfo to have clean seperation between different sentinels.  
							
							... 
							
							
							
							llvm-svn: 81335 
							
						 
						
							2009-09-09 12:48:26 +00:00  
				
					
						
							
							
								 
						
							
								a48a2f6055 
								
							 
						 
						
							
							
								
								Revert "--- Reverse-merging r80908 into '.':", I already "fixed" this.  
							
							... 
							
							
							
							llvm-svn: 80970 
							
						 
						
							2009-09-03 23:40:10 +00:00  
				
					
						
							
							
								 
						
							
								92291f6ad0 
								
							 
						 
						
							
							
								
								--- Reverse-merging r80908 into '.':  
							
							... 
							
							
							
							D    test/Analysis/Profiling
--- Reverse-merging r80907 into '.':
U    lib/Analysis/ProfileInfoLoaderPass.cpp
Attempt to remove failure in the self-hosting build bot.
llvm-svn: 80966 
							
						 
						
							2009-09-03 23:13:46 +00:00  
				
					
						
							
							
								 
						
							
								0dc21e4713 
								
							 
						 
						
							
							
								
								Remove undefined behavior when loading optimal edge profile info.  
							
							... 
							
							
							
							llvm-svn: 80907 
							
						 
						
							2009-09-03 07:37:42 +00:00  
				
					
						
							
							
								 
						
							
								e3cdafc70b 
								
							 
						 
						
							
							
								
								OptimalEdgeProfiling: Reading in Profiles.  
							
							... 
							
							
							
							This enables LLVM to read the OptimalEdgeProfiles.
llvm-svn: 80715 
							
						 
						
							2009-09-01 19:08:51 +00:00  
				
					
						
							
							
								 
						
							
								91922253c5 
								
							 
						 
						
							
							
								
								remove uses of llvm/Support/Streams.h.  
							
							... 
							
							
							
							llvm-svn: 79838 
							
						 
						
							2009-08-23 07:33:14 +00:00  
				
					
						
							
							
								 
						
							
								2f140834cf 
								
							 
						 
						
							
							
								
								Some ProfileInfo cleanups.  
							
							... 
							
							
							
							- Part of optimal static profiling patch sequence by Andreas Neustifter.
llvm-svn: 78485 
							
						 
						
							2009-08-08 18:59:03 +00:00  
				
					
						
							
							
								 
						
							
								3b5008e23a 
								
							 
						 
						
							
							
								
								More ProfileInfo improvements.  
							
							... 
							
							
							
							- Part of optimal static profiling patch sequence by Andreas Neustifter.
 - Store edge, block, and function information separately for each functions
   (instead of in one giant map).
 - Return frequencies as double instead of int, and use a sentinel value for
   missing information.
llvm-svn: 78477 
							
						 
						
							2009-08-08 17:43:09 +00:00  
				
					
						
							
							
								 
						
							
								4f6f6d080f 
								
							 
						 
						
							
							
								
								Make block and function count available via ProfileInfo.  
							
							... 
							
							
							
							- Part of optimal static profiling patch sequence by Andreas Neustifter.
llvm-svn: 78247 
							
						 
						
							2009-08-05 21:51:16 +00:00  
				
					
						
							
							
								 
						
							
								b6fec38426 
								
							 
						 
						
							
							
								
								Remove unnecessary ProfileInfoLoader methods.  
							
							... 
							
							
							
							- Part of optimal static profiling patch sequence by Andreas Neustifter.
llvm-svn: 78199 
							
						 
						
							2009-08-05 15:55:56 +00:00  
				
					
						
							
							
								 
						
							
								a79db30d28 
								
							 
						 
						
							
							
								
								Tidy up several unbeseeming casts from pointer to intptr_t.  
							
							... 
							
							
							
							llvm-svn: 55779 
							
						 
						
							2008-09-04 17:05:41 +00:00  
				
					
						
							
							
								 
						
							
								d78c400b5b 
								
							 
						 
						
							
							
								
								Clean up the use of static and anonymous namespaces. This turned up  
							
							... 
							
							
							
							several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017 
							
						 
						
							2008-05-13 00:00:25 +00:00  
				
					
						
							
							
								 
						
							
								6a2da37c0e 
								
							 
						 
						
							
							
								
								Make several variable declarations static.  
							
							... 
							
							
							
							llvm-svn: 50696 
							
						 
						
							2008-05-06 01:53:16 +00:00  
				
					
						
							
							
								 
						
							
								80e43fa744 
								
							 
						 
						
							
							
								
								Restore isCFGOnly property of various analysis passes.  
							
							... 
							
							
							
							llvm-svn: 48579 
							
						 
						
							2008-03-20 02:25:21 +00:00  
				
					
						
							
							
								 
						
							
								718da668ab 
								
							 
						 
						
							
							
								
								PassInfo keep tracks whether a pass is an analysis pass or not.  
							
							... 
							
							
							
							llvm-svn: 48554 
							
						 
						
							2008-03-19 21:56:59 +00:00  
				
					
						
							
							
								 
						
							
								af75ab8130 
								
							 
						 
						
							
							
								
								Do not use virtual function to identify an analysis pass.  
							
							... 
							
							
							
							llvm-svn: 48520 
							
						 
						
							2008-03-19 00:48:41 +00:00  
				
					
						
							
							
								 
						
							
								864970e9b6 
								
							 
						 
						
							
							
								
								Identify Analysis pass.  
							
							... 
							
							
							
							Do not run analysis pass again if analysis info is still available.
This fixes PR1441.
llvm-svn: 48476 
							
						 
						
							2008-03-18 00:39:19 +00:00  
				
					
						
							
							
								 
						
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
				
					
						
							
							
								 
						
							
								34d442f274 
								
							 
						 
						
							
							
								
								More explicit keywords.  
							
							... 
							
							
							
							llvm-svn: 40673 
							
						 
						
							2007-08-01 15:32:29 +00:00  
				
					
						
							
							
								 
						
							
								8c78a0bff0 
								
							 
						 
						
							
							
								
								Drop 'const'  
							
							... 
							
							
							
							llvm-svn: 36662 
							
						 
						
							2007-05-03 01:11:54 +00:00  
				
					
						
							
							
								 
						
							
								e95c6ad802 
								
							 
						 
						
							
							
								
								Use 'static const char' instead of 'static const int'.  
							
							... 
							
							
							
							Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652 
							
						 
						
							2007-05-02 21:39:20 +00:00  
				
					
						
							
							
								 
						
							
								09f162ca6a 
								
							 
						 
						
							
							
								
								Do not use typeinfo to identify pass in pass manager.  
							
							... 
							
							
							
							llvm-svn: 36632 
							
						 
						
							2007-05-01 21:15:47 +00:00  
				
					
						
							
							
								 
						
							
								f75727ab14 
								
							 
						 
						
							
							
								
								Make classes in anonymous namespaces use VISIBILITY_HIDDEN to help reduce  
							
							... 
							
							
							
							LLVM's footprint and speed up linking.
llvm-svn: 33941 
							
						 
						
							2007-02-05 23:42:17 +00:00  
				
					
						
							
							
								 
						
							
								f3baad3ee1 
								
							 
						 
						
							
							
								
								Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are  
							
							... 
							
							
							
							now cerr, cout, and NullStream resp.
llvm-svn: 32298 
							
						 
						
							2006-12-07 01:30:32 +00:00  
				
					
						
							
							
								 
						
							
								597d451fea 
								
							 
						 
						
							
							
								
								Removed some of the iostream #includes. Moved towards converting to using  
							
							... 
							
							
							
							llvm streams
llvm-svn: 31983 
							
						 
						
							2006-11-28 22:46:12 +00:00  
				
					
						
							
							
								 
						
							
								97c9f20c52 
								
							 
						 
						
							
							
								
								simplify AnalysisGroup registration, eliminating one typeid call.  
							
							... 
							
							
							
							llvm-svn: 29932 
							
						 
						
							2006-08-28 00:42:29 +00:00