Daniel Dunbar 
							
						 
					 
					
						
						
							
						
						cfb8a1bea1 
					 
					
						
						
							
							Fix some minor MSVC compiler warnings.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76356  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-19 01:38:38 +00:00 
						 
				 
			
				
					
						
							
							
								Daniel Dunbar 
							
						 
					 
					
						
						
							
						
						deb052a3dd 
					 
					
						
						
							
							Match declaration to definition.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75440  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-12 23:50:34 +00:00 
						 
				 
			
				
					
						
							
							
								Lang Hames 
							
						 
					 
					
						
						
							
						
						10382fb71d 
					 
					
						
						
							
							More VNInfo tweaking, plus a little progress on intra-block splitting.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73750  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-06-19 02:17:53 +00:00 
						 
				 
			
				
					
						
							
							
								Lang Hames 
							
						 
					 
					
						
						
							
						
						857c4e01f8 
					 
					
						
						
							
							VNInfo cleanup.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73634  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-06-17 21:01:20 +00:00 
						 
				 
			
				
					
						
							
							
								Lang Hames 
							
						 
					 
					
						
						
							
						
						f41538d1b5 
					 
					
						
						
							
							Update to in-place spilling framework. Includes live interval scaling and trivial rewriter.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72729  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-06-02 16:53:25 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						cd35ed5153 
					 
					
						
						
							
							Forward decls.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72114  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-19 17:52:31 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						0bde89e455 
					 
					
						
						
							
							Remove 'class' specifier.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72113  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-19 17:51:26 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						7683806ea3 
					 
					
						
						
							
							Fix to compile on VS2008.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72112  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-19 17:50:18 +00:00 
						 
				 
			
				
					
						
							
							
								Lang Hames 
							
						 
					 
					
						
						
							
						
						e2b201bac3 
					 
					
						
						
							
							New Spiller interface and trivial implementation.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72030  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-18 19:03:16 +00:00 
						 
				 
			
				
					
						
							
							
								Lang Hames 
							
						 
					 
					
						
						
							
						
						87e3bcab73 
					 
					
						
						
							
							Renamed Spiller classes (plus uses and related files) to VirtRegRewriter.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71057  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-06 02:36:21 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						5b69ebac85 
					 
					
						
						
							
							It has finally happened. Spiller is now using live interval info.  
						
						... 
						
						
						
						This fixes a very subtle bug. vr defined by an implicit_def is allowed overlap with any register since it doesn't actually modify anything. However, if it's used as a two-address use, its live range can be extended and it can be spilled. The spiller must take care not to emit a reload for the vn number that's defined by the implicit_def. This is both a correctness and performance issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69743  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-04-21 22:46:52 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						276b77e66c 
					 
					
						
						
							
							Teach spiller to unfold instructions which modref spill slot when a scratch  
						
						... 
						
						
						
						register is available and when it's profitable.
e.g.
     xorq  %r12<kill>, %r13
     addq  %rax, -184(%rbp)
     addq  %r13, -184(%rbp)
==>
     xorq  %r12<kill>, %r13
     movq  -184(%rbp), %r12
     addq  %rax, %r12
     addq  %r13, %r12
     movq  %r12, -184(%rbp)
Two more instructions, but fewer memory accesses. It can also open up
opportunities for more optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69341  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-04-17 01:29:40 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						e67f5e4273 
					 
					
						
						
							
							Oy! When reverting r68073, I added in experimental code. Sorry...  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68099  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-31 08:41:31 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						8fe00540fc 
					 
					
						
						
							
							Revert r68073. It's causing a failure in the Apple-style builds.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68092  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-31 08:26:26 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						e47b0089d9 
					 
					
						
						
							
							Spiller may unfold load / mod / store instructions as an optimization when the would be loaded value is available in a register. It needs to check if it's legal to clobber the register. Also, the register can contain values of multiple spill slots, make sure to check all instead of just the one being unfolded.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67068  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-17 01:23:09 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						0ff4e2105b 
					 
					
						
						
							
							Reorganize some #include's.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66780  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-12 06:58:19 +00:00 
						 
				 
			
				
					
						
							
							
								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