5c96ef7c4e 
								
							 
						 
						
							
							
								
								Have scoped mutexes take referenes instead of pointers.  
							
							... 
							
							
							
							llvm-svn: 74931 
							
						 
						
							2009-07-07 18:33:04 +00:00  
				
					
						
							
							
								 
						
							
								ecdab5406d 
								
							 
						 
						
							
							
								
								Guard the listeners list.  Unfortunately, this requires a real static rather  
							
							... 
							
							
							
							than a managed static because other managed statics can (and do) access this
list in their destructors.  Yes, I know it's horrible.
llvm-svn: 74029 
							
						 
						
							2009-06-24 00:25:42 +00:00  
				
					
						
							
							
								 
						
							
								81241a37fa 
								
							 
						 
						
							
							
								
								Move the memory fences out of the path for single-threaded mode.  
							
							... 
							
							
							
							llvm-svn: 73775 
							
						 
						
							2009-06-19 17:45:12 +00:00  
				
					
						
							
							
								 
						
							
								7d42b95b6c 
								
							 
						 
						
							
							
								
								Move Threading.[h|cpp] from Support to System.  
							
							... 
							
							
							
							llvm-svn: 73707 
							
						 
						
							2009-06-18 16:54:52 +00:00  
				
					
						
							
							
								 
						
							
								0fd4eaef30 
								
							 
						 
						
							
							
								
								As pointed out by Duncan, I accidentally dropped the first MemoryFence of the  
							
							... 
							
							
							
							double-checked locking pattern here.
llvm-svn: 73701 
							
						 
						
							2009-06-18 16:08:27 +00:00  
				
					
						
							
							
								 
						
							
								87c4a05008 
								
							 
						 
						
							
							
								
								Add braces to clarify if/else structure and remove warning.  
							
							... 
							
							
							
							llvm-svn: 73673 
							
						 
						
							2009-06-18 03:01:42 +00:00  
				
					
						
							
							
								 
						
							
								eae9772679 
								
							 
						 
						
							
							
								
								We need to use double-checked locking for lazy initialization in this case when running multithreaded.  
							
							... 
							
							
							
							llvm-svn: 73636 
							
						 
						
							2009-06-17 21:16:20 +00:00  
				
					
						
							
							
								 
						
							
								5a913d61e3 
								
							 
						 
						
							
							
								
								Rename getAnalysisToUpdate to getAnalysisIfAvailable.  
							
							... 
							
							
							
							llvm-svn: 63198 
							
						 
						
							2009-01-28 13:14:17 +00:00  
				
					
						
							
							
								 
						
							
								cbd160f447 
								
							 
						 
						
							
							
								
								Speed up the passmgr by avoiding heap thrashing on vectors.  
							
							... 
							
							
							
							llvm-svn: 54515 
							
						 
						
							2008-08-08 05:33:04 +00:00  
				
					
						
							
							
								 
						
							
								106b046d83 
								
							 
						 
						
							
							
								
								fix some warnings when assertions are disabled.  
							
							... 
							
							
							
							llvm-svn: 52587 
							
						 
						
							2008-06-21 19:47:03 +00:00  
				
					
						
							
							
								 
						
							
								643b3a0581 
								
							 
						 
						
							
							
								
								Add #includes to make some dependencies explicit.  
							
							... 
							
							
							
							llvm-svn: 51496 
							
						 
						
							2008-05-23 20:40:06 +00:00  
				
					
						
							
							
								 
						
							
								0479aa5c0b 
								
							 
						 
						
							
							
								
								Change class' public PassInfo variables to by initialized with the  
							
							... 
							
							
							
							address of the PassInfo directly instead of calling getPassInfo.
This eliminates a bunch of dynamic initializations of static data.
Also, fold RegisterPassBase into PassInfo, make a bunch of its
data members const, and rearrange some code to initialize data
members in constructors instead of using setter member functions.
llvm-svn: 51022 
							
						 
						
							2008-05-13 02:05:11 +00:00  
				
					
						
							
							
								 
						
							
								9988569af8 
								
							 
						 
						
							
							
								
								Don't include <map> in Pass.h, which doesn't need it. This requires  
							
							... 
							
							
							
							adding <map> to many files that actually do need it.
llvm-svn: 48667 
							
						 
						
							2008-03-21 23:51:57 +00:00  
				
					
						
							
							
								 
						
							
								94f57c56f9 
								
							 
						 
						
							
							
								
								Update comments; getPassName no longer uses RTTI.  
							
							... 
							
							
							
							llvm-svn: 48369 
							
						 
						
							2008-03-14 18:27:04 +00:00  
				
					
						
							
							
								 
						
							
								39b0ac4e59 
								
							 
						 
						
							
							
								
								Remove unused runPass methods.  
							
							... 
							
							
							
							llvm-svn: 48044 
							
						 
						
							2008-03-08 01:43:56 +00:00  
				
					
						
							
							
								 
						
							
								929391a19a 
								
							 
						 
						
							
							
								
								Fix 80-col violations.  
							
							... 
							
							
							
							llvm-svn: 46510 
							
						 
						
							2008-01-29 12:09:55 +00:00  
				
					
						
							
							
								 
						
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
				
					
						
							
							
								 
						
							
								9afb8e4e29 
								
							 
						 
						
							
							
								
								Reduce reliance on rtti info  
							
							... 
							
							
							
							llvm-svn: 43130 
							
						 
						
							2007-10-18 16:11:18 +00:00  
				
					
						
							
							
								 
						
							
								0f88f76cfe 
								
							 
						 
						
							
							
								
								Re-install patch to enable use of PassID.  
							
							... 
							
							
							
							I am preparing another patch to address the failure that prompted
Chris to revert this patch earlier.
llvm-svn: 36649 
							
						 
						
							2007-05-02 20:38:25 +00:00  
				
					
						
							
							
								 
						
							
								11dfd35627 
								
							 
						 
						
							
							
								
								revert enough of devang's recent patches to get the tree basically working again  
							
							... 
							
							
							
							llvm-svn: 36638 
							
						 
						
							2007-05-02 04:25:31 +00:00  
				
					
						
							
							
								 
						
							
								7e86dc2684 
								
							 
						 
						
							
							
								
								disable this assertion as a hack to get the build more unbroken :(  
							
							... 
							
							
							
							llvm-svn: 36637 
							
						 
						
							2007-05-02 04:01:44 +00:00  
				
					
						
							
							
								 
						
							
								09f162ca6a 
								
							 
						 
						
							
							
								
								Do not use typeinfo to identify pass in pass manager.  
							
							... 
							
							
							
							llvm-svn: 36632 
							
						 
						
							2007-05-01 21:15:47 +00:00  
				
					
						
							
							
								 
						
							
								2c1bba0c0c 
								
							 
						 
						
							
							
								
								Move ~Pass() from Pass.h into Pass.cpp  
							
							... 
							
							
							
							llvm-svn: 36498 
							
						 
						
							2007-04-26 21:33:42 +00:00  
				
					
						
							
							
								 
						
							
								a5ebb6af95 
								
							 
						 
						
							
							
								
								Fix a bug that prevented the JIT from working correctly after llvm_shutdown.  
							
							... 
							
							
							
							Pass info objects are initialized by static ctors, so deleting them at
llvm_shutdown time prevents resurrection from working.
llvm-svn: 36292 
							
						 
						
							2007-04-21 00:12:18 +00:00  
				
					
						
							
							
								 
						
							
								b622c11f77 
								
							 
						 
						
							
							
								
								Unbreak VC++ build.  
							
							... 
							
							
							
							llvm-svn: 34917 
							
						 
						
							2007-03-05 00:00:42 +00:00  
				
					
						
							
							
								 
						
							
								5301e7c605 
								
							 
						 
						
							
							
								
								For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid  
							
							... 
							
							
							
							confusion with external linkage types.
llvm-svn: 33663 
							
						 
						
							2007-01-30 20:08:39 +00:00  
				
					
						
							
							
								 
						
							
								b66334b73b 
								
							 
						 
						
							
							
								
								1) Remove old AnalysisResolver.  
							
							... 
							
							
							
							2) Rename AnalysisResolver_New as AnalysisResolver
llvm-svn: 32938 
							
						 
						
							2007-01-05 22:47:07 +00:00  
				
					
						
							
							
								 
						
							
								c6b5a554a4 
								
							 
						 
						
							
							
								
								Remove old pass manager.  
							
							... 
							
							
							
							llvm-svn: 32927 
							
						 
						
							2007-01-05 20:16:23 +00:00  
				
					
						
							
							
								 
						
							
								f5a994e5cc 
								
							 
						 
						
							
							
								
								ModulePass and ImmutablePass. Force out of line virtual method.  
							
							... 
							
							
							
							llvm-svn: 32748 
							
						 
						
							2006-12-22 22:49:00 +00:00  
				
					
						
							
							
								 
						
							
								03fb587348 
								
							 
						 
						
							
							
								
								Using PDL as a prefix for PassDebugLevel enums is not a good idea.  
							
							... 
							
							
							
							Fix it.
llvm-svn: 32562 
							
						 
						
							2006-12-13 21:13:31 +00:00  
				
					
						
							
							
								 
						
							
								f1567a511f 
								
							 
						 
						
							
							
								
								Move enum PassDebugLevel from PassManagerT.h to Pass.h.  
							
							... 
							
							
							
							Use PDL as the prefix for these enums.
Define and use PassDebugging_New in new PassManager.
llvm-svn: 32554 
							
						 
						
							2006-12-13 20:03:48 +00:00  
				
					
						
							
							
								 
						
							
								b67904d1dc 
								
							 
						 
						
							
							
								
								Add #ifdef switch toggle between old and new pass manager.  However,  
							
							... 
							
							
							
							continue to use old pass manager at the moment. To use new manager
remove #define USE_OLD_PASSMANAGER 1 from Pass.h
llvm-svn: 32525 
							
						 
						
							2006-12-13 02:36:01 +00:00  
				
					
						
							
							
								 
						
							
								ad796fadf7 
								
							 
						 
						
							
							
								
								fix PR1039 by making timing info be destroyed by llvm_shutdown, not by  
							
							... 
							
							
							
							static dtors.
llvm-svn: 32411 
							
						 
						
							2006-12-10 07:40:46 +00:00  
				
					
						
							
							
								 
						
							
								22e978a736 
								
							 
						 
						
							
							
								
								Removing even more <iostream> includes.  
							
							... 
							
							
							
							llvm-svn: 32320 
							
						 
						
							2006-12-07 20:04:42 +00:00  
				
					
						
							
							
								 
						
							
								4d9fc5e896 
								
							 
						 
						
							
							
								
								Switch analysis groups to be unregistered when llvm_shutdown is called.  
							
							... 
							
							
							
							llvm-svn: 32110 
							
						 
						
							2006-12-01 23:46:50 +00:00  
				
					
						
							
							
								 
						
							
								1b368a0cf6 
								
							 
						 
						
							
							
								
								Start moving pass registration over to using the ManagedStatic mechanism.  
							
							... 
							
							
							
							This fixes issues where passes get unregistered before llvm_shutdown is
called, and is generally cleaner and simpler.  Analysis groups up next.
llvm-svn: 32108 
							
						 
						
							2006-12-01 23:27:45 +00:00  
				
					
						
							
							
								 
						
							
								23d540538d 
								
							 
						 
						
							
							
								
								move 'cfgonly' pass tracking into PassInfo, instead of handling it with  
							
							... 
							
							
							
							yet-another global data structure.
llvm-svn: 32102 
							
						 
						
							2006-12-01 22:21:11 +00:00  
				
					
						
							
							
								 
						
							
								2f77922d30 
								
							 
						 
						
							
							
								
								Add explicit doInitialization/doFinalization methods instead of making  
							
							... 
							
							
							
							the FunctionPassManager redo this for each function.
llvm-svn: 30079 
							
						 
						
							2006-09-04 04:07:39 +00:00  
				
					
						
							
							
								 
						
							
								fbb46500cf 
								
							 
						 
						
							
							
								
								We no longer care whether something is an opt vs analysis pass, only whether  
							
							... 
							
							
							
							something is a pass vs an analysis group now.  Simplify interfaces.
llvm-svn: 29920 
							
						 
						
							2006-08-27 22:21:55 +00:00  
				
					
						
							
							
								 
						
							
								3d40daa474 
								
							 
						 
						
							
							
								
								Change the ModuleProvider interface to not throw exceptions.  
							
							... 
							
							
							
							llvm-svn: 29024 
							
						 
						
							2006-07-06 21:35:01 +00:00  
				
					
						
							
							
								 
						
							
								54cb2d8533 
								
							 
						 
						
							
							
								
								For PR780:  
							
							... 
							
							
							
							Break the "IncludeFile" mechanism into its own header file and adjust other
files accordingly. Use this facility for the IntrinsicInst problem which
was the subject of PR800.
More to follow on this.
llvm-svn: 28709 
							
						 
						
							2006-06-07 20:00:19 +00:00  
				
					
						
							
							
								 
						
							
								c66da83a89 
								
							 
						 
						
							
							
								
								Speedup and simplify pass registration by the observation that there is  
							
							... 
							
							
							
							exactly one PassInfo object per RegisterPass object and that their lifetimes
are the same.  As such, there is no reason for the RegisterPass object to
dynamically allocate the PassInfo object at compiler startup time: just inline
the object by-value.  This should reduce codesize, heap size, and startup time. Yaay.
llvm-svn: 25521 
							
						 
						
							2006-01-23 01:01:04 +00:00  
				
					
						
							
							
								 
						
							
								c47b08154d 
								
							 
						 
						
							
							
								
								Patch #6's in Saem's refactor-the-passmanager patch series.  From him:  
							
							... 
							
							
							
							This sanitises the world, blows away the specialisations and adds
traits per passmanager type -- seemed most natural.
llvm-svn: 25085 
							
						 
						
							2006-01-04 07:47:13 +00:00  
				
					
						
							
							
								 
						
							
								8edc8beacf 
								
							 
						 
						
							
							
								
								Older compilers won't like the inline virtual destructor in the header file  
							
							... 
							
							
							
							so we put the destructor in Pass.cpp and make it non-inline.
llvm-svn: 21520 
							
						 
						
							2005-04-25 01:01:35 +00:00  
				
					
						
							
							
								 
						
							
								b1c9317bb4 
								
							 
						 
						
							
							
								
								Remove trailing whitespace  
							
							... 
							
							
							
							llvm-svn: 21427 
							
						 
						
							2005-04-21 23:48:37 +00:00  
				
					
						
							
							
								 
						
							
								9083936835 
								
							 
						 
						
							
							
								
								For PR387:\  
							
							... 
							
							
							
							Make only one print method to avoid overloaded virtual warnings when \
compiled with -Woverloaded-virtual
llvm-svn: 18589 
							
						 
						
							2004-12-07 04:03:45 +00:00  
				
					
						
							
							
								 
						
							
								79e523de04 
								
							 
						 
						
							
							
								
								'Pass' should now not be derived from by clients.  Instead, they should derive  
							
							... 
							
							
							
							from ModulePass.  Instead of implementing Pass::run, then should implement
ModulePass::runOnModule.
Also, fix some undefined behavior, expecting | on booleans to evaluate
left-to-right.
llvm-svn: 16435 
							
						 
						
							2004-09-20 04:47:19 +00:00  
				
					
						
							
							
								 
						
							
								7c16caa336 
								
							 
						 
						
							
							
								
								Changes For Bug 352  
							
							... 
							
							
							
							Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137 
							
						 
						
							2004-09-01 22:55:40 +00:00  
				
					
						
							
							
								 
						
							
								2e4bfff37c 
								
							 
						 
						
							
							
								
								Give the -time-passes tool option a global storage location so that its  
							
							... 
							
							
							
							value can be discovered by the various LLVM tools.
llvm-svn: 16032 
							
						 
						
							2004-08-24 17:52:35 +00:00  
				
					
						
							
							
								 
						
							
								4233155533 
								
							 
						 
						
							
							
								
								There is no error message to print out, end sentence with `!'  
							
							... 
							
							
							
							llvm-svn: 14678 
							
						 
						
							2004-07-07 21:22:05 +00:00