Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						53eb37340c 
					 
					
						
						
							
							Some compile time improvements resulting in a 1sec speedup in the 5sec  
						
						... 
						
						
						
						compilation of gcc:
* Use vectors instead of lists for the intervals sets
* Use a heap for the unhandled set to keep intervals always sorted and
  makes insertions back to the heap very fast (compared to scanning a
  list)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15103  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-22 08:14:44 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						7848e68c16 
					 
					
						
						
							
							These files don't need to include <iostream> since they include "Support/Debug.h".  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15089  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-21 20:50:33 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						da77c44c2c 
					 
					
						
						
							
							Remove dead code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15011  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-19 23:35:55 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						331cb7dde1 
					 
					
						
						
							
							Fix assertion to not dereference end!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14991  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-19 05:02:09 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						59073e02cc 
					 
					
						
						
							
							Add some asserts that the list of intervals returned by addIntervalsForSpills  
						
						... 
						
						
						
						is sorted.  This is not the case currently, which is causing no end of
problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14990  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-19 04:47:36 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						c156095b17 
					 
					
						
						
							
							Correctly compute the ration of iterations/#intervals.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14626  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-04 17:23:35 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						d55b2b1067 
					 
					
						
						
							
							Add efficiency statistic.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14590  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-04 07:59:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						418da55c89 
					 
					
						
						
							
							Rename Interval class to LiveInterval to avoid conflicting with the already  
						
						... 
						
						
						
						existing llvm::Interval class.
Patch contributed by Vladimir Prus!
http://mail.cs.uiuc.edu/pipermail/llvmbugs/2004-June/000710.html 
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14281  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-06-21 13:10:56 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						6924063bf2 
					 
					
						
						
							
							Pull Interval class out of LiveIntervals.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13910  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-30 07:46:27 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						26f5a69e52 
					 
					
						
						
							
							When spilling an register, introduce a new temporary for each of its  
						
						... 
						
						
						
						spills. This allows for more flexibility when allocating registers for
spill code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13907  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-30 07:24:39 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						880e8e4b4c 
					 
					
						
						
							
							Add required header  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13417  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-08 03:50:03 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a19eedeb7a 
					 
					
						
						
							
							numeric_limits::infinity() apparently does not work on all systems.  As a  
						
						... 
						
						
						
						workaround, use the C HUGE_VAL macro instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13377  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-06 16:25:59 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						eee91172fb 
					 
					
						
						
							
							Make the set of fixed (preallocated) intervals be a fixed superset of  
						
						... 
						
						
						
						unhandled + handled. So unhandled is now including all fixed intervals
and fixed intervals never changes when processing a function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12462  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-17 00:48:59 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						dd420e060a 
					 
					
						
						
							
							Add a spiller option to llc. A simple spiller will come soon. When we get CFG in the machine code represenation a global spiller will also be possible. Also document the linear scan register allocator but mark it as experimental for now.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12062  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-01 23:18:15 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						5f37502bfb 
					 
					
						
						
							
							Add the long awaited memory operand folding support for linear scan  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12058  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-01 20:05:10 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						fc54e83cea 
					 
					
						
						
							
							Rename member function to be consistent with the rest.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11898  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-27 06:11:15 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						1d8b28a357 
					 
					
						
						
							
							Remove asssert since it is breaking cases that it shouldn't.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11841  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-25 22:01:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						95c34f2efd 
					 
					
						
						
							
							Add an assertion  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11830  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-25 19:37:44 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						0d6c5b6489 
					 
					
						
						
							
							Move machine code rewriter and spiller outside the register  
						
						... 
						
						
						
						allocator.
The implementation is completely rewritten and now employs several
optimizations not exercised before. For example for 164.gzip we have
997 loads and 699 stores vs the 1221 loads and 880 stores we have
before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11798  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-24 08:58:30 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						797428719f 
					 
					
						
						
							
							Remove '4Virt' from member function names as it is obvious.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11781  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 23:47:10 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						34d9bc9f16 
					 
					
						
						
							
							Refactor VirtRegMap out of RegAllocLinearScan as the first part of bug  
						
						... 
						
						
						
						251 (providing a generic machine code rewriter/spiller).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11780  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 23:08:11 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						575649322f 
					 
					
						
						
							
							Add number of spilled registers statistic.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11759  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 18:45:32 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						e6394e2b62 
					 
					
						
						
							
							Remove implementation of default constructor as it is useless now.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11755  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 18:28:35 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						12edc7ef3d 
					 
					
						
						
							
							Improved PhysRegTracker interface. RegAlloc lazily allocates the register tracker using a std::auto_ptr  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11738  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 06:10:13 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						534f545ef1 
					 
					
						
						
							
							Fix comments in PhysRegTracker and rename isPhysRegAvail to isRegAvail to be consistent with the other two  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11723  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 01:25:05 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						888b1a6ccd 
					 
					
						
						
							
							Pull PhysRegTracker out of RegAllocLinearScan as it can be used by other allocators as well  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11720  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 00:53:31 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						a2f6a408dc 
					 
					
						
						
							
							Move LiveIntervals.h to lib/CodeGen since it shouldn't be exposed to other parts of the compiler  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11719  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-23 00:50:15 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						0f338a1e8c 
					 
					
						
						
							
							Print basic block boundaries in machine instruction debug output.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11704  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-22 05:46:04 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						fa510c4af5 
					 
					
						
						
							
							Fix crash in debug output.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11659  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-20 06:41:12 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						537fa9838d 
					 
					
						
						
							
							Fix instruction numbering in debug output.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11655  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-20 06:29:51 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						39a0d5c112 
					 
					
						
						
							
							Too many changes in one commit:  
						
						... 
						
						
						
						1. LiveIntervals now implement a 4 slot per instruction model. Load,
   Use, Def and a Store slot. This is required in order to correctly
   represent caller saved register clobbering on function calls,
   register reuse in the same instruction (def resues last use) and
   also spill code added later by the allocator. The previous
   representation (2 slots per instruction) was insufficient and as a
   result was causing subtle bugs.
2. Fixes in spill code generation. This was the major cause of
   failures in the test suite.
3. Linear scan now has core support for folding memory operands. This
   is untested and not enabled (the live interval update function does
   not attempt to fold loads/stores in instructions).
4. Lots of improvements in the debugging output of both live intervals
   and linear scan. Give it a try... it is beautiful :-)
In summary the above fixes all the issues with the recent reserved
register elimination changes and get the allocator very close to the
next big step: folding memory operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11654  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-20 06:15:40 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						d195e99bc8 
					 
					
						
						
							
							Fix RA::verifyAssignment()  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11629  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-19 19:24:17 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						2acef2da06 
					 
					
						
						
							
							Rename reloads/spills to loads/stores.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11619  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-19 06:19:09 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						779e640657 
					 
					
						
						
							
							Implement assignment correctness verification.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11609  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-18 23:15:23 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						843b160a20 
					 
					
						
						
							
							Eliminate the use of spill (reserved) registers.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11476  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-15 10:24:21 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						6ab5c15962 
					 
					
						
						
							
							Use std::numeric_limits<float>::infinity() instead of  
						
						... 
						
						
						
						std::numeric_limits<float>::max() for weighting preallocated
intervals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11427  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-14 00:44:07 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						be766c7246 
					 
					
						
						
							
							Remove getAllocatedRegNum(). Use getReg() instead.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11393  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-13 21:01:20 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						c0b9dc5be7 
					 
					
						
						
							
							Change MachineBasicBlock's vector of MachineInstr pointers into an  
						
						... 
						
						
						
						ilist of MachineInstr objects. This allows constant time removal and
insertion of MachineInstr instances from anywhere in each
MachineBasicBlock. It also allows for constant time splicing of
MachineInstrs into or out of MachineBasicBlocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11340  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-12 02:27:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1cbe4d0ad0 
					 
					
						
						
							
							Do not use MachineOperand::isVirtualRegister either!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11283  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-10 21:12:22 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						f5eaf16b94 
					 
					
						
						
							
							Increase code clarity.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11151  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-06 18:08:18 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						54d23c754a 
					 
					
						
						
							
							Eliminate uneeded lookups by passing a Virt2PhysMap::iterator instead  
						
						... 
						
						
						
						of the virtual register to certain functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11143  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-06 03:15:40 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						14be64018f 
					 
					
						
						
							
							Modify the two address instruction pass to remove the duplicate  
						
						... 
						
						
						
						operand of the instruction and thus simplify the register allocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11124  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-04 22:17:40 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						4e7854407c 
					 
					
						
						
							
							When an instruction like: A += B had both A and B virtual registers  
						
						... 
						
						
						
						spilled, A was loaded from its stack location twice. This fixes the bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11093  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-03 01:13:07 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						cc6a1290fc 
					 
					
						
						
							
							Fix debugging output.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11088  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-02 22:00:32 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						22b7e44bb0 
					 
					
						
						
							
							Create an object for tracking physical register usage. This will look  
						
						... 
						
						
						
						much better when I get rid of the reserved registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11066  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-02 07:30:36 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						04667297af 
					 
					
						
						
							
							Change weight array into a vector and make it as big as the number of  
						
						... 
						
						
						
						registers (not as the max number of registers).
Change toSpill from a std::set into a std::vector<bool>.
Use the reverse iterator adapter to do a reverse scan of allocatable
registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11061  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-01 20:13:26 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						f440cc19c9 
					 
					
						
						
							
							Use std::map::count() instead of std::map::find() != std::map::end()  
						
						... 
						
						
						
						where appropriate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11060  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-01 18:39:53 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						4f67b86648 
					 
					
						
						
							
							Use MRegisterInfo::isPhysicalRegister and  
						
						... 
						
						
						
						MRegisterInfo::isVirtualRegister.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11045  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-01 01:27:01 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						e88280a422 
					 
					
						
						
							
							Add option to join live intervals. Two intervals are joined if there  
						
						... 
						
						
						
						is a move between two registers, at least one of the registers is
virtual and the two live intervals do not overlap.
This results in about 40% reduction in intervals, 30% decrease in the
register allocators running time and a 20% increase in peephole
optimizations (mainly move eliminations).
The option can be enabled by passing -join-liveintervals where
appropriate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10965  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-01-22 23:08:45 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						84dc5fb6ba 
					 
					
						
						
							
							Remove unneeded check. An interval in active, by definition overlaps  
						
						... 
						
						
						
						with the current one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10959  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-01-22 20:07:18 +00:00