Evan Cheng 
							
						 
					 
					
						
						
							
						
						6130f66eaa 
					 
					
						
						
							
							Refactor code. Remove duplicated functions that basically do the same thing as  
						
						... 
						
						
						
						findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47927  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-05 00:59:57 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						97ca75e4bb 
					 
					
						
						
							
							Fix an iterator invalidation issue.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46263  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-22 23:58:54 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						a6b1926531 
					 
					
						
						
							
							Clarify a deviation from the original algorithm.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46218  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-21 22:03:00 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						3b489522df 
					 
					
						
						
							
							Improve a few comments.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46217  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-21 22:01:01 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						ddd060ffcf 
					 
					
						
						
							
							Get rid of all uses of LiveVariables::VarInfo::DefInst in favor of the equivalent API from  
						
						... 
						
						
						
						MachineRegisterInfo.  Once all clients are switched over, the former will be going away.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45805  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-10 01:36:43 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						dc4d6558e4 
					 
					
						
						
							
							Add more comments explaining the basics of how the decision of when to rename and when to insert  
						
						... 
						
						
						
						copies is made.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45799  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-10 00:47:01 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						b199cbec2e 
					 
					
						
						
							
							Get rid of the isKillInst predicate.  LiveVariables already provides this information.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45797  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-10 00:33:11 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						9c2efa8a8f 
					 
					
						
						
							
							Copies need to be inserted before the first terminator, not at the end of the block.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45791  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-10 00:01:41 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						ec1213fbbb 
					 
					
						
						
							
							Clean up StrongPHIElimination a bit, and add some more comments to the internal structures.  There's  
						
						... 
						
						
						
						still more work to do on this front.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45783  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-09 22:40:54 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						864e3a3762 
					 
					
						
						
							
							StrongPHIElim: Now with even fewer trivial bugs!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45775  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-09 10:41:39 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						719fef648d 
					 
					
						
						
							
							Fix an infinite recursion bug in InsertCopies.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45774  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-09 10:32:30 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						cb7d949a19 
					 
					
						
						
							
							Fix some simple bugs.  StrongPHIElimination now does not crash on 164.gzip.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45773  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-09 06:19:05 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						0c5714bb99 
					 
					
						
						
							
							Rename registers that do not need copies.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45759  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-08 21:54:52 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						0d893b4038 
					 
					
						
						
							
							Actually insert copies now!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45738  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-08 05:16:15 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						0b4825c38b 
					 
					
						
						
							
							Oops, missed one.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45719  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-07 21:32:09 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						9e549202a0 
					 
					
						
						
							
							Make some predicates static.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45718  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-07 21:30:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						84bc5427d6 
					 
					
						
						
							
							Rename SSARegMap -> MachineRegisterInfo in keeping with the idea  
						
						... 
						
						
						
						that "machine" classes are used to represent the current state of
the code being compiled.  Given this expanded name, we can start 
moving other stuff into it.  For now, move the UsedPhysRegs and
LiveIn/LoveOuts vectors from MachineFunction into it.
Update all the clients to match.
This also reduces some needless #includes, such as MachineModuleInfo
from MachineFunction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45467  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-31 04:13:23 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8aa797aa51 
					 
					
						
						
							
							Add new shorter predicates for testing machine operands for various types:  
						
						... 
						
						
						
						e.g. MO.isMBB() instead of MO.isMachineBasicBlock().  I don't plan on 
switching everything over, so new clients should just start using the 
shorter names.
Remove old long accessors, switching everything over to use the short
accessor: getMachineBasicBlock() -> getMBB(), 
getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45464  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-30 23:10:15 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4ee451de36 
					 
					
						
						
							
							Remove attribution from file headers, per discussion on llvmdev.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-29 20:36:04 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						f1519e8361 
					 
					
						
						
							
							Flesh out the Briggs implementation a little bit more, fix a few FIXMEs.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45347  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-24 22:12:23 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						efbcebc95d 
					 
					
						
						
							
							Sketch out an implementation of Briggs' copy placement algorithm.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45334  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-23 15:37:26 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						cae8d8d4be 
					 
					
						
						
							
							Note what still needs doing.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45310  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-22 04:59:10 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						22c43b2988 
					 
					
						
						
							
							Remove critical edge breaking.  It won't be necessary as long as we are very careful when inserting copies.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45309  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-22 04:50:11 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						87a702be1a 
					 
					
						
						
							
							Break local interferences in StrongPHIElimination.  One step closer...  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45070  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-16 05:44:27 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						965b467767 
					 
					
						
						
							
							A few more comments.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45069  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-16 04:07:23 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						62d67dd3a3 
					 
					
						
						
							
							Add register pairs to the list to check for local interferences.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44987  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-13 05:53:03 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						4ba08ecbcf 
					 
					
						
						
							
							Remove ugly and horrible code.  It's not necessary for correctness, and can be added back later if it causes code quality issues.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44986  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-13 05:43:37 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						ed2ffa25a1 
					 
					
						
						
							
							Forgot to remove a register from the PHI-union after I'd determined that it  
						
						... 
						
						
						
						interfered with other registers.  Seems like that might be a good thing to do. :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44902  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-12 01:25:08 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						d525f664c9 
					 
					
						
						
							
							More progress on StrongPHIElimination.  Now we actually USE the DomForest!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44877  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-11 20:12:11 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						afc6de0015 
					 
					
						
						
							
							A little more progress on StrongPHIElimination, now that I have a better sense of  
						
						... 
						
						
						
						how the CodeGen machinery works.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44786  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-10 08:07:09 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						42f9e96e97 
					 
					
						
						
							
							Run computeDomForest() on the set of registers that need to be tested for  
						
						... 
						
						
						
						interference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44064  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-13 20:13:24 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						17b1418bea 
					 
					
						
						
							
							Preserve LiveVariables when doing critical edge splitting.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44063  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-13 20:04:45 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						35e2dba672 
					 
					
						
						
							
							Break critical edges coming into blocks with PHI nodes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44019  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-12 17:27:27 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						fe0c882e5a 
					 
					
						
						
							
							As Chris and Evan pointed out, BreakCriticalMachineEdges doesn't really need  
						
						... 
						
						
						
						to be a pass of its own.  Instead, move it out into a helper method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44002  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-12 01:05:09 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						14b3fb7805 
					 
					
						
						
							
							Take another stab at getting isLiveIn() and isLiveOut() right.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43869  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-08 01:32:45 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						60a877d713 
					 
					
						
						
							
							Add some more of StrongPHIElim.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43805  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-07 05:17:15 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						8b96b9fce0 
					 
					
						
						
							
							Add a few comments.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43755  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-06 05:26:02 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						ee49b5385b 
					 
					
						
						
							
							DomForest is a forest of registers, not instructions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43754  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-06 05:22:43 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						a4ad2e740a 
					 
					
						
						
							
							StrongPHIElimination requires LiveVariables.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43751  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-06 04:49:43 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						83430bce1d 
					 
					
						
						
							
							Another step of stronger PHI elimination down.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43684  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-04 22:33:26 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						1bd3271b16 
					 
					
						
						
							
							Add a newline at the end of the file.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43550  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-10-31 08:49:24 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						0bda0e8895 
					 
					
						
						
							
							Add the skeleton of a better PHI elimination pass.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43542  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-10-31 03:37:57 +00:00