Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								8ac477ffb5 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 116334 
							
						 
						
							2010-10-12 19:48:12 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								df7a4f2515 
								
							 
						 
						
							
							
								
								Now with fewer extraneous semicolons!  
							
							 
							
							... 
							
							
							
							llvm-svn: 115996 
							
						 
						
							2010-10-07 22:25:06 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a7aed18624 
								
							 
						 
						
							
							
								
								Reapply r110396, with fixes to appease the Linux buildbot gods.  
							
							 
							
							... 
							
							
							
							llvm-svn: 110460 
							
						 
						
							2010-08-06 18:33:48 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								bda59bd247 
								
							 
						 
						
							
							
								
								Revert r110396 to fix buildbots.  
							
							 
							
							... 
							
							
							
							llvm-svn: 110410 
							
						 
						
							2010-08-06 00:23:35 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								40f18838b7 
								
							 
						 
						
							
							
								
								The BlockExtractorPass() constructor was not reading the BlockFile and that was  
							
							 
							
							... 
							
							
							
							exactly what bugpoint expected it to do.
There was also only one user of
BlockExtractorPass(const std::vector<BasicBlock*> &B), so just remove it and
make BlockExtractorPass read BlockFile.
This fixes bugpoint's block extraction.
Nick, please review.
llvm-svn: 109936 
							
						 
						
							2010-07-31 00:32:17 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a57b97e7e7 
								
							 
						 
						
							
							
								
								Fix batch of converting RegisterPass<> to INTIALIZE_PASS().  
							
							 
							
							... 
							
							
							
							llvm-svn: 109045 
							
						 
						
							2010-07-21 22:09:45 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								a83ac2d9e7 
								
							 
						 
						
							
							
								
								Update various Loop optimization passes to cope with the possibility that  
							
							 
							
							... 
							
							
							
							LoopSimplify form may not be available.
llvm-svn: 86175 
							
						 
						
							2009-11-05 21:11:53 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								9a7320c711 
								
							 
						 
						
							
							
								
								Convert LoopSimplify and LoopExtractor from FunctionPass to LoopPass.  
							
							 
							
							... 
							
							
							
							llvm-svn: 82990 
							
						 
						
							2009-09-28 14:37:51 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4883d90396 
								
							 
						 
						
							
							
								
								convert LoopInfo.h and GraphWriter.h to use raw_ostream  
							
							 
							
							... 
							
							
							
							llvm-svn: 79836 
							
						 
						
							2009-08-23 07:19:13 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								a79db30d28 
								
							 
						 
						
							
							
								
								Tidy up several unbeseeming casts from pointer to intptr_t.  
							
							 
							
							... 
							
							
							
							llvm-svn: 55779 
							
						 
						
							2008-09-04 17:05:41 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								8de6d22392 
								
							 
						 
						
							
							
								
								Use empty() instead of begin() == end().  
							
							 
							
							... 
							
							
							
							llvm-svn: 54780 
							
						 
						
							2008-08-14 18:13:49 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								6a2da37c0e 
								
							 
						 
						
							
							
								
								Make several variable declarations static.  
							
							 
							
							... 
							
							
							
							llvm-svn: 50696 
							
						 
						
							2008-05-06 01:53:16 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								c6243020a6 
								
							 
						 
						
							
							
								
								Allow the block extractor take to take a list of basic blocks to not extract  
							
							 
							
							... 
							
							
							
							from a file containing Function/BasicBlock pairings. This is not safe against
anonymous or abnormally-named Funcs or BBs.
Make bugpoint use this interface to pass the BBs list to the child bugpoint.
llvm-svn: 44101 
							
						 
						
							2007-11-14 06:47:06 +00:00  
						
					 
				
					
						
							
							
								 
								Gordon Henriksen
							
						 
						
							 
							
							
							
							
								
							
							
								2ed067a0d9 
								
							 
						 
						
							
							
								
								Deleting redundant copy of block extractor pass. See also PR1775.  
							
							 
							
							... 
							
							
							
							llvm-svn: 43694 
							
						 
						
							2007-11-05 01:54:05 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								b5933bbbd5 
								
							 
						 
						
							
							
								
								Use SmallVector instead of std::vector.  
							
							 
							
							... 
							
							
							
							llvm-svn: 41207 
							
						 
						
							2007-08-21 00:31:24 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								34d442f274 
								
							 
						 
						
							
							
								
								More explicit keywords.  
							
							 
							
							... 
							
							
							
							llvm-svn: 40673 
							
						 
						
							2007-08-01 15:32:29 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								cf470e5255 
								
							 
						 
						
							
							
								
								Do not use ETForest as well as DomiantorTree.  DominatorTree is sufficient.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37501 
							
						 
						
							2007-06-07 22:17:16 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								e7da2d6ac3 
								
							 
						 
						
							
							
								
								Fix typo in comment.  
							
							 
							
							... 
							
							
							
							llvm-svn: 36873 
							
						 
						
							2007-05-06 13:37:16 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								8c78a0bff0 
								
							 
						 
						
							
							
								
								Drop 'const'  
							
							 
							
							... 
							
							
							
							llvm-svn: 36662 
							
						 
						
							2007-05-03 01:11:54 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								09f162ca6a 
								
							 
						 
						
							
							
								
								Do not use typeinfo to identify pass in pass manager.  
							
							 
							
							... 
							
							
							
							llvm-svn: 36632 
							
						 
						
							2007-05-01 21:15:47 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								f095bf3ac4 
								
							 
						 
						
							
							
								
								Expunge DomSet from CodeExtractor.  This is part of the continuing work  
							
							 
							
							... 
							
							
							
							on PR1171.
llvm-svn: 35726 
							
						 
						
							2007-04-07 05:31:27 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								557ab15e71 
								
							 
						 
						
							
							
								
								Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in  
							
							 
							
							... 
							
							
							
							the Transforms library. This reduces debug library size by 132 KB, debug
binary size by 376 KB, and reduces link time for llvm tools slightly.
llvm-svn: 33939 
							
						 
						
							2007-02-05 23:32:05 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								3aaaa0b2bd 
								
							 
						 
						
							
							
								
								For PR411:  
							
							 
							
							... 
							
							
							
							This patch replaces the SymbolTable class with ValueSymbolTable which does
not support types planes. This means that all symbol names in LLVM must now
be unique. The patch addresses the necessary changes to deal with this and
removes code no longer needed as a result. This completes the bulk of the
changes for this PR. Some cleanup patches will follow.
llvm-svn: 33918 
							
						 
						
							2007-02-05 20:47:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1631bcb1d4 
								
							 
						 
						
							
							
								
								Eliminate static ctors due to Statistic objects  
							
							 
							
							... 
							
							
							
							llvm-svn: 32693 
							
						 
						
							2006-12-19 22:09:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								700b873130 
								
							 
						 
						
							
							
								
								Detemplatize the Statistic class.  The only type it is instantiated with  
							
							 
							
							... 
							
							
							
							is 'unsigned'.
llvm-svn: 32279 
							
						 
						
							2006-12-06 17:46:33 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c2d3d3112e 
								
							 
						 
						
							
							
								
								eliminate RegisterOpt.  It does the same thing as RegisterPass.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29925 
							
						 
						
							2006-08-27 22:42:52 +00:00  
						
					 
				
					
						
							
							
								 
								Misha Brukman
							
						 
						
							 
							
							
							
							
								
							
							
								b1c9317bb4 
								
							 
						 
						
							
							
								
								Remove trailing whitespace  
							
							 
							
							... 
							
							
							
							llvm-svn: 21427 
							
						 
						
							2005-04-21 23:48:37 +00:00  
						
					 
				
					
						
							
							
								 
								Jeff Cohen
							
						 
						
							 
							
							
							
							
								
							
							
								3e62e7c68b 
								
							 
						 
						
							
							
								
								Apply feedback from Chris.  
							
							 
							
							... 
							
							
							
							llvm-svn: 19432 
							
						 
						
							2005-01-10 04:23:32 +00:00  
						
					 
				
					
						
							
							
								 
								Jeff Cohen
							
						 
						
							 
							
							
							
							
								
							
							
								677babc4d4 
								
							 
						 
						
							
							
								
								Add more missing createXxxPass functions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 19370 
							
						 
						
							2005-01-08 17:21:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4f2cf030e8 
								
							 
						 
						
							
							
								
								'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.
llvm-svn: 16436 
							
						 
						
							2004-09-20 04:48:05 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7386e6333d 
								
							 
						 
						
							
							
								
								"extract" the block extractor pass from bugpoint (haha)  
							
							 
							
							... 
							
							
							
							llvm-svn: 15714 
							
						 
						
							2004-08-13 03:05:17 +00:00  
						
					 
				
					
						
							
							
								 
								Misha Brukman
							
						 
						
							 
							
							
							
							
								
							
							
								63b38bd2ed 
								
							 
						 
						
							
							
								
								Fix #includes of i*.h => Instructions.h as per PR403.  
							
							 
							
							... 
							
							
							
							llvm-svn: 15334 
							
						 
						
							2004-07-29 17:30:56 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d72c3eb54e 
								
							 
						 
						
							
							
								
								Change the ExitBlocks list from being explicitly contained in the Loop  
							
							 
							
							... 
							
							
							
							structure to being dynamically computed on demand.  This makes updating
loop information MUCH easier.
llvm-svn: 13045 
							
						 
						
							2004-04-18 22:14:10 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e83693560a 
								
							 
						 
						
							
							
								
								Add statistics to the loop extractor.  The loop extractor has successfully  
							
							 
							
							... 
							
							
							
							extracted all 63 loops for Olden/bh without crashing and without
miscompiling the program!!!
llvm-svn: 12491 
							
						 
						
							2004-03-18 05:46:10 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5bce0c807d 
								
							 
						 
						
							
							
								
								Fix problem with PHI nodes having multiple predecessors from different  
							
							 
							
							... 
							
							
							
							exit nodes
llvm-svn: 12490 
							
						 
						
							2004-03-18 05:43:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e9235d2dde 
								
							 
						 
						
							
							
								
								The code extractor needs dominator info.  Provide it  
							
							 
							
							... 
							
							
							
							llvm-svn: 12483 
							
						 
						
							2004-03-18 03:48:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2f155d8734 
								
							 
						 
						
							
							
								
								Fix several bugs in the loop extractor.  In particular, subloops were never  
							
							 
							
							... 
							
							
							
							extracted, and a function that contained a single top-level loop never had
the loop extracted, regardless of how much non-loop code there was.
llvm-svn: 12403 
							
						 
						
							2004-03-15 00:02:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a1672c1bd8 
								
							 
						 
						
							
							
								
								Split into two passes.  Now there is the general loop extractor, usable on  
							
							 
							
							... 
							
							
							
							the command line, and the single loop extractor, usable by bugpoint
llvm-svn: 12390 
							
						 
						
							2004-03-14 20:01:36 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0137de5ecb 
								
							 
						 
						
							
							
								
								Passes don't print stuff!  
							
							 
							
							... 
							
							
							
							llvm-svn: 12385 
							
						 
						
							2004-03-14 04:17:53 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6c3e8c78cf 
								
							 
						 
						
							
							
								
								FunctionPass's should not define their own 'run' method.  
							
							 
							
							... 
							
							
							
							Require 'simplified' loops, not just raw natural loops.  This fixes
CodeExtractor/2004-03-13-LoopExtractorCrash.ll
llvm-svn: 12381 
							
						 
						
							2004-03-14 04:01:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								78a996aec4 
								
							 
						 
						
							
							
								
								Move prototype to IPO.h instead of Scalar.h  
							
							 
							
							... 
							
							
							
							Make sure that the file interface header (IPO.h) is included first
remove dead #incldue
llvm-svn: 12375 
							
						 
						
							2004-03-14 02:37:16 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								692a47aeb9 
								
							 
						 
						
							
							
								
								Indent anon namespace properly, add copyright block  
							
							 
							
							... 
							
							
							
							llvm-svn: 12373 
							
						 
						
							2004-03-14 02:34:07 +00:00