Owen Anderson 
							
						 
					 
					
						
						
							
						
						1ed5b714f1 
					 
					
						
						
							
							Reorganization: Move the Spiller out of VirtRegMap.cpp into its own files.  No (intended) functionality change.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66720  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-11 22:31:21 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						04ee5a1d92 
					 
					
						
						
							
							Change TargetInstrInfo::isMoveInstr to return source and destination sub-register indices as well.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62600  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-20 19:12:24 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d0deec20f6 
					 
					
						
						
							
							Make linear scan's trivial coalescer slightly more aggressive.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62547  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-20 00:16:18 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						d68a07650c 
					 
					
						
						
							
							Tidy up #includes, deleting a bunch of unnecessary #includes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61715  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-05 17:59:02 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5489893867 
					 
					
						
						
							
							- More pre-split fixes: spill slot live interval computation bug; restore point bug.  
						
						... 
						
						
						
						- If a def is spilt, remember its spill index to allow its reuse.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58375  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-29 08:39:34 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d0e32c5d5c 
					 
					
						
						
							
							- Rewrite code that update register live interval that's split.  
						
						... 
						
						
						
						- Create and update spill slot live intervals.
- Lots of bug fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58367  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-29 05:06:14 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f5cd4f0d70 
					 
					
						
						
							
							Committing a good chunk of the pre-register allocation live interval splitting pass. It's handling simple cases and appear to do good things. Next: avoid splitting an interval multiple times; renumber registers when possible; record stack slot live intervals for coloring; rematerialize defs when possible.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58044  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-23 20:43:13 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						b8cab9227a 
					 
					
						
						
							
							Fix command-line option printing to print two spaces where needed,  
						
						... 
						
						
						
						instead of requiring all "short description" strings to begin with
two spaces. This makes these strings less mysterious, and it fixes
some cases where short description strings mistakenly did not
begin with two spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57521  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-14 20:25:08 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						95dad830bb 
					 
					
						
						
							
							Add an option to enable StrongPHIElimination, for ease of testing.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57259  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-07 20:22:28 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						dc37786595 
					 
					
						
						
							
							Re-apply 56835 along with header file changes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56848  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-30 15:44:16 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						46292be362 
					 
					
						
						
							
							Revert commit 56835 since it breaks the build.  
						
						... 
						
						
						
						"If a re-materializable instruction has a register
operand, the spiller will change the register operand's
spill weight to HUGE_VAL to avoid it being spilled.
However, if the operand is already in the queue ready
to be spilled, avoid re-materializing it".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56837  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-30 10:00:30 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						d41474d2c0 
					 
					
						
						
							
							If a re-materializable instruction has a register operand, the spiller will change the register operand's spill weight to HUGE_VAL to avoid it being spilled. However, if the operand is already in the queue ready to be spilled, avoid re-materializing it.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56835  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-30 06:36:58 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						86b49f8e2d 
					 
					
						
						
							
							Next round of earlyclobber handling.  Approach the  
						
						... 
						
						
						
						RA problem by expanding the live interval of an
earlyclobber def back one slot.  Remove
overlap-earlyclobber throughout.  Remove 
earlyclobber bits and their handling from
live internals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56539  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-24 01:07:17 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						34d8f7559c 
					 
					
						
						
							
							Teach coalescer about earlyclobber bits.  
						
						... 
						
						
						
						Check bits for preferred register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56384  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-20 02:03:04 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5e8d9def77 
					 
					
						
						
							
							Fix PR2808. When regalloc runs out of register, it spill a physical register around the live interval being allocated. Do not continue to try to spill another register, just grab the physical register and move on.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56381  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-20 01:28:05 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						d6bd733534 
					 
					
						
						
							
							Make earlyclobber stuff work when virtual regs  
						
						... 
						
						
						
						have previously been assigned conflicting physreg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56364  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-19 18:52:31 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						fa48f94130 
					 
					
						
						
							
							Remove AsmThatEarlyClobber etc. from LiveIntervalAnalysis  
						
						... 
						
						
						
						and redo as linked list walk.  Logic moved into RA.
Per review feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56326  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-19 01:02:35 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						841ee1a12b 
					 
					
						
						
							
							Somehow RegAllocLinearScan is keeping two pointers to MachineRegisterInfo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56314  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-18 22:38:47 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						91aac1015e 
					 
					
						
						
							
							Add a bit to mark operands of asm's that conflict  
						
						... 
						
						
						
						with an earlyclobber operand elsewhere.  Propagate
this bit and the earlyclobber bit through SDISel.
Change linear-scan RA not to allocate regs in a way 
that conflicts with an earlyclobber.  See also comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56290  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-17 21:13:11 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5530216989 
					 
					
						
						
							
							Fix PR2757. Ignore liveinterval register allocation preference if the preference register is not in the right register class. This can happen due to sub-register coalescing.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56006  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-09 20:22:01 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						ae73dc1448 
					 
					
						
						
							
							Tidy up several unbeseeming casts from pointer to intptr_t.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55779  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-04 17:05:41 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						cd1dcbd4fb 
					 
					
						
						
							
							Convert several std::vectors over to SmallVector, and use reserve() as appropriate for cases where std::vector is still used.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54820  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-15 18:49:41 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						97382166dd 
					 
					
						
						
							
							Get rid of a use of std::map.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54770  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-13 23:36:23 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						03857b29d8 
					 
					
						
						
							
							Make the allocation of LiveIntervals explicit, rather than holding them in the r2iMap_ by value.  This will prevent references to them from being invalidated  
						
						... 
						
						
						
						if the map is changed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54763  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-13 21:49:13 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						496bac5b08 
					 
					
						
						
							
							Fix a compile-time regression introduced by my heuristic-changing patch.  I forgot  
						
						... 
						
						
						
						to multiply the instruction count by a constant factor in a few places, which
caused the register allocator to require many more iterations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53959  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-23 19:47:27 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						a1566f2e12 
					 
					
						
						
							
							Change the heuristics used in the coalescer, register allocator, and within  
						
						... 
						
						
						
						live intervals itself to use an instruction count approximation that is 
not affected by inserting empty indices.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53937  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-22 22:46:49 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						51cd9d6e07 
					 
					
						
						
							
							A brief survey of priority_queue usage in the tree turned this up  
						
						... 
						
						
						
						as a questionable case, but the code isn't actually needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52657  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-23 23:51:16 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						3e172254c1 
					 
					
						
						
							
							Enhanced heuristic to determine the *best* register to spill. Instead of picking the register with the lowest spill weight. Consider (up to) 2 additional registers with spill weights that are close to the lowest spill weight. The one with fewest defs and uses that conflicts with the current interval (weighted by loop depth) is the spill candidate.  
						
						... 
						
						
						
						This is not always a win, but there are much more wins than loses and wins tend to be more noticeable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52554  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-20 21:45:16 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						9c3c221364 
					 
					
						
						
							
							Refine stack slot interval weight computation.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52040  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-06 07:54:39 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						3f32d65912 
					 
					
						
						
							
							Add a stack slot coloring pass. Not yet enabled.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51934  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-04 09:18:41 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f2b24ca2c7 
					 
					
						
						
							
							Do not add empty live intervals to handled_. They should never be undone for backtracking.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49544  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-11 17:55:47 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f30a49d9e0 
					 
					
						
						
							
							Special handling of zero-sized live intervals.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49167  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-04-03 16:40:27 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						af8c563e11 
					 
					
						
						
							
							Add an assertion to catch register of illegal class.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48751  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-24 23:28:21 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c438f35df9 
					 
					
						
						
							
							Undo tweak. It had no obvious benefit.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48341  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-13 17:42:48 +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 
							
						 
					 
					
						
						
							
						
						524f961742 
					 
					
						
						
							
							Temporarily revert 48175.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48204  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-11 00:27:34 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						a3413804f4 
					 
					
						
						
							
							If the register allocator ran out of registers, just abort for now.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48175  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-10 21:27:20 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fe42462164 
					 
					
						
						
							
							Use a smallvector for inactiveCounts and initialize it lazily  
						
						... 
						
						
						
						instead of init'ing it maximally to zeros on entry.  getFreePhysReg
is pretty hot and only a few elements are typically used.  This speeds
up linscan by 5% on 176.gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47631  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-26 22:08:41 +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 
						 
				 
			
				
					
						
							
							
								Anton Korobeynikov 
							
						 
					 
					
						
						
							
						
						4aefd6b7d4 
					 
					
						
						
							
							Fix newly-introduced 4.3 warnings  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47375  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-02-20 12:07:57 +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 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						67d65bb69d 
					 
					
						
						
							
							Don't recalculate the loop info and loop dominators analyses if they're  
						
						... 
						
						
						
						preserved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45596  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-04 20:54:55 +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 
							
						 
					 
					
						
						
							
						
						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 
							
						 
					 
					
						
						
							
						
						22f07ffd27 
					 
					
						
						
							
							Switch over to MachineLoopInfo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44838  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-11 02:09:15 +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 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						5b8318a1a4 
					 
					
						
						
							
							Adding debug output during coalescing.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44154  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-15 02:06:30 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						87075caa18 
					 
					
						
						
							
							Need to increment the iterator.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44153  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-15 00:40:48 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f2fbca68f8 
					 
					
						
						
							
							Refactor some code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44010  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-12 06:35:08 +00:00