Chris Lattner 
							
						 
					 
					
						
						
							
						
						5095e3d1d1 
					 
					
						
						
							
							Fix some nasty callgraph dangling pointer problems in  
						
						 
						
						... 
						
						
						
						argpromotion and structretpromote.  Basically, when replacing
a function, they used the 'changeFunction' api which changes
the entry in the function map (and steals/reuses the callgraph
node).
This has some interesting effects: first, the problem is that it doesn't
update the "callee" edges in any callees of the function in the call graph.
Second, this covers for a major problem in all the CGSCC pass stuff, which 
is that it is completely broken when functions are deleted if they *don't*
reuse a CGN.  (there is a cute little fixme about this though :).
This patch changes the protocol that CGSCC passes must obey: now the CGSCC 
pass manager copies the SCC and preincrements its iterator to avoid passes
invalidating it.  This allows CGSCC passes to mutate the current SCC.  However
multiple passes may be run on that SCC, so if passes do this, they are now
required to *update* the SCC to be current when they return.
Other less interesting parts of this patch are that it makes passes update
the CG more directly, eliminates changeFunction, and requires clients of
replaceCallSite to specify the new callee CGN if they are changing it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80527  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-08-31 00:19:58 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						e922c02019 
					 
					
						
						
							
							Get rid of the Pass+Context magic.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-22 00:24:57 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						001dbfebcb 
					 
					
						
						
							
							Move the ConstantInt uniquing table into LLVMContextImpl.  This exposed a number of issues in  
						
						 
						
						... 
						
						
						
						our current context-passing stuff, which is also fixed here
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76089  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-16 18:04:31 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						ae73dc1448 
					 
					
						
						
							
							Tidy up several unbeseeming casts from pointer to intptr_t.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55779  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-04 17:05:41 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Devang Patel 
							
						 
					 
					
						
						
							
						
						c758209153 
					 
					
						
						
							
							PassInfo keep tracks whether a pass is an analysis pass or not.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48554  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-19 21:56:59 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Devang Patel 
							
						 
					 
					
						
						
							
						
						c7fe32e840 
					 
					
						
						
							
							Do not use virtual function to identify an analysis pass.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48520  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-19 00:48:41 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7ed47a1335 
					 
					
						
						
							
							Don't attribute in file headers anymore.  See llvmdev for the  
						
						 
						
						... 
						
						
						
						discussion of this change.  Boy are my fingers tired. ;-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-29 19:59:42 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						a6900c7ad9 
					 
					
						
						
							
							Add explicit keywords.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37839  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-07-02 14:53:37 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Devang Patel 
							
						 
					 
					
						
						
							
						
						794fd75c67 
					 
					
						
						
							
							Do not use typeinfo to identify pass in pass manager.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-05-01 21:15:47 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Devang Patel 
							
						 
					 
					
						
						
							
						
						8f93b7fc36 
					 
					
						
						
							
							Add getPotentialPassManagerType(). No functionality change, yet.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36149  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-16 18:51:25 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Anton Korobeynikov 
							
						 
					 
					
						
						
							
						
						bed2946a96 
					 
					
						
						
							
							Removed tabs everywhere except autogenerated & external files. Add make  
						
						 
						
						... 
						
						
						
						target for tabs checking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36146  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-16 18:10:23 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Devang Patel 
							
						 
					 
					
						
						
							
						
						129ccd9def 
					 
					
						
						
							
							Remove dead code.  
						
						 
						
						... 
						
						
						
						CallGraphSCCPass does not need to implement runOnModule().
It supports runOnSCC().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33516  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-26 01:08:18 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Devang Patel 
							
						 
					 
					
						
						
							
						
						c71ca3cdd2 
					 
					
						
						
							
							Inherit CallGraphSCCPass directly from Pass.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33514  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-26 00:47:38 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Devang Patel 
							
						 
					 
					
						
						
							
						
						97fd2439f2 
					 
					
						
						
							
							Add CallGraphSCCPass::assignPassManager().  
						
						 
						
						... 
						
						
						
						This enables CalLGraphPassManager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33466  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-23 21:52:35 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						9769ab2226 
					 
					
						
						
							
							Remove trailing whitespace  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21408  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-21 20:19:05 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b12914bfc0 
					 
					
						
						
							
							'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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16436  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-09-20 04:48:05 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						25942e9f5c 
					 
					
						
						
							
							Change it to take a callgraph, from which we can get a module  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13085  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-20 21:52:07 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a10df50282 
					 
					
						
						
							
							Add the ability for SCC passes to initialize and finalize themselves  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13084  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-20 21:30:06 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						d0fde30ce8 
					 
					
						
						
							
							Put all LLVM code into the llvm namespace, as per bug 109.  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-11-11 22:41:34 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								John Criswell 
							
						 
					 
					
						
						
							
						
						6fbcc26f14 
					 
					
						
						
							
							Added LLVM copyright header (for lack of a better term).  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-10-20 20:19:47 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4a81067a84 
					 
					
						
						
							
							Initial checkin of the CallGraphSCCPass class  
						
						 
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8247  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-08-31 01:54:59 +00:00