Bill Wendling 
							
						 
					 
					
						
						
							
						
						f3061f8210 
					 
					
						
						
							
							Remove warnings about comparison between signed and unsigned expressions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51465  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-23 01:29:08 +00:00 
						 
				 
			
				
					
						
							
							
								David Greene 
							
						 
					 
					
						
						
							
						
						cff860801e 
					 
					
						
						
							
							Don't attempt to update SpillSlotToUsesMap for stack slots that aren't  
						
						... 
						
						
						
						generated by the spiller.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51439  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-22 21:12:21 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						7a0f1851ec 
					 
					
						
						
							
							More local spiller complexity!  
						
						... 
						
						
						
						If local spiller optimization turns some instruction into an identity copy, it will be removed. If the output register happens to be dead (and source is obviously killed), transfer the kill / dead information to last use / def in the same MBB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51306  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-20 08:13:21 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						844731a7f1 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51017  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-13 00:00:25 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						7ebc06bfd8 
					 
					
						
						
							
							Yet another nasty spiller bug.  
						
						... 
						
						
						
						%ecx = op
store %cl<kill>, (addr)
(addr) = op %al
It's not safe to unfold the last operand and eliminate store even though %cl is marked kill. It's a sub-register use which means one of its super-register(s) may be used below.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50794  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-07 00:49:28 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						4cce6b4c78 
					 
					
						
						
							
							Use of implicit_def is not part of live interval. Create empty intervals for the uses when the live interval is being spilled.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49542  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-11 17:53:36 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						ca1267c02b 
					 
					
						
						
							
							Move reMaterialize() from TargetRegisterInfo to TargetInstrInfo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48995  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-31 20:40:39 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						ed70cbb3f3 
					 
					
						
						
							
							Avoid commuting a def MI in order to coalesce a copy instruction away if any use of the same val# is a copy instruction that has already been coalesced.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48833  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-26 19:03:01 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						70366b96a5 
					 
					
						
						
							
							A couple of kill marker maintainence bug.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48653  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-21 19:09:30 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c17ba8a28d 
					 
					
						
						
							
							Fix PR2138. Apparently any modification to a std::multimap (including remove entries for a different key) can invalidate multimap iterators.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48371  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-14 20:44:01 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						b576931ca2 
					 
					
						
						
							
							Change VirtRegMap's dump to dump to cerr, not DOUT, so that it  
						
						... 
						
						
						
						can be called from within a debuger without having -debug specified
on the command-line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48298  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-12 20:52:10 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						17d5f5496c 
					 
					
						
						
							
							Set NextMII after issuing a physical register spill.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48263  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-12 00:14:07 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						4191b96f41 
					 
					
						
						
							
							Minor debug output bug.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48261  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-12 00:02:46 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c1f53c7426 
					 
					
						
						
							
							Transfer physical register spill info when load / store folding happens.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48246  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-11 21:34:46 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						676dd7c80b 
					 
					
						
						
							
							When the register allocator runs out of registers, spill a physical register around the def's and use's of the interval being allocated to make it possible for the interval to target a register and spill it right away and restore a register for uses. This likely generates terrible code but is before than aborting.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48218  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-11 07:19:34 +00:00 
						 
				 
			
				
					
						
							
							
								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 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						21b3f31f8f 
					 
					
						
						
							
							Fix a bug in dead spill slot elimination.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47687  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-27 19:57:11 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						6ef781f3ce 
					 
					
						
						
							
							Final de-tabification.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47663  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-27 06:33:05 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d36531249a 
					 
					
						
						
							
							Spiller now remove unused spill slots.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47657  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-27 03:04:06 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						e6d088acc9 
					 
					
						
						
							
							Rename PrintableName to Name.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47629  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-26 21:47:57 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						74ab84c31e 
					 
					
						
						
							
							Change "Name" to "AsmName" in the target register info. Gee, a refactoring tool  
						
						... 
						
						
						
						would have been a Godsend here!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47625  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-26 21:11:01 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						f059deb8dd 
					 
					
						
						
							
							De-tabify.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47598  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-26 10:51:52 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						b2fd65f936 
					 
					
						
						
							
							Make sure reload of implicit uses are issued before remat's.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47492  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-22 19:22:06 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d70dbb5d62 
					 
					
						
						
							
							Enable re-materialization of instructions which have virtual register operands if  
						
						... 
						
						
						
						the definition of the operand also reaches its uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47475  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-22 09:24:50 +00:00 
						 
				 
			
				
					
						
							
							
								Anton Korobeynikov 
							
						 
					 
					
						
						
							
						
						4c71dfe356 
					 
					
						
						
							
							Update gcc 4.3 warnings fix patch with recent head changes  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47368  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-20 11:10:28 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						6f0d024a53 
					 
					
						
						
							
							Rename MRegisterInfo to TargetRegisterInfo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46930  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-10 18:45:23 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f2f8c2ae07 
					 
					
						
						
							
							Forgot these files.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46896  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-08 22:05:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						749c6f6b5e 
					 
					
						
						
							
							rename TargetInstrDescriptor -> TargetInstrDesc.  
						
						... 
						
						
						
						Make MachineInstr::getDesc return a reference instead
of a pointer, since it can never be null.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45695  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-07 07:27:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						349c495200 
					 
					
						
						
							
							Move a bunch more accessors from TargetInstrInfo to TargetInstrDescriptor  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45680  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-07 03:13:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						69244300b8 
					 
					
						
						
							
							Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects  
						
						... 
						
						
						
						that it is cheap and efficient to get.
Move a variety of predicates from TargetInstrInfo into 
TargetInstrDescriptor, which makes it much easier to query a predicate
when you don't have TII around.  Now you can use MI->getDesc()->isBranch()
instead of going through TII, and this is much more efficient anyway. Not
all of the predicates have been moved over yet.
Update old code that used MI->getInstrDescriptor()->Flags to use the
new predicates in many places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45674  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-07 01:56:04 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						6425f8be72 
					 
					
						
						
							
							Update CodeGen for MRegisterInfo --> TargetInstrInfo changes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45673  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-07 01:35:56 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						f6372aa1cc 
					 
					
						
						
							
							Move some more instruction creation methods from RegisterInfo into InstrInfo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45484  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-01 21:11:32 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						d10fd9791c 
					 
					
						
						
							
							Move copyRegToReg from MRegisterInfo to TargetInstrInfo.  This is part of the  
						
						... 
						
						
						
						Machine-level API cleanup instigated by Chris.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45470  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-31 06:32:00 +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 
							
						 
					 
					
						
						
							
						
						f73823000e 
					 
					
						
						
							
							More cleanups for MachineOperand:  
						
						... 
						
						
						
						- Eliminate the static "print" method for operands, moving it
    into MachineOperand::print.
  - Change various set* methods for register flags to take a bool
    for the value to set it to.  Remove unset* methods.
  - Group methods more logically by operand flavor in MachineOperand.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45461  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-30 21:56:09 +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 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						39c883cfc5 
					 
					
						
						
							
							If deleting a reload instruction due to reuse (value is available in register R and reload is targeting R), make sure to invalidate the kill information of the last kill.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44894  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-11 23:36:57 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d120ffd26f 
					 
					
						
						
							
							MachineInstr can change. Store indexes instead.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44612  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-05 10:24:35 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						adf8590690 
					 
					
						
						
							
							If a split live interval is spilled again, remove the kill marker on its last use.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44611  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-05 09:51:10 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						b50bb8cf19 
					 
					
						
						
							
							Fix kill info for split intervals.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44609  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-05 08:16:32 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						018f9b020b 
					 
					
						
						
							
							- Mark last use of a split interval as kill instead of letting spiller track it.  
						
						... 
						
						
						
						This allows an important optimization to be re-enabled.
- If all uses / defs of a split interval can be folded, give the interval a
  low spill weight so it would not be picked in case spilling is needed (avoid
  pushing other intervals in the same BB to be spilled).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44601  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-05 03:22:34 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d64b5c82b9 
					 
					
						
						
							
							Add a argument to storeRegToStackSlot and storeRegToAddr to specify whether  
						
						... 
						
						
						
						the stored register is killed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44600  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-05 03:14:33 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						dd86ce3d57 
					 
					
						
						
							
							Remove a unsafe optimization. This fixes 401.bzip2.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44587  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-04 23:57:55 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						35a3e4abb9 
					 
					
						
						
							
							Spiller unfold optimization bug: do not clobber a reusable stack slot value unless it can be modified.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44575  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-04 19:19:45 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						e4b39007c9 
					 
					
						
						
							
							Bug fixes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44549  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-03 21:31:55 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						70306f8348 
					 
					
						
						
							
							Update kill info for uses of split intervals.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44531  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-03 09:58:48 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						aee4af68ae 
					 
					
						
						
							
							Remove redundant foldMemoryOperand variants and other code clean up.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44517  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-02 08:30:39 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						0cbb1164b3 
					 
					
						
						
							
							Fixed various live interval splitting bugs / compile time issues.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44428  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-29 01:06:25 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						cada245d06 
					 
					
						
						
							
							Recover compile time regression.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44386  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-28 01:28:46 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						81a0382181 
					 
					
						
						
							
							Live interval splitting:  
						
						... 
						
						
						
						When a live interval is being spilled, rather than creating short, non-spillable
intervals for every def / use, split the interval at BB boundaries. That is, for
every BB where the live interval is defined or used, create a new interval that
covers all the defs and uses in the BB.
This is designed to eliminate one common problem: multiple reloads of the same
value in a single basic block. Note, it does *not* decrease the number of spills
since no copies are inserted so the split intervals are *connected* through
spill and reloads (or rematerialization). The newly created intervals can be
spilled again, in that case, since it does not span multiple basic blocks, it's
spilled in the usual manner. However, it can reuse the same stack slot as the
previously split interval.
This is currently controlled by -split-intervals-at-bb.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44198  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-17 00:40:40 +00:00