Evan Cheng 
							
						 
					 
					
						
						
							
						
						e96f50142e 
					 
					
						
						
							
							Data structure change to improve compile time (especially in debug mode).  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36447  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-25 19:34:00 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						24a3cc4c83 
					 
					
						
						
							
							Fix for PR1306.  
						
						... 
						
						
						
						- A register def / use now implicitly affects sub-register liveness but does
not affect liveness information of super-registers.
- Def of a larger register (if followed by a use later) is treated as
read/mod/write of a smaller register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36434  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-25 07:30:23 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f44c72817e 
					 
					
						
						
							
							VarInfo::UsedBlocks is no longer used. Remove.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36250  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-18 05:04:38 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						38b7ca6651 
					 
					
						
						
							
							Keep track of number of uses within the function per virtual register.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36214  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-17 20:22:11 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c6a2410d58 
					 
					
						
						
							
							Track the BB's where each virtual register is used.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35135  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-17 09:29:54 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						b371f457b0 
					 
					
						
						
							
							Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34428  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-19 21:49:54 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						a284cbf667 
					 
					
						
						
							
							For PR1207:  
						
						... 
						
						
						
						Revert patches that caused the problem. Evan, please investigate and reapply
when you've discovered the problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34399  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-19 03:20:00 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						64ff3c349b 
					 
					
						
						
							
							Allow LiveVariables to track liveness of more registers.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34377  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-17 11:07:08 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						61de82d885 
					 
					
						
						
							
							Use BitVector instead of vector<bool> which can be extremely slow.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34302  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-15 05:59:24 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						a6c4c1eb90 
					 
					
						
						
							
							Do away with kill / dead maps. Move kill / dead info onto MI's.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31759  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-15 20:51:59 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						f7da4e939f 
					 
					
						
						
							
							Fix for PR929. The PHI nodes were being gone through for each instruction  
						
						... 
						
						
						
						in a successor block for every block...resulting in some O(N^k) algorithm
which wasn't very good for performance. Calculating this information up
front and keeping it in a map made it much faster.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30697  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-10-03 07:20:20 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7a3abdc63c 
					 
					
						
						
							
							Move two methods out of line, make them work when the record for a machine  
						
						... 
						
						
						
						instruction includes physregs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30061  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-03 00:05:09 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						51d6e76ff4 
					 
					
						
						
							
							add a comment that I should have written a long time ago  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25084  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-04 07:29:33 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0df687b1be 
					 
					
						
						
							
							add a dump method to help debugging  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25079  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-04 05:39:51 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4e27d3a10c 
					 
					
						
						
							
							Fix a problem Duraid noticed, where we weren't removing values from the kills  
						
						... 
						
						
						
						list when doing two-address and phi node lowering during register allocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23043  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-25 05:45:31 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c44fff472c 
					 
					
						
						
							
							Keep the killed/dead sets sorted, so that "KillsRegister" can do a quick  
						
						... 
						
						
						
						binary search to test for membership.  This speeds up LLC a bit more on KC++,
e.g. on itanium from 16.6974s to 14.8272s, PPC from 11.4926s to 10.7089s and
X86 from 10.8128s to 9.7943s, with no difference in generated code (like all
of the RA patches).
With these changes, isel is the slowest pass for PPC/X86, but linscan+live
intervals is still > 50% of the compile time for itanium.  More work could
be done, but this is the last for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22993  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-24 00:09:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e0cbf970ac 
					 
					
						
						
							
							Change live variables from using multimaps to using maps of vectors and  
						
						... 
						
						
						
						rearrange some of the accessors to be more efficient.
This makes it much more efficient to iterate over all of the things with the
same value.  This speeds up liveintervals analysis from 8.63s to 3.79s with
a release build of llc on kc++ with -march=ia64.  This also speeds up live
var from 1.66s -> 0.87s as well, reducing total llc time from 20.1s->15.2s.
This also speeds up other targets slightly, e.g. llc time on X86 from 16.84
-> 16.45s, and PPC from 17.64->17.03s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22990  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-23 23:40:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						20647a55bf 
					 
					
						
						
							
							Add RegisterDefIsDead to correspond to KillsRegister, mark both const  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22987  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-23 22:43:24 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						00876a2808 
					 
					
						
						
							
							Convert tabs to spaces  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21438  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-22 03:46:24 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						ea61c35872 
					 
					
						
						
							
							Remove trailing whitespace  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21409  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-21 20:39:54 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						801abe663f 
					 
					
						
						
							
							Add a useful accessor  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19209  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-01 15:58:55 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						22a2f6d5b0 
					 
					
						
						
							
							Use newly added API in MRegisterInfo and don't expose the allocatable  
						
						... 
						
						
						
						register set anymore. Its users now use the MRegisterInfo API.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16061  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-08-26 22:23:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						74de8b1b26 
					 
					
						
						
							
							There is no need to store the MBB along with the MI any more, we can now  
						
						... 
						
						
						
						ask instructions for their parent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14998  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-19 07:04:55 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						472405e0dc 
					 
					
						
						
							
							Simplify the interface to LiveVariables::addVirtualRegister(Killed|Dead)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14997  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-19 06:55:21 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						73d4adfb1e 
					 
					
						
						
							
							Remove the DefBlock element of VarInfo.  DefBlock is always DefInst->getParent()  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14996  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-19 06:26:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						61e4cb3605 
					 
					
						
						
							
							Now that we have happy mappings from MBBs->numbers, use them instead of keeping  
						
						... 
						
						
						
						a LV private map
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14522  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-01 06:14:57 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						96362e9cac 
					 
					
						
						
							
							Stop LiveVariables from using BasicBlocks as part of the mapping, instead  
						
						... 
						
						
						
						use MachineBasicBlocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13300  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-01 21:23:35 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						da8ab2ea45 
					 
					
						
						
							
							ADd a method for when an instruction moves  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11626  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-19 18:28:22 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						43549f710a 
					 
					
						
						
							
							Add a new lazily constructed mapping from Idx's the MBB they represent  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11017  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-01-30 22:08:09 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						b08bdc4a16 
					 
					
						
						
							
							Make LiveVariables::HandlePhysRegUse and  
						
						... 
						
						
						
						LiveVariables::HandlePhysRegDef private they use information that is
not in memory when LiveVariables finishes the analysis.
Also update the TwoAddressInstructionPass to not use this interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10755  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-01-11 09:18:45 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						71499ded4d 
					 
					
						
						
							
							Add TwoAddressInstructionPass to handle instructions that have two or  
						
						... 
						
						
						
						more operands and the two first operands are constrained to be the
same. The pass takes an instruction of the form:
        a = b op c
and transforms it into:
        a = b
        a = a op c
and also preserves live variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10512  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-18 13:06:04 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						4c214d2bf0 
					 
					
						
						
							
							Ignore non-allocatable physical registers in live interval analysis.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10449  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-13 11:11:02 +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 
							
						 
					 
					
						
						
							
						
						3889a2cb05 
					 
					
						
						
							
							Remove a ton of extraneous #includes  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6842  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-06-22 03:08:05 +00:00 
						 
				 
			
				
					
						
							
							
								John Criswell 
							
						 
					 
					
						
						
							
						
						be583b914d 
					 
					
						
						
							
							Included assert.h so that the code compiles under newer versions of GCC.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6682  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-06-11 14:01:36 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						bc4a15f6fa 
					 
					
						
						
							
							Beef up interface, move getVarInfo out-of-line.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6114  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-05-12 14:23:04 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9c341366a7 
					 
					
						
						
							
							Expand API for updating live var info.  
						
						... 
						
						
						
						Expose iterators, not const-iterators.
Rename method that was VERY misleading
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6108  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-05-12 03:51:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8a88563a32 
					 
					
						
						
							
							Add comments, add a vector to keep track of which registers are allocatable  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6014  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-05-07 20:07:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						db00065fc8 
					 
					
						
						
							
							Add new files  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5259  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-01-13 01:01:31 +00:00