Owen Anderson 
							
						 
					 
					
						
						
							
						
						75fa96bb71 
					 
					
						
						
							
							Add support for rematerialization in pre-alloc-splitting.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59587  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-11-19 04:28:29 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						5a92d4e657 
					 
					
						
						
							
							Fix a bug introduced by my previous patch.  With this change, SPEC is now clean with prealloc splitting enabled.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59544  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-11-18 20:53:59 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						711fd3db2d 
					 
					
						
						
							
							Don't allow the restore point to be placed after terminators.  With this change,  
						
						... 
						
						
						
						MultiSource/Applications is clean with the prealloc splitter.  Some failures
remain in SPEC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59267  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-11-13 21:53:14 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						80fe8737eb 
					 
					
						
						
							
							Don't walk into predecessors in which the vreg is not live when doing shrinkwrapping.  
						
						... 
						
						
						
						This lets several failing tests get farther along, but doesn't completely fix any of them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59086  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-11-11 22:11:27 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						b214c6971b 
					 
					
						
						
							
							Use the new predicate to control when we do prealloc splitting.  Fix a small bug.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58738  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-11-05 00:32:13 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						f1f75b1bd1 
					 
					
						
						
							
							First pass at checking for the creation of a new join point when doing pre-alloc splitting.  This is not turned on yet.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58726  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-11-04 22:22:41 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						ae61ca0206 
					 
					
						
						
							
							Revert my last patch until I consult with Evan about it.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58591  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-11-03 02:33:28 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						6423c6c0e8 
					 
					
						
						
							
							Don't do pre-splitting if doing so would create a value join that did not  
						
						... 
						
						
						
						exist before.  Updating the live intervals in that care is tricky in the general
case.
Evan, if you see a tighter guard condition for this, let me know.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58560  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-11-02 08:08:18 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						36f3adfe7f 
					 
					
						
						
							
							Add a fixme.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58514  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-31 16:41:59 +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 
							
						 
					 
					
						
						
							
						
						1f08cc2d2b 
					 
					
						
						
							
							If def is in the same mbb as the barrier, spilt the value after the last use before the barrier.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58314  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-28 05:28:21 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						ae7fa5bef1 
					 
					
						
						
							
							Add command line option to limit the number splits to help debugging.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58312  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-28 01:48:24 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f62ce370a4 
					 
					
						
						
							
							Avoid putting a split past the end of the live range; always shrink wrap live interval in the barrier mbb.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58309  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-28 00:47:49 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						985921e846 
					 
					
						
						
							
							Silence a bogus compile time warning.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58297  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-27 23:29:28 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						b3990d5e94 
					 
					
						
						
							
							Remove val# defined by a remat'ed def that is now dead.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58294  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-27 23:21:01 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						23066288fd 
					 
					
						
						
							
							For now, don't split live intervals around x87 stack register barriers. FpGET_ST0_80 must be right after a call instruction (and ADJCALLSTACKUP) so we need to find a way to prevent reload of x87 registers between them.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58230  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-27 07:14:50 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						aaf510c932 
					 
					
						
						
							
							Do not shrink wrap live interval in a mbb if it's livein any of its successor blocks. The mbb can be revisited again after all of the successors are processed.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58184  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-26 07:49:03 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						79d5b5acae 
					 
					
						
						
							
							Handle cases where there aren't uses in the barrier mbb.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58174  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-25 23:49:39 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						78dfef771b 
					 
					
						
						
							
							If val# def is ~0U, meaning it's defined by a PHI, and it's previously split, spill before the barrier because it's impossible to determine if all the defs are spilled in the same spill slot.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58129  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-25 00:52:41 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						56ab0def90 
					 
					
						
						
							
							Fix a pasto.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58102  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-24 18:46:44 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						2efe3fd79a 
					 
					
						
						
							
							Fix a end() dereference; remove an abort() that wasn't meant to be left in.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58072  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-24 05:53:44 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						06587497dc 
					 
					
						
						
							
							Avoid splitting an interval multiple times; avoid splitting re-materializable val# (for now).  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58068  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-24 02:05:00 +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 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						09e8ca8a58 
					 
					
						
						
							
							Add skeleton for the pre-register allocation live interval splitting pass.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57847  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-20 21:44:59 +00:00