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  
				
					
						
							
							
								 
						
							
								6967cd54f3 
								
							 
						 
						
							
							
								
								Fix for bug 391.  
							
							... 
							
							
							
							Improve exeception handling around bcreader invocations.
llvm-svn: 14674 
							
						 
						
							2004-07-07 21:01:38 +00:00  
				
					
						
							
							
								 
						
							
								8baf8e270a 
								
							 
						 
						
							
							
								
								- #include <iostream> since its not in Value.h any more.  
							
							... 
							
							
							
							llvm-svn: 14617 
							
						 
						
							2004-07-04 11:55:37 +00:00  
				
					
						
							
							
								 
						
							
								43640d7138 
								
							 
						 
						
							
							
								
								Fix -debug-pass=Executions, which relied on Function, Module, and BasicBlock  
							
							... 
							
							
							
							being annotable
llvm-svn: 12013 
							
						 
						
							2004-02-29 22:37:04 +00:00  
				
					
						
							
							
								 
						
							
								465a5cc291 
								
							 
						 
						
							
							
								
								Fix typo in comment  
							
							... 
							
							
							
							llvm-svn: 11966 
							
						 
						
							2004-02-28 21:55:18 +00:00  
				
					
						
							
							
								 
						
							
								2eaf58775e 
								
							 
						 
						
							
							
								
								Two problems with these lines of code:  
							
							... 
							
							
							
							1. The "work" was not in the assert, so it was punishing the optimized release
 2. getNamedFunction is _very_ expensive in large programs.  It is not designed
    to be used like this, and was taking 7% of the execution time of the code
    generator on perlbmk.
Since the assert "can never fail", I'm just killing it.
llvm-svn: 11214 
							
						 
						
							2004-02-09 00:59:07 +00:00  
				
					
						
							
							
								 
						
							
								189d19fb04 
								
							 
						 
						
							
							
								
								Finegrainify namespacification  
							
							... 
							
							
							
							llvm-svn: 10131 
							
						 
						
							2003-11-21 20:23:48 +00:00  
				
					
						
							
							
								 
						
							
								960707c335 
								
							 
						 
						
							
							
								
								Put all LLVM code into the llvm namespace, as per bug 109.  
							
							... 
							
							
							
							llvm-svn: 9903 
							
						 
						
							2003-11-11 22:41:34 +00:00  
				
					
						
							
							
								 
						
							
								482202a601 
								
							 
						 
						
							
							
								
								Added LLVM project notice to the top of every C++ source file.  
							
							... 
							
							
							
							Header files will be on the way.
llvm-svn: 9298 
							
						 
						
							2003-10-20 19:43:21 +00:00  
				
					
						
							
							
								 
						
							
								56a8642a42 
								
							 
						 
						
							
							
								
								Enabling incremental bytecode loading in the JIT:  
							
							... 
							
							
							
							* FunctionPassManager ctor now takes in a ModuleProvider
* run() materializes function before running passes on it
llvm-svn: 9126 
							
						 
						
							2003-10-14 21:38:42 +00:00  
				
					
						
							
							
								 
						
							
								ab16a659d7 
								
							 
						 
						
							
							
								
								* Remove extraneous #includes  
							
							... 
							
							
							
							* Fix a nasty initializer ordering bug.  Any only-CFG passes which registered
  themselves before the CFGOnlyAnalysis vector initialized got forgotten and
  thus got invalidated and recomputed.
In particular, in my compiled version of gccas, the Loop information pass was
being recomputed unnecessarily.
llvm-svn: 9074 
							
						 
						
							2003-10-13 05:33:01 +00:00  
				
					
						
							
							
								 
						
							
								dd99f5bf8f 
								
							 
						 
						
							
							
								
								Rename method  
							
							... 
							
							
							
							llvm-svn: 9055 
							
						 
						
							2003-10-12 18:52:12 +00:00  
				
					
						
							
							
								 
						
							
								cc31fddf13 
								
							 
						 
						
							
							
								
								Don't include Config/stdio.h or <stdio.h>.  
							
							... 
							
							
							
							llvm-svn: 9031 
							
						 
						
							2003-10-10 18:46:29 +00:00  
				
					
						
							
							
								 
						
							
								7eb05a170a 
								
							 
						 
						
							
							
								
								Spell `necessary' correctly.  
							
							... 
							
							
							
							llvm-svn: 7944 
							
						 
						
							2003-08-18 14:43:39 +00:00  
				
					
						
							
							
								 
						
							
								2cc4b9dd2c 
								
							 
						 
						
							
							
								
								Add new method to FunctionPassManager to add ImmutablePasses.  
							
							... 
							
							
							
							llvm-svn: 7838 
							
						 
						
							2003-08-14 06:07:57 +00:00  
				
					
						
							
							
								 
						
							
								e7e094467d 
								
							 
						 
						
							
							
								
								Dramatically simplify how -time-passes works.  
							
							... 
							
							
							
							This also enables -time-passes for FunctionPassManagers, which allows it to
be used for the JIT
llvm-svn: 7834 
							
						 
						
							2003-08-14 05:20:28 +00:00  
				
					
						
							
							
								 
						
							
								b7a8388b8c 
								
							 
						 
						
							
							
								
								Add FunctionPassManager - it's like a PassManager, but it only deals in  
							
							... 
							
							
							
							FunctionPasses.
llvm-svn: 7778 
							
						 
						
							2003-08-12 17:22:39 +00:00  
				
					
						
							
							
								 
						
							
								3ef61afb76 
								
							 
						 
						
							
							
								
								Merged in autoconf branch.  This provides configuration via the autoconf  
							
							... 
							
							
							
							system.
llvm-svn: 7014 
							
						 
						
							2003-06-30 21:59:07 +00:00  
				
					
						
							
							
								 
						
							
								0cfcaf0cc3 
								
							 
						 
						
							
							
								
								Remove usage of sys/unistd.h  
							
							... 
							
							
							
							llvm-svn: 6788 
							
						 
						
							2003-06-19 18:42:09 +00:00  
				
					
						
							
							
								 
						
							
								9ad7757e7c 
								
							 
						 
						
							
							
								
								Add helper method  
							
							... 
							
							
							
							llvm-svn: 5753 
							
						 
						
							2003-03-21 21:41:02 +00:00  
				
					
						
							
							
								 
						
							
								820d971233 
								
							 
						 
						
							
							
								
								- Rename AnalysisUsage::preservesAll to getPreservesAll & preservesCFG to  
							
							... 
							
							
							
							setPreservesCFG to be less confusing.
llvm-svn: 4255 
							
						 
						
							2002-10-21 20:00:28 +00:00  
				
					
						
							
							
								 
						
							
								af751b8e72 
								
							 
						 
						
							
							
								
								Factor timer code out of PassManager implementation, into a generic interface  
							
							... 
							
							
							
							exposed by Support/Timer.h.
llvm-svn: 3993 
							
						 
						
							2002-10-01 19:54:07 +00:00  
				
					
						
							
							
								 
						
							
								ee0788d42d 
								
							 
						 
						
							
							
								
								Add support for ImmutablePasses, which are not run, and cannot be  
							
							... 
							
							
							
							invalidated.
llvm-svn: 3921 
							
						 
						
							2002-09-25 21:59:11 +00:00  
				
					
						
							
							
								 
						
							
								548002f3d5 
								
							 
						 
						
							
							
								
								Another portability fix provided via Casey Carter:  
							
							... 
							
							
							
							ISSUE: getTimeRecord in lib/VMCore/Pass.cpp uses timeval and
gettimeofday() without including sys/time.h.
ACTION: Include sys/time.h.
llvm-svn: 3699 
							
						 
						
							2002-09-13 14:47:12 +00:00  
				
					
						
							
							
								 
						
							
								bae3c67050 
								
							 
						 
						
							
							
								
								Add a new BasicBlockPass::doInitialization/Finalization(Function &) pair of  
							
							... 
							
							
							
							methods that may be useful for BasicBlockPasses.
llvm-svn: 3688 
							
						 
						
							2002-09-12 17:06:40 +00:00  
				
					
						
							
							
								 
						
							
								b3708e267e 
								
							 
						 
						
							
							
								
								- PassManager prints analysis sets nicer  
							
							... 
							
							
							
							- Use Pass::AnalysisImpls instead of findAnalysisGroupMemeber
llvm-svn: 3534 
							
						 
						
							2002-08-30 20:23:45 +00:00  
				
					
						
							
							
								 
						
							
								675e7a9e3d 
								
							 
						 
						
							
							
								
								- Fighting with linking problem due to removing the ::ID elements.  Now the  
							
							... 
							
							
							
							implementation .cpp files for analyses are not being included into gccas
    and friends because it is linking to the .a file and there is no explicit
    symbol reference to bring in the .o file.  The new IncludeFile hack is the
    result.
llvm-svn: 3436 
							
						 
						
							2002-08-21 23:51:51 +00:00  
				
					
						
							
							
								 
						
							
								10d7b85d5e 
								
							 
						 
						
							
							
								
								Remove debugging code accidentally checked in.  
							
							... 
							
							
							
							llvm-svn: 3430 
							
						 
						
							2002-08-21 22:49:31 +00:00  
				
					
						
							
							
								 
						
							
								6e041bdb12 
								
							 
						 
						
							
							
								
								- Implement the new AnalysisGroup feature, neccesary for Value#ing and pointer analysis  
							
							... 
							
							
							
							llvm-svn: 3426 
							
						 
						
							2002-08-21 22:17:09 +00:00  
				
					
						
							
							
								 
						
							
								4b16963ca2 
								
							 
						 
						
							
							
								
								- Eliminate the need for analyses to expose an ::ID member.  
							
							... 
							
							
							
							llvm-svn: 3414 
							
						 
						
							2002-08-21 17:08:37 +00:00  
				
					
						
							
							
								 
						
							
								e821d78432 
								
							 
						 
						
							
							
								
								Sort -time-passes report first by user+system, then by Wall clock time.  
							
							... 
							
							
							
							llvm-svn: 3407 
							
						 
						
							2002-08-20 18:47:53 +00:00  
				
					
						
							
							
								 
						
							
								ca5afe74ab 
								
							 
						 
						
							
							
								
								Add missing space  
							
							... 
							
							
							
							llvm-svn: 3387 
							
						 
						
							2002-08-19 20:42:12 +00:00  
				
					
						
							
							
								 
						
							
								5ec216b5fe 
								
							 
						 
						
							
							
								
								Fix the -time-passes option to not print NaN when there is zero execution time  
							
							... 
							
							
							
							llvm-svn: 3382 
							
						 
						
							2002-08-19 15:43:33 +00:00  
				
					
						
							
							
								 
						
							
								6a33d6f0bb 
								
							 
						 
						
							
							
								
								Enhance -time-passes to be more detailed and useful  
							
							... 
							
							
							
							llvm-svn: 3199 
							
						 
						
							2002-08-01 19:33:09 +00:00  
				
					
						
							
							
								 
						
							
								395c27ae39 
								
							 
						 
						
							
							
								
								We need iostream in PassManagerT.h to use cerr  
							
							... 
							
							
							
							llvm-svn: 3183 
							
						 
						
							2002-07-31 18:04:17 +00:00  
				
					
						
							
							
								 
						
							
								1e4867fed2 
								
							 
						 
						
							
							
								
								Implement new -debug-pass=Arguments option that causes PassManager to  
							
							... 
							
							
							
							print out the command line options for the optimizations it is running.
llvm-svn: 3165 
							
						 
						
							2002-07-30 19:51:02 +00:00  
				
					
						
							
							
								 
						
							
								198cf42178 
								
							 
						 
						
							
							
								
								* Move some code from Pass.cpp to PassManagerT.h  
							
							... 
							
							
							
							* Implement stuff so that code can declare that they only depend on the CFG of
  a function, not on anything else.  This speeds up GCCAS a lot.
llvm-svn: 3155 
							
						 
						
							2002-07-30 16:27:02 +00:00  
				
					
						
							
							
								 
						
							
								071577d66d 
								
							 
						 
						
							
							
								
								* PassInfo is allowed to be missing now (ie, not all passes need be registered)  
							
							... 
							
							
							
							* getPassName uses PassInfo if it's available
* PassInfo is now cached in the pass so that it is only looked up once, maximum
llvm-svn: 3123 
							
						 
						
							2002-07-29 21:02:31 +00:00  
				
					
						
							
							
								 
						
							
								2675007573 
								
							 
						 
						
							
							
								
								* Standardize how analysis results/passes as printed with the print() virtual  
							
							... 
							
							
							
							methods
* Eliminate AnalysisID:  Now it is just a typedef for const PassInfo*
* Simplify how AnalysisID's are initialized
* Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into
  the analyses themselves.
llvm-svn: 3116 
							
						 
						
							2002-07-27 01:12:17 +00:00  
				
					
						
							
							
								 
						
							
								a82ee2df46 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3065 
							
						 
						
							2002-07-24 22:08:53 +00:00  
				
					
						
							
							
								 
						
							
								37d3c95b0f 
								
							 
						 
						
							
							
								
								Add support for pass registration  
							
							... 
							
							
							
							llvm-svn: 3018 
							
						 
						
							2002-07-23 18:08:00 +00:00  
				
					
						
							
							
								 
						
							
								f5cad15a67 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 2985 
							
						 
						
							2002-07-22 02:10:13 +00:00  
				
					
						
							
							
								 
						
							
								8c37789a33 
								
							 
						 
						
							
							
								
								changes for 64bit gcc  
							
							... 
							
							
							
							llvm-svn: 2801 
							
						 
						
							2002-06-25 22:07:38 +00:00  
				
					
						
							
							
								 
						
							
								113f4f4609 
								
							 
						 
						
							
							
								
								MEGAPATCH checkin.  
							
							... 
							
							
							
							For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2779 
							
						 
						
							2002-06-25 16:13:24 +00:00  
				
					
						
							
							
								 
						
							
								7e0dbe62e8 
								
							 
						 
						
							
							
								
								Make functions that preserve the CFG not invalidate analyses that only depend  
							
							... 
							
							
							
							on the CFG of a function
llvm-svn: 2506 
							
						 
						
							2002-05-06 19:31:52 +00:00  
				
					
						
							
							
								 
						
							
								37104aace8 
								
							 
						 
						
							
							
								
								Add new optional getPassName() virtual function that a Pass can override  
							
							... 
							
							
							
							to make debugging output a lot nicer.
llvm-svn: 2395 
							
						 
						
							2002-04-29 14:57:45 +00:00  
				
					
						
							
							
								 
						
							
								e2eb99eb62 
								
							 
						 
						
							
							
								
								Add a new command line option for PassManager using utilities.  
							
							... 
							
							
							
							Now for llc, gccas, analyze, opt, etc you can specify the -time-passes
command line option that outputs a timing summary report that indicates
how long each pass takes to execute.
llvm-svn: 2394 
							
						 
						
							2002-04-29 04:04:29 +00:00  
				
					
						
							
							
								 
						
							
								ee2ff5da74 
								
							 
						 
						
							
							
								
								Move FunctionPass::doesNotModifyCFG to AnalysisUsage::preservesCFG()  
							
							... 
							
							
							
							llvm-svn: 2384 
							
						 
						
							2002-04-28 21:25:41 +00:00  
				
					
						
							
							
								 
						
							
								37c8667190 
								
							 
						 
						
							
							
								
								* Add a stub to FunctionPass so that subclasses can declare that they do not  
							
							... 
							
							
							
							modify the CFG.  It currently does nothing, but will in the future.
* Changes to make the public PassManager.h be MUCH smaller, and devoid of
  implementation details.  Now PassManager is just a Pimpl class that wraps
  PassManagerT<Module>, but lib/VMCore/Pass.cpp is now the only class that
  has to #include PassManagerT.h
llvm-svn: 2383 
							
						 
						
							2002-04-28 20:46:05 +00:00  
				
					
						
							
							
								 
						
							
								a454b5b7c5 
								
							 
						 
						
							
							
								
								Minor changes to allow Modules (which are no longer Values) to work  
							
							... 
							
							
							
							llvm-svn: 2361 
							
						 
						
							2002-04-28 05:14:06 +00:00  
				
					
						
							
							
								 
						
							
								c8e665431b 
								
							 
						 
						
							
							
								
								* Rename MethodPass class to FunctionPass  
							
							... 
							
							
							
							- Rename runOnMethod to runOnFunction
* Transform getAnalysisUsageInfo into getAnalysisUsage
  - Method is now const
  - It now takes one AnalysisUsage object to fill in instead of 3 vectors
    to fill in
  - Pass's now specify which other passes they _preserve_ not which ones
    they modify (be conservative!)
  - A pass can specify that it preserves all analyses (because it never
    modifies the underlying program)
* s/Method/Function/g in other random places as well
llvm-svn: 2333 
							
						 
						
							2002-04-27 06:56:12 +00:00  
				
					
						
							
							
								 
						
							
								1be6266721 
								
							 
						 
						
							
							
								
								Make the release build compile  
							
							... 
							
							
							
							llvm-svn: 2107 
							
						 
						
							2002-04-04 19:24:48 +00:00  
				
					
						
							
							
								 
						
							
								57698e2c0b 
								
							 
						 
						
							
							
								
								Change references from Method to Function  
							
							... 
							
							
							
							change references from MethodARgument to FunctionArgument
llvm-svn: 1991 
							
						 
						
							2002-03-26 18:01:55 +00:00  
				
					
						
							
							
								 
						
							
								60a6591d83 
								
							 
						 
						
							
							
								
								Method.h no longer includes BasicBlock.h  
							
							... 
							
							
							
							Method::inst_* is now in llvm/Support/InstIterator.h
GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h
llvm-svn: 1746 
							
						 
						
							2002-02-12 21:07:25 +00:00  
				
					
						
							
							
								 
						
							
								ac3e060c59 
								
							 
						 
						
							
							
								
								* Make debugging output nicer  
							
							... 
							
							
							
							* Implement pass memory freeing after the pass is unused
* Expose PassManager typedef in Pass.h instead of PassManager.h
llvm-svn: 1617 
							
						 
						
							2002-01-31 18:32:27 +00:00  
				
					
						
							
							
								 
						
							
								cdd09c2c17 
								
							 
						 
						
							
							
								
								Implement new pass framework  
							
							... 
							
							
							
							llvm-svn: 1606 
							
						 
						
							2002-01-31 00:45:31 +00:00  
				
					
						
							
							
								 
						
							
								d013ba96a9 
								
							 
						 
						
							
							
								
								* Expose new command line arg --debug-pass for gccas and llc debugging  
							
							... 
							
							
							
							* Remember to initialize MethodPassBatcher::BBPBatcher instance var in ctor
* Move PassManager::run() from header file
llvm-svn: 1556 
							
						 
						
							2002-01-23 05:49:41 +00:00