Chris Lattner 
							
						 
					 
					
						
						
							
						
						0afa8e348e 
					 
					
						
						
							
							Implement a target independent optimization to codegen arguments only into  
						
						... 
						
						
						
						the basic block that uses them if possible.  This is a big win on X86, as it
lets us fold the argument loads into instructions and reduce register pressure
(by not loading all of the arguments in the entry block).
For this (contrived to show the optimization) testcase:
int %argtest(int %A, int %B) {
        %X = sub int 12345, %A
        br label %L
L:
        %Y = add int %X, %B
        ret int %Y
}
we used to produce:
argtest:
        mov %ECX, DWORD PTR [%ESP + 4]
        mov %EAX, 12345
        sub %EAX, %ECX
        mov %EDX, DWORD PTR [%ESP + 8]
.LBBargtest_1:  # L
        add %EAX, %EDX
        ret
now we produce:
argtest:
        mov %EAX, 12345
        sub %EAX, DWORD PTR [%ESP + 4]
.LBBargtest_1:  # L
        add %EAX, DWORD PTR [%ESP + 8]
        ret
This also fixes the FIXME in the code.
BTW, this occurs in real code.  164.gzip shrinks from 8623 to 8608 lines of
.s file.  The stack frame in huft_build shrinks from 1644->1628 bytes,
inflate_codes shrinks from 116->108 bytes, and inflate_block from 2620->2612,
due to fewer spills.
Take that alkis. :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19639  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-17 17:55:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						068a81e9fc 
					 
					
						
						
							
							Refactor code into a new method.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19635  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-17 17:15:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						171453a284 
					 
					
						
						
							
							add method stub  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19612  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-16 07:28:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c8ea3c4710 
					 
					
						
						
							
							Add support for promoted registers being live across blocks.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19595  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-16 02:23:07 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						98e5c0e5e4 
					 
					
						
						
							
							Use the new TLI method to get this.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19582  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-16 01:11:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fb849800ea 
					 
					
						
						
							
							Add support for targets that require promotions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19579  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-16 00:37:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						859157daee 
					 
					
						
						
							
							Add new SIGN_EXTEND_INREG, ZERO_EXTEND_INREG, and FP_ROUND_INREG operators.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19568  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-15 06:17:04 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						69a52155d2 
					 
					
						
						
							
							Adjust to CopyFromReg changes, implement deletion of truncating/extending  
						
						... 
						
						
						
						stores/loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19562  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-14 22:38:01 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						18c2f13e0f 
					 
					
						
						
							
							Add new ImplicitDef node, rename CopyRegSDNode class to RegSDNode.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19535  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-13 20:50:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5a6c6d98d5 
					 
					
						
						
							
							Don't forget the existing root.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19531  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-13 19:53:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ddb870b065 
					 
					
						
						
							
							Codegen independent ops as being independent.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19528  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-13 17:59:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7944d9d995 
					 
					
						
						
							
							Add an option to view the selection dags as they are generated.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19498  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-12 03:41:21 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f1fdacae8c 
					 
					
						
						
							
							add an assertion, avoid creating copyfromreg/copytoreg pairs that are the  
						
						... 
						
						
						
						same for PHI nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19484  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-11 22:03:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7041ee35ad 
					 
					
						
						
							
							Turn memset/memcpy/memmove into the corresponding operations.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19463  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-11 05:56:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ee749d7488 
					 
					
						
						
							
							Handle static alloca arguments to PHI nodes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19409  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-09 01:16:24 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						39ae362279 
					 
					
						
						
							
							Use new interfaces to correctly lower varargs and return/frame address intrinsics.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19407  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-09 00:00:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						64e14b1679 
					 
					
						
						
							
							Add support for llvm.setjmp and longjmp.  Only 3 SingleSource/UnitTests fail now.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19404  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-08 22:48:57 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f26bc8ef48 
					 
					
						
						
							
							Silence VS warnings.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19384  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-08 19:52:31 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cf5734dddd 
					 
					
						
						
							
							Adjust to changes in LowerCAllTo interfaces  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19374  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-08 19:26:18 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ae0aacb833 
					 
					
						
						
							
							Add support for FP->INT conversions and back.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19369  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-08 08:08:56 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7cc4777a26 
					 
					
						
						
							
							Implement support for long GEP indices on 32-bit archs and support for  
						
						... 
						
						
						
						int GEP indices on 64-bit archs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19354  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-07 21:56:57 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f44fd88e9c 
					 
					
						
						
							
							Fix handling of dead PHI nodes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19349  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-07 21:34:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1c08c714bb 
					 
					
						
						
							
							Initial implementation of the SelectionDAGISel class.  This contains most  
						
						... 
						
						
						
						of the code for lowering from LLVM code to a SelectionDAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19331  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-01-07 07:47:53 +00:00