Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								0c6bb5eab7 
								
							 
						 
						
							
							
								
								repair x86 performance, dejagnu problems from previous change  
							
							 
							
							... 
							
							
							
							llvm-svn: 35245 
							
						 
						
							2007-03-21 21:51:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f01f87bc63 
								
							 
						 
						
							
							
								
								fix a warning  
							
							 
							
							... 
							
							
							
							llvm-svn: 35152 
							
						 
						
							2007-03-19 00:39:32 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								b38c2ec89c 
								
							 
						 
						
							
							
								
								Support 'I' inline asm constraint.  
							
							 
							
							... 
							
							
							
							llvm-svn: 35129 
							
						 
						
							2007-03-17 00:13:28 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								144b8bbf17 
								
							 
						 
						
							
							
								
								And now support for MMX logical operations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 35125 
							
						 
						
							2007-03-16 09:44:46 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								e31034125c 
								
							 
						 
						
							
							
								
								Multiplication support for MMX.  
							
							 
							
							... 
							
							
							
							llvm-svn: 35118 
							
						 
						
							2007-03-15 21:24:36 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a1779b9739 
								
							 
						 
						
							
							
								
								Under X86-64 large code model, do not emit 32-bit pc relative calls.  
							
							 
							
							... 
							
							
							
							llvm-svn: 35108 
							
						 
						
							2007-03-14 22:11:11 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								3ab7ea7965 
								
							 
						 
						
							
							
								
								More flexible TargetLowering LSR hooks for testing whether an immediate is  
							
							 
							
							... 
							
							
							
							a legal target address immediate or scale.
llvm-svn: 35073 
							
						 
						
							2007-03-12 23:28:50 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								57f261b13a 
								
							 
						 
						
							
							
								
								Stupid bug: SSE2 supports v2i64 add / sub.  
							
							 
							
							... 
							
							
							
							llvm-svn: 35070 
							
						 
						
							2007-03-12 22:58:52 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								e9b81f5366 
								
							 
						 
						
							
							
								
								Adding more arithmetic operators to MMX. This is an almost exact copy of  
							
							 
							
							... 
							
							
							
							the addition. Please let me know if you have suggestions.
llvm-svn: 35055 
							
						 
						
							2007-03-10 09:57:05 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								6092ce25cf 
								
							 
						 
						
							
							
								
								Added "padd*" support for MMX. Added MMX move stuff to X86InstrInfo so that  
							
							 
							
							... 
							
							
							
							moves, loads, etc. are recognized.
llvm-svn: 35031 
							
						 
						
							2007-03-08 22:09:11 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								ed4b303c10 
								
							 
						 
						
							
							
								
								Refactoring of formal parameter flags. Enable properly use of  
							
							 
							
							... 
							
							
							
							zext/sext/aext stuff.
llvm-svn: 35008 
							
						 
						
							2007-03-07 16:25:09 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								97905b4027 
								
							 
						 
						
							
							
								
								Properly support v8i8 and v4i16 types. It now converts them to v2i32 for  
							
							 
							
							... 
							
							
							
							load and stores.
llvm-svn: 35002 
							
						 
						
							2007-03-07 05:43:18 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								bbd25984b7 
								
							 
						 
						
							
							
								
								Add LOAD/STORE support for MMX.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34978 
							
						 
						
							2007-03-06 18:53:42 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								e7ec3bc7bc 
								
							 
						 
						
							
							
								
								Use new SDIselParamAttr enumeration. This removes "magick" constants  
							
							 
							
							... 
							
							
							
							from formal attributes' flags processing.
llvm-svn: 34963 
							
						 
						
							2007-03-06 08:12:33 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								deaea25eb9 
								
							 
						 
						
							
							
								
								X86-64 VACOPY needs custom expansion. va_list is a struct { i32, i32, i8*, i8* }.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34857 
							
						 
						
							2007-03-02 23:16:35 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								57af2a4f3b 
								
							 
						 
						
							
							
								
								Simplify things  
							
							 
							
							... 
							
							
							
							llvm-svn: 34849 
							
						 
						
							2007-03-02 21:50:27 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9c7e5e365d 
								
							 
						 
						
							
							
								
								argument lowering should copy from the vreg shadows of live-in arguments  
							
							 
							
							... 
							
							
							
							passed in registers, not directly from the pregs themselves.
llvm-svn: 34838 
							
						 
						
							2007-03-02 05:12:29 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								af8be4458f 
								
							 
						 
						
							
							
								
								Ensure that fastcall'ed function is correctly mangled & stack is  
							
							 
							
							... 
							
							
							
							properly aligned
llvm-svn: 34788 
							
						 
						
							2007-03-01 16:29:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7373f3a351 
								
							 
						 
						
							
							
								
								remove dead option  
							
							 
							
							... 
							
							
							
							llvm-svn: 34754 
							
						 
						
							2007-02-28 18:39:53 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								152bfa103e 
								
							 
						 
						
							
							
								
								use high-level functions in CCState  
							
							 
							
							... 
							
							
							
							llvm-svn: 34739 
							
						 
						
							2007-02-28 07:09:55 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								227b6c5d19 
								
							 
						 
						
							
							
								
								make use of helper functions in CCState for analyzing formals and calls.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34737 
							
						 
						
							2007-02-28 07:00:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d439e86078 
								
							 
						 
						
							
							
								
								switch LowerFastCCCallTo over to using the new fastcall description.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34734 
							
						 
						
							2007-02-28 06:26:33 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								66e1d1dd7e 
								
							 
						 
						
							
							
								
								switch LowerFastCCArguments over to using the autogenerated Fastcall description.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34733 
							
						 
						
							2007-02-28 06:21:19 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3066beccb5 
								
							 
						 
						
							
							
								
								rearrange code  
							
							 
							
							... 
							
							
							
							llvm-svn: 34731 
							
						 
						
							2007-02-28 06:10:12 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3ed3be3b4a 
								
							 
						 
						
							
							
								
								remove fastcc (not fastcall) support  
							
							 
							
							... 
							
							
							
							llvm-svn: 34730 
							
						 
						
							2007-02-28 06:05:16 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b9db225049 
								
							 
						 
						
							
							
								
								switch LowerCCCArguments over to using autogenerated CC.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34729 
							
						 
						
							2007-02-28 05:46:49 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5958b176f3 
								
							 
						 
						
							
							
								
								simplify sret handling  
							
							 
							
							... 
							
							
							
							llvm-svn: 34728 
							
						 
						
							2007-02-28 05:39:26 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								be7995953a 
								
							 
						 
						
							
							
								
								switch LowerCCCCallTo over to using an autogenerated callingconv  
							
							 
							
							... 
							
							
							
							llvm-svn: 34727 
							
						 
						
							2007-02-28 05:31:48 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ba3d273122 
								
							 
						 
						
							
							
								
								switch return value passing and the x86-64 calling convention information  
							
							 
							
							... 
							
							
							
							over to being autogenerated from the X86CallingConv.td file.
llvm-svn: 34722 
							
						 
						
							2007-02-28 04:55:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c9eed39a5d 
								
							 
						 
						
							
							
								
								switch x86-64 return value lowering over to using same mechanism as argument  
							
							 
							
							... 
							
							
							
							lowering uses.
llvm-svn: 34657 
							
						 
						
							2007-02-27 05:28:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9f059194a7 
								
							 
						 
						
							
							
								
								Minor refactoring of CC Lowering interfaces  
							
							 
							
							... 
							
							
							
							llvm-svn: 34656 
							
						 
						
							2007-02-27 05:13:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								dc3adc83e7 
								
							 
						 
						
							
							
								
								move CC Lowering stuff to its own public interface  
							
							 
							
							... 
							
							
							
							llvm-svn: 34655 
							
						 
						
							2007-02-27 04:43:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2e5e8407ad 
								
							 
						 
						
							
							
								
								refactor x86-64 argument lowering yet again, this time eliminating templates,  
							
							 
							
							... 
							
							
							
							'clients', etc, and adding CCValAssign instead.
llvm-svn: 34654 
							
						 
						
							2007-02-27 04:18:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ff19957468 
								
							 
						 
						
							
							
								
								switch to smallvector  
							
							 
							
							... 
							
							
							
							llvm-svn: 34633 
							
						 
						
							2007-02-26 07:59:53 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								294780829a 
								
							 
						 
						
							
							
								
								initial hack at splitting the x86-64 calling convention info out from the  
							
							 
							
							... 
							
							
							
							mechanics that process it.  I'm still not happy with this, but it's a step
in the right direction.
llvm-svn: 34631 
							
						 
						
							2007-02-26 07:50:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d41bff0f97 
								
							 
						 
						
							
							
								
								the truncate must always be done, it's only the assert that is conditional.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34628 
							
						 
						
							2007-02-26 05:21:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1db979bae8 
								
							 
						 
						
							
							
								
								in X86-64 CCC, i8/i16 arguments are already properly zext/sext'd on input.  
							
							 
							
							... 
							
							
							
							Capture this so that downstream zext/sext's are optimized out.  This
compiles:
  int test(short X) { return (int)X; }
to:
_test:
        movl %edi, %eax
        ret
instead of:
_test:
        movswl %di, %eax
        ret
GCC produces this bizarre code:
_test:
        movw    %di, -12(%rsp)
        movswl  -12(%rsp),%eax
        ret
llvm-svn: 34623 
							
						 
						
							2007-02-26 03:18:56 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8924332e22 
								
							 
						 
						
							
							
								
								Fix an X86-64 abi bug.  We now compile:  
							
							 
							
							... 
							
							
							
							void foo(short);
void bar(unsigned short A) {
  foo(A);
}
into:
_bar:
        subq $8, %rsp
        movswl %di, %edi
        call _foo
        addq $8, %rsp
        ret
instead of:
_bar:
        subq $8, %rsp
        call _foo
        addq $8, %rsp
        ret
Testcase here: test/CodeGen/X86/x86-64-shortint.ll
llvm-svn: 34615 
							
						 
						
							2007-02-25 23:10:46 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3e0703357f 
								
							 
						 
						
							
							
								
								fix CodeGen/X86/2007-02-25-FastCCStack.ll, a regression from my patch last  
							
							 
							
							... 
							
							
							
							night:  fastcc returns should only go in XMM0 if we have SSE2 or above.
llvm-svn: 34613 
							
						 
						
							2007-02-25 22:23:46 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fcee9b5568 
								
							 
						 
						
							
							
								
								fastcc functions that return double values now return them in xmm0 on x86-32.  
							
							 
							
							... 
							
							
							
							This implements CodeGen/X86/fp-stack-ret.ll:test[23]
llvm-svn: 34592 
							
						 
						
							2007-02-25 09:31:16 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9d9cc84f5b 
								
							 
						 
						
							
							
								
								allow vectors to be passed to stdcall/fastcall functions  
							
							 
							
							... 
							
							
							
							llvm-svn: 34590 
							
						 
						
							2007-02-25 09:14:25 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2fc0d70392 
								
							 
						 
						
							
							
								
								move LowerRET into the 'Return Value Calling Convention Implementation'  
							
							 
							
							... 
							
							
							
							section of the file.
llvm-svn: 34589 
							
						 
						
							2007-02-25 09:12:39 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ba474f58a4 
								
							 
						 
						
							
							
								
								make all Lower*CallTo implementations use LowerCallResult to handle their  
							
							 
							
							... 
							
							
							
							result value stuff.  This eliminates a bunch of duplicated code and now
GetRetValueLocs is the sole place that decides where a value is returned.
llvm-svn: 34588 
							
						 
						
							2007-02-25 09:10:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7802f3e2ea 
								
							 
						 
						
							
							
								
								pass the calling convention into Lower*CallTo, instead of using ad-hoc flags.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34587 
							
						 
						
							2007-02-25 09:06:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0cd9960fe7 
								
							 
						 
						
							
							
								
								factor a bunch of code out of LowerCCCCallTo into a new LowerCallResult  
							
							 
							
							... 
							
							
							
							function.  This function now uses GetRetValueLocs to determine *where*
the result values are located and concerns itself with *how* to pull the
values out.
llvm-svn: 34586 
							
						 
						
							2007-02-25 08:59:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3c76309a5b 
								
							 
						 
						
							
							
								
								move some code around, pass in calling conv, even though it is unused  
							
							 
							
							... 
							
							
							
							llvm-svn: 34585 
							
						 
						
							2007-02-25 08:29:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								dfda38f7dc 
								
							 
						 
						
							
							
								
								simplify result value lowering by splitting the selection of *where* to return  
							
							 
							
							... 
							
							
							
							registers out from the logic of *how* to return them.
This changes X86-64 to mark EAX live out when returning a 32-bit value,
where before it marked RAX liveout.
llvm-svn: 34582 
							
						 
						
							2007-02-25 08:15:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d6b853ad1b 
								
							 
						 
						
							
							
								
								make void-return not a special case  
							
							 
							
							... 
							
							
							
							llvm-svn: 34579 
							
						 
						
							2007-02-25 07:18:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								35a08551a5 
								
							 
						 
						
							
							
								
								eliminate a bunch more temporary vectors from X86 lowering.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34578 
							
						 
						
							2007-02-25 07:10:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e56fef9b51 
								
							 
						 
						
							
							
								
								eliminate temporary vectors created during X86 lowering.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34577 
							
						 
						
							2007-02-25 06:40:16 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								84141d4e99 
								
							 
						 
						
							
							
								
								remove std::vector's in RET lowering.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34576 
							
						 
						
							2007-02-25 06:21:57 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								e0008e23cf 
								
							 
						 
						
							
							
								
								Simplify lowering and selection of exception ops.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34488 
							
						 
						
							2007-02-22 14:56:36 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								3796abea0f 
								
							 
						 
						
							
							
								
								Support to provide exception and selector registers.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34482 
							
						 
						
							2007-02-21 22:54:50 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								84a041eb98 
								
							 
						 
						
							
							
								
								ELF / PIC requires GOT be in the EBX register during calls via PLT GOT pointer.  
							
							 
							
							... 
							
							
							
							Add implicit uses of EBX to calls to ensure liveintervalanalysis does not treat
the GOT in EBX move as dead upon definition.
This should fix PR1207.
llvm-svn: 34470 
							
						 
						
							2007-02-21 21:18:14 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								1b4e6015b4 
								
							 
						 
						
							
							
								
								Fixed uninitialized stuff inside LegalizeDAG. Fortunately, the only  
							
							 
							
							... 
							
							
							
							affected part is codegen of "memove" inside x86 backend. This fixes
PR1144
llvm-svn: 33752 
							
						 
						
							2007-02-01 08:39:52 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								eda5997cc8 
								
							 
						 
						
							
							
								
								Finish off bug 680, allowing targets to custom lower frame and return  
							
							 
							
							... 
							
							
							
							address nodes.
llvm-svn: 33636 
							
						 
						
							2007-01-29 22:58:52 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								0c49722b36 
								
							 
						 
						
							
							
								
								Fix compile error "jump to case label crosses initialization".  
							
							 
							
							... 
							
							
							
							What compiler are people using that accepts this code?
llvm-svn: 33603 
							
						 
						
							2007-01-28 15:39:16 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								037c867b54 
								
							 
						 
						
							
							
								
								Propagate changes from my local tree. This patch includes:  
							
							 
							
							... 
							
							
							
							1. New parameter attribute called 'inreg'. It has meaning "place this
parameter in registers, if possible". This is some generalization of
gcc's regparm(n) attribute. It's currently used only in X86-32 backend.
2. Completely rewritten CC handling/lowering code inside X86 backend.
Merged stdcall + c CCs and fastcall + fast CC.
3. Dropped CSRET CC. We cannot add struct return variant for each
target-specific CC (e.g. stdcall + csretcc and so on).
4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in
on first attribute has meaning 'This is hidden pointer to structure
return. Handle it gently'.
5. Fixed small bug in llvm-extract + add new feature to
FunctionExtraction pass, which relinks all internal-linkaged callees
from deleted function to external linkage. This will allow further
linking everything together.
NOTEs: 1. Documentation will be updated soon.
       2. llvm-upgrade should be improved to translate csret => sret.
          Before this, there will be some unexpected test fails.
llvm-svn: 33597 
							
						 
						
							2007-01-28 13:31:35 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								f9e5445ed4 
								
							 
						 
						
							
							
								
								Make LABEL a builtin opcode.  
							
							 
							
							... 
							
							
							
							llvm-svn: 33537 
							
						 
						
							2007-01-26 14:34:52 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								1281dc32ef 
								
							 
						 
						
							
							
								
								Linux GOT indirect reference is only necessary in PIC mode.  
							
							 
							
							... 
							
							
							
							llvm-svn: 33441 
							
						 
						
							2007-01-22 21:34:25 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								a0554d90e8 
								
							 
						 
						
							
							
								
								* PIC codegen for X86/Linux has been implemented  
							
							 
							
							... 
							
							
							
							* PIC-aware internal structures in X86 Codegen have been refactored
* Visibility (default/weak) has been added
* Docs fixes (external weak linkage, visibility, formatting)
llvm-svn: 33136 
							
						 
						
							2007-01-12 19:20:47 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								82241c86e9 
								
							 
						 
						
							
							
								
								- FCOPYSIGN custom lowering bug. Clear the sign bit of operand 0 first before  
							
							 
							
							... 
							
							
							
							or'ing in the sign bit of operand 1.
- Tweaking: rather than left shift the sign bit, fp_extend operand 1 first
  before taking its sign bit if its type is smaller than that of operand 0.
llvm-svn: 32932 
							
						 
						
							2007-01-05 21:37:56 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								8c7094a770 
								
							 
						 
						
							
							
								
								Typo  
							
							 
							
							... 
							
							
							
							llvm-svn: 32902 
							
						 
						
							2007-01-05 08:32:24 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								4363e884c0 
								
							 
						 
						
							
							
								
								With SSE2, expand FCOPYSIGN to a series of SSE bitwise operations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 32900 
							
						 
						
							2007-01-05 07:55:56 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								e87b5e9825 
								
							 
						 
						
							
							
								
								Fix a comment that referred to the now defunct ubyte type.  
							
							 
							
							... 
							
							
							
							llvm-svn: 32840 
							
						 
						
							2007-01-03 17:24:59 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								4efbbc963f 
								
							 
						 
						
							
							
								
								Really big cleanup.  
							
							 
							
							... 
							
							
							
							- New target type "mingw" was introduced
- Same things for both mingw & cygwin are marked as "cygming" (as in
gcc)
- .lcomm is supported here, so allow LLVM to use it
- Correctly use underscored versions of setjmp & _longjmp for both mingw
& cygwin
llvm-svn: 32833 
							
						 
						
							2007-01-03 11:43:14 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								e63b6518fa 
								
							 
						 
						
							
							
								
								For PR950:  
							
							 
							
							... 
							
							
							
							Three changes:
1. Convert signed integer types to signless versions.
2. Implement the @sext and @zext parameter attributes. Previously the
   type of an function parameter was used to determine whether it should
   be sign extended or zero extended before the call. This information is
   now communicated via the function type's parameter attributes.
3. The interface to LowerCallTo had to be changed in order to accommodate
   the parameter attribute information. Although it would have been
   convenient to pass in the FunctionType itself, there isn't always one
   present in the caller. Consequently, a signedness indication for the
   result type and for each parameter was provided for in the interface
   to this method. All implementations were changed to make the adjustment
   necessary.
llvm-svn: 32788 
							
						 
						
							2006-12-31 05:55:36 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								430e68a1b9 
								
							 
						 
						
							
							
								
								Refactored JIT codegen for mingw32. Now we're using standart relocation  
							
							 
							
							... 
							
							
							
							type for distinguish JIT & non-JIT instead of "dirty" hacks :)
llvm-svn: 32745 
							
						 
						
							2006-12-22 22:29:05 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								735fcf74d8 
								
							 
						 
						
							
							
								
								f64 <-> i64 bit_convert using movq in 64-bit mode.  
							
							 
							
							... 
							
							
							
							llvm-svn: 32587 
							
						 
						
							2006-12-14 21:55:39 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								3b7c257cae 
								
							 
						 
						
							
							
								
								Cleaned setjmp/longjmp lowering interfaces. Now we're producing right  
							
							 
							
							... 
							
							
							
							code (both asm & cbe) for Mingw32 target.
Removed autoconf checks for underscored versions of setjmp/longjmp.
llvm-svn: 32415 
							
						 
						
							2006-12-10 23:12:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c20b7e878a 
								
							 
						 
						
							
							
								
								If we have ScalarSSE, we can select bitconvert into single instructions.  
							
							 
							
							... 
							
							
							
							This compiles bitcast.ll:test3/test4 into:
_test3:
        movd %xmm0, %eax
        ret
_test4:
        movd %edi, %xmm0
        ret
llvm-svn: 32230 
							
						 
						
							2006-12-05 18:45:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								55c17f9177 
								
							 
						 
						
							
							
								
								Fix PR1033 and CodeGen/X86/bitcast.ll, by expanding bitcast to a load/store pair.  
							
							 
							
							... 
							
							
							
							This could be better, readme entry pending.
llvm-svn: 32228 
							
						 
						
							2006-12-05 18:22:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a16201c672 
								
							 
						 
						
							
							
								
								Fix typo noticed by Lauro Ramos Venancio, thanks!  
							
							 
							
							... 
							
							
							
							llvm-svn: 32223 
							
						 
						
							2006-12-05 17:29:40 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								62cdc3f011 
								
							 
						 
						
							
							
								
								- Fix X86-64 JIT by temporarily disabling code that treats GV address as 32-bit  
							
							 
							
							... 
							
							
							
							immediate in small code model. The JIT cannot ensure GV's are placed in the
lower 4G.
- Some preliminary support for large code model.
llvm-svn: 32215 
							
						 
						
							2006-12-05 04:01:03 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d139ddd2e6 
								
							 
						 
						
							
							
								
								Add support for 64-bit 'r' constraint.  Patch by by Rafael ~Avila de EspÃndol!  
							
							 
							
							... 
							
							
							
							This fixes PR1029 and Regression/CodeGen/X86/x86-64-asm.ll
llvm-svn: 32206 
							
						 
						
							2006-12-04 22:38:21 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								ae1cd75af7 
								
							 
						 
						
							
							
								
								- Use a different wrapper node for RIP-relative GV, etc.  
							
							 
							
							... 
							
							
							
							- Proper support for both small static and PIC modes under X86-64
- Some (non-optimal) support for medium modes.
llvm-svn: 32046 
							
						 
						
							2006-11-30 21:55:46 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								7a9238c84d 
								
							 
						 
						
							
							
								
								In PIC mode, GV not requiring an extra load can be used as address immediate.  
							
							 
							
							... 
							
							
							
							llvm-svn: 32028 
							
						 
						
							2006-11-29 23:48:14 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								0b1692216d 
								
							 
						 
						
							
							
								
								Fix for PR1018 - Better support for X86-64 Linux in small code model.  
							
							 
							
							... 
							
							
							
							llvm-svn: 32026 
							
						 
						
							2006-11-29 23:19:46 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								28a9e9b230 
								
							 
						 
						
							
							
								
								Custom lower READCYCLECOUNTER for x86-64.  
							
							 
							
							... 
							
							
							
							llvm-svn: 32017 
							
						 
						
							2006-11-29 08:28:13 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								20350c4025 
								
							 
						 
						
							
							
								
								Change MachineInstr ctor's to take a TargetInstrDescriptor reference instead  
							
							 
							
							... 
							
							
							
							of opcode and number of operands.
llvm-svn: 31947 
							
						 
						
							2006-11-27 23:37:22 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								5b96cdebb0 
								
							 
						 
						
							
							
								
								Refactored *GVRequiresExtraLoad() to Subtarget method.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31887 
							
						 
						
							2006-11-21 00:01:06 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								37d080b11d 
								
							 
						 
						
							
							
								
								We should perform extra load for dllimported calls  
							
							 
							
							... 
							
							
							
							llvm-svn: 31874 
							
						 
						
							2006-11-20 10:46:14 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								dbd3d294e6 
								
							 
						 
						
							
							
								
								Matches MachineInstr changes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31712 
							
						 
						
							2006-11-13 23:36:35 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								db04c958a5 
								
							 
						 
						
							
							
								
								Add implicit use / def operands to created MI's.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31676 
							
						 
						
							2006-11-11 10:21:44 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								49683ba236 
								
							 
						 
						
							
							
								
								Don't dag combine floating point select to max and min intrinsics. Those  
							
							 
							
							... 
							
							
							
							take v4f32 / v2f64 operands and may end up causing larger spills / restores.
Added X86 specific nodes X86ISD::FMAX, X86ISD::FMIN instead.
This fixes PR996.
llvm-svn: 31645 
							
						 
						
							2006-11-10 21:43:37 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								b9c91c265c 
								
							 
						 
						
							
							
								
								Fixing PR990:  http://llvm.org/PR990 .  
							
							 
							
							... 
							
							
							
							This should unbreak csretcc on Linux & mingw targets. Several tests from
llvm-test should be also restored (fftbench, bigfib).
llvm-svn: 31613 
							
						 
						
							2006-11-10 00:48:11 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								922e191116 
								
							 
						 
						
							
							
								
								Fixed a bug which causes x86 be to incorrectly match  
							
							 
							
							... 
							
							
							
							shuffle v, undef, <2, ?, 3, ?>
to movhlps
It should match to unpckhps instead.
Added proper matching code for
shuffle v, undef, <2, 3, 2, 3>
llvm-svn: 31519 
							
						 
						
							2006-11-07 22:14:24 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								de46e48420 
								
							 
						 
						
							
							
								
								For PR786:  
							
							 
							
							... 
							
							
							
							Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
llvm-svn: 31380 
							
						 
						
							2006-11-02 20:25:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								44daa50bed 
								
							 
						 
						
							
							
								
								allow the address of a global to be used with the "i" constraint when in  
							
							 
							
							... 
							
							
							
							-static mode.  This implements PR882.
llvm-svn: 31326 
							
						 
						
							2006-10-31 20:13:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f6a6966cd2 
								
							 
						 
						
							
							
								
								handle "st" as "st(0)"  
							
							 
							
							... 
							
							
							
							llvm-svn: 31320 
							
						 
						
							2006-10-31 19:42:44 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								aa4c0f9374 
								
							 
						 
						
							
							
								
								1. Clean up code due to changes in SwitchTo*Section(2)  
							
							 
							
							... 
							
							
							
							2. Added partial debug support for mingw\cygwin targets (the same as
   Linux\ELF). Please note, that currently mingw\cygwin uses 'stabs' format
   for storing debug info by default, thus many (runtime) libraries has
   this information included. These formats shouldn't be mixed in one binary
   ('stabs' & 'DWARF'), otherwise binutils tools will be confused.
llvm-svn: 31311 
							
						 
						
							2006-10-31 08:31:24 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								b51b5c0b1f 
								
							 
						 
						
							
							
								
								Add debug support for X86/ELF targets (Linux). This allows llvm-gcc4  
							
							 
							
							... 
							
							
							
							generated object modules to be debugged with gdb. Hopefully this helps
pre-release debugging.
llvm-svn: 31299 
							
						 
						
							2006-10-30 22:32:30 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								0d41d19427 
								
							 
						 
						
							
							
								
								All targets expand BR_JT for now.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31294 
							
						 
						
							2006-10-30 08:02:39 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e056dd5928 
								
							 
						 
						
							
							
								
								Fixed a significant bug where unpcklpd is incorrectly used to extract element 1 from a v2f64 value.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31228 
							
						 
						
							2006-10-27 21:08:32 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								bf3df77758 
								
							 
						 
						
							
							
								
								Fix for PR968: expand vector sdiv, udiv, srem, urem.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31220 
							
						 
						
							2006-10-27 18:49:08 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								c415c5be49 
								
							 
						 
						
							
							
								
								During vector shuffle lowering, we sometimes commute a vector shuffle to try  
							
							 
							
							... 
							
							
							
							to match MOVL (movss, movsd, etc.). Don't forget to commute it back and try
unpck* and shufp* if that doesn't pan out.
llvm-svn: 31186 
							
						 
						
							2006-10-25 21:49:50 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								798b306311 
								
							 
						 
						
							
							
								
								Remove -disable-x86-shuffle-opti  
							
							 
							
							... 
							
							
							
							llvm-svn: 31183 
							
						 
						
							2006-10-25 20:48:19 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c0fb567e23 
								
							 
						 
						
							
							
								
								Implement branch analysis/xform hooks required by the branch folding pass.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31065 
							
						 
						
							2006-10-20 17:42:20 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								949bcc94ea 
								
							 
						 
						
							
							
								
								Avoid getting into an infinite loop when -disable-x86-shuffle-opti is specified.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30974 
							
						 
						
							2006-10-16 06:36:00 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								ab51cf2e78 
								
							 
						 
						
							
							
								
								Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30945 
							
						 
						
							2006-10-13 21:14:26 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								694810c227 
								
							 
						 
						
							
							
								
								Some X86ISD::CMP were created with wrong ValueType's.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30913 
							
						 
						
							2006-10-12 19:12:56 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e646abb7b6 
								
							 
						 
						
							
							
								
								Don't convert to MOVLP if using shufps etc. may allow load folding.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30847 
							
						 
						
							2006-10-09 21:39:25 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e71fe34d75 
								
							 
						 
						
							
							
								
								Reflects ISD::LOAD / ISD::LOADX / LoadSDNode changes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30844 
							
						 
						
							2006-10-09 20:57:25 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								df9ac47e5e 
								
							 
						 
						
							
							
								
								Make use of getStore().  
							
							 
							
							... 
							
							
							
							llvm-svn: 30759 
							
						 
						
							2006-10-05 23:01:46 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f2ef243580 
								
							 
						 
						
							
							
								
								Lower some min/max idioms to minss/maxss when unsafe fp math is enabled.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30748 
							
						 
						
							2006-10-05 04:11:26 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								8c5766ef3f 
								
							 
						 
						
							
							
								
								Added option -disable-x86-shuffle-opti to disable X86 specific vector shuffle optimizations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30723 
							
						 
						
							2006-10-04 18:33:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9259b1efb6 
								
							 
						 
						
							
							
								
								Pattern match min/max nodes when we have sse.  This implements  
							
							 
							
							... 
							
							
							
							CodeGen/X86/scalar_sse_minmax.ll
llvm-svn: 30719 
							
						 
						
							2006-10-04 06:57:07 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5d9fd977d3 
								
							 
						 
						
							
							
								
								Combine ISD::EXTLOAD, ISD::SEXTLOAD, ISD::ZEXTLOAD into ISD::LOADX. Add an  
							
							 
							
							... 
							
							
							
							extra operand to LOADX to specify the exact value extension type.
llvm-svn: 30714 
							
						 
						
							2006-10-04 00:56:09 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f598d73142 
								
							 
						 
						
							
							
								
								Fix PR933 and CodeGen/X86/2006-10-02-BoolRetCrash.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 30703 
							
						 
						
							2006-10-03 17:18:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fc36039f86 
								
							 
						 
						
							
							
								
								silence warnings in release build  
							
							 
							
							... 
							
							
							
							llvm-svn: 30631 
							
						 
						
							2006-09-27 18:29:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								104aa5dbc1 
								
							 
						 
						
							
							
								
								Various random and minor code cleanups.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30608 
							
						 
						
							2006-09-26 03:57:53 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								c68bbef874 
								
							 
						 
						
							
							
								
								Fix compile error.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30553 
							
						 
						
							2006-09-21 02:08:31 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								3c5b3df6a0 
								
							 
						 
						
							
							
								
								Adding codegeneration for StdCall & FastCall calling conventions  
							
							 
							
							... 
							
							
							
							llvm-svn: 30549 
							
						 
						
							2006-09-20 22:03:51 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								6f7072c66a 
								
							 
						 
						
							
							
								
								Added some eye-candy for Subtarget type checking  
							
							 
							
							... 
							
							
							
							Added X86 StdCall & FastCall calling conventions. Codegen will follow.
llvm-svn: 30446 
							
						 
						
							2006-09-17 20:25:45 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								0ab01ff6e2 
								
							 
						 
						
							
							
								
								Small fixes for supporting dll* linkage types  
							
							 
							
							... 
							
							
							
							llvm-svn: 30441 
							
						 
						
							2006-09-17 13:06:18 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								d61d39ec53 
								
							 
						 
						
							
							
								
								Adding dllimport, dllexport and external weak linkage types.  
							
							 
							
							... 
							
							
							
							DLL* linkages got full (I hope) codegeneration support in C & both x86
assembler backends.
External weak linkage added for future use, we don't provide any
codegeneration, etc. support for it.
llvm-svn: 30374 
							
						 
						
							2006-09-14 18:23:27 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								971e33930d 
								
							 
						 
						
							
							
								
								Turn X < 0 -> TEST X,X js  
							
							 
							
							... 
							
							
							
							llvm-svn: 30294 
							
						 
						
							2006-09-13 17:04:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0c9ae46c5f 
								
							 
						 
						
							
							
								
								The sense of this branch was inverted :(  
							
							 
							
							... 
							
							
							
							llvm-svn: 30293 
							
						 
						
							2006-09-13 16:56:12 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7a627676be 
								
							 
						 
						
							
							
								
								Compile X > -1   -> text X,X; js dest  
							
							 
							
							... 
							
							
							
							This implements CodeGen/X86/jump_sign.ll.
llvm-svn: 30283 
							
						 
						
							2006-09-13 03:22:10 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								9a083a4121 
								
							 
						 
						
							
							
								
								Reflects MachineConstantPoolEntry changes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30279 
							
						 
						
							2006-09-12 21:04:05 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								4259a0f654 
								
							 
						 
						
							
							
								
								X86ISD::CMP now produces a chain as well as a flag. Make that the chain  
							
							 
							
							... 
							
							
							
							operand of a conditional branch to allow load folding into CMP / TEST
instructions.
llvm-svn: 30241 
							
						 
						
							2006-09-11 02:19:56 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								11b0a5dbd4 
								
							 
						 
						
							
							
								
								Committing X86-64 support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 30177 
							
						 
						
							2006-09-08 06:48:29 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								89c5d04b9b 
								
							 
						 
						
							
							
								
								- Identify a vector_shuffle that can be turned into an undef, e.g.  
							
							 
							
							... 
							
							
							
							shuffle V1, <undef>, <undef, undef, 4, 5>
- Fix some suspicious logic into LowerVectorShuffle that cause less than
  optimal code by failing to identify MOVL (move to lowest element of a
  vector).
llvm-svn: 30171 
							
						 
						
							2006-09-08 01:50:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								dc4ff5311f 
								
							 
						 
						
							
							
								
								Eliminate X86ISD::TEST, using X86ISD::CMP instead.  Match X86ISD::CMP patterns  
							
							 
							
							... 
							
							
							
							using test, which provides nice simplifications like:
-       movl %edi, %ecx
-       andl $2, %ecx
-       cmpl $0, %ecx
+       testl $2, %edi
        je LBB1_11      #cond_next90
There are a couple of dagiselemitter deficiencies that this exposes, they will
be handled later.
llvm-svn: 30156 
							
						 
						
							2006-09-07 20:33:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								162f2d5d4c 
								
							 
						 
						
							
							
								
								Revert this patch, the front-end has been fixed to make it unneccesary.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29752 
							
						 
						
							2006-08-17 18:43:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								dfb3f0591d 
								
							 
						 
						
							
							
								
								'g' is handled by the front-end.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29751 
							
						 
						
							2006-08-17 18:12:28 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								4a063c5ffb 
								
							 
						 
						
							
							
								
								Fix handling of 'g'.  Closes 883  
							
							 
							
							... 
							
							
							
							llvm-svn: 29750 
							
						 
						
							2006-08-17 17:50:12 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								1c3210d08d 
								
							 
						 
						
							
							
								
								Add the 'c' constraint as needed by the linux kernel  
							
							 
							
							... 
							
							
							
							llvm-svn: 29747 
							
						 
						
							2006-08-17 16:07:50 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								fc60fb974c 
								
							 
						 
						
							
							
								
								Add support for S and D constraints, as needed to compile the linux kernel.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29746 
							
						 
						
							2006-08-17 15:35:43 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ed728e8dc9 
								
							 
						 
						
							
							
								
								Eliminate use of getNode that takes a vector.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29614 
							
						 
						
							2006-08-11 17:38:39 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								bd1c5a8fb8 
								
							 
						 
						
							
							
								
								Match tablegen changes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29604 
							
						 
						
							2006-08-11 09:08:15 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5c68bba085 
								
							 
						 
						
							
							
								
								Convert more calls of getNode() that takes a vector to pass in the start of an array.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29601 
							
						 
						
							2006-08-11 07:35:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c24a1d3093 
								
							 
						 
						
							
							
								
								Start eliminating temporary vectors used to create DAG nodes.  Instead, pass  
							
							 
							
							... 
							
							
							
							in the start of an array and a count of operands where applicable.  In many
cases, the number of operands is known, so this static array can be allocated
on the stack, avoiding the heap.  In many other cases, a SmallVector can be
used, which has the same benefit in the common cases.
I updated a lot of code calling getNode that takes a vector, but ran out of
time.  The rest of the code should be updated, and these methods should be
removed.
We should also do the same thing to eliminate the methods that take a
vector of MVT::ValueTypes.
It would be extra nice to convert the dagiselemitter to avoid creating vectors
for operands when calling getTargetNode.
llvm-svn: 29566 
							
						 
						
							2006-08-08 02:23:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								524129dd64 
								
							 
						 
						
							
							
								
								Fix PR850 and CodeGen/X86/2006-07-31-SingleRegClass.ll.  
							
							 
							
							... 
							
							
							
							The CFE refers to all single-register constraints (like "A") by their 16-bit
name, even though the 8 or 32-bit version of the register may be needed.
The X86 backend should realize what is going on and redecode the name back
to its proper form.
llvm-svn: 29420 
							
						 
						
							2006-07-31 23:26:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9e56e5c003 
								
							 
						 
						
							
							
								
								Rename RelocModel::PIC to PIC_, to avoid conflicts with -DPIC.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29307 
							
						 
						
							2006-07-26 21:12:04 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								74065bedf2 
								
							 
						 
						
							
							
								
								This opt is now handled in DAG combine.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29243 
							
						 
						
							2006-07-21 08:26:46 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								4cf0238720 
								
							 
						 
						
							
							
								
								A splat of a vector constant of all zero or all one is the vector constant.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29234 
							
						 
						
							2006-07-20 23:09:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c8db10725b 
								
							 
						 
						
							
							
								
								Add information preventing several register class constraints from working.  
							
							 
							
							... 
							
							
							
							This implements PR828 and CodeGen/X86/2006-07-12-InlineAsmQConstraint.ll
llvm-svn: 29118 
							
						 
						
							2006-07-12 16:59:49 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								298ef37e02 
								
							 
						 
						
							
							
								
								Implement the inline asm 'A' constraint.  This implements PR825 and  
							
							 
							
							... 
							
							
							
							CodeGen/X86/2006-07-10-InlineAsmAConstraint.ll
llvm-svn: 29101 
							
						 
						
							2006-07-11 02:54:03 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								79cf9a5342 
								
							 
						 
						
							
							
								
								Fixed stack objects do not specify alignments, but their offsets are known.  
							
							 
							
							... 
							
							
							
							Use that information when doing the transformation to merge multiple loads
into a 128-bit load.
llvm-svn: 29090 
							
						 
						
							2006-07-10 21:37:44 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9aabc1e16f 
								
							 
						 
						
							
							
								
								Mark internal function static  
							
							 
							
							... 
							
							
							
							llvm-svn: 29085 
							
						 
						
							2006-07-10 19:53:12 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5987cfb7b1 
								
							 
						 
						
							
							
								
								X86 target specific DAG combine: turn build_vector (load x), (load x+4),  
							
							 
							
							... 
							
							
							
							(load x+8), (load x+12), <0, 1, 2, 3> to a single 128-bit load (aligned and
unaligned).
e.g.
__m128 test(float a, float b, float c, float d) {
  return _mm_set_ps(d, c, b, a);
}
_test:
        movups 4(%esp), %xmm0
        ret
llvm-svn: 29042 
							
						 
						
							2006-07-07 08:33:52 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								0261242aa6 
								
							 
						 
						
							
							
								
								Reorg. No functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28999 
							
						 
						
							2006-07-05 22:17:51 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								38c5aee959 
								
							 
						 
						
							
							
								
								Simplify X86CompilationCallback: always align to 16-byte boundary; don't save EAX/EDX if unnecessary.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28910 
							
						 
						
							2006-06-24 08:36:10 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								de7156f12c 
								
							 
						 
						
							
							
								
								Type of vector extract / insert index operand should be iPTR.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28796 
							
						 
						
							2006-06-15 08:14:54 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								ca25486603 
								
							 
						 
						
							
							
								
								Add argument registers to the end of call operand list (partial fix).  
							
							 
							
							... 
							
							
							
							llvm-svn: 28783 
							
						 
						
							2006-06-14 18:17:40 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								0e14a56d35 
								
							 
						 
						
							
							
								
								Minor compilation speed improvement.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28736 
							
						 
						
							2006-06-09 06:24:42 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								dc614c193e 
								
							 
						 
						
							
							
								
								Added X86FunctionInfo subclass of MachineFunction to record whether the  
							
							 
							
							... 
							
							
							
							function that is being lowered is forced to use FP. Currently this is only
true for main() / Cygwin.
llvm-svn: 28703 
							
						 
						
							2006-06-06 23:30:24 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								2b2c1be49c 
								
							 
						 
						
							
							
								
								Typos  
							
							 
							
							... 
							
							
							
							llvm-svn: 28617 
							
						 
						
							2006-06-01 05:53:27 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								2489ccdd90 
								
							 
						 
						
							
							
								
								Remove a warning  
							
							 
							
							... 
							
							
							
							llvm-svn: 28607 
							
						 
						
							2006-06-01 00:30:39 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								550cb663e8 
								
							 
						 
						
							
							
								
								Remove dead code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28581 
							
						 
						
							2006-05-31 00:50:42 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a3add0fea8 
								
							 
						 
						
							
							
								
								Change RET node to include signness information of the return values. i.e.  
							
							 
							
							... 
							
							
							
							RET chain, value1, sign1, value2, sign2, ...
llvm-svn: 28510 
							
						 
						
							2006-05-26 23:10:12 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b92f418408 
								
							 
						 
						
							
							
								
								Vector argument must be passed in memory location aligned on 16-byte boundary.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28505 
							
						 
						
							2006-05-26 20:37:47 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								bfb5ea6875 
								
							 
						 
						
							
							
								
								Mac OS X ABI document lied. The first four XMM registers are used to pass  
							
							 
							
							... 
							
							
							
							vector arguments, not three.
llvm-svn: 28504 
							
						 
						
							2006-05-26 19:22:06 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a01e799927 
								
							 
						 
						
							
							
								
								Minor update to make the code more clear  
							
							 
							
							... 
							
							
							
							llvm-svn: 28499 
							
						 
						
							2006-05-26 18:39:59 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								cbfb3d07e0 
								
							 
						 
						
							
							
								
								Update more comments.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28498 
							
						 
						
							2006-05-26 18:37:16 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								763f9b00f0 
								
							 
						 
						
							
							
								
								Fix some comments.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28497 
							
						 
						
							2006-05-26 18:25:43 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								83dc51d7ff 
								
							 
						 
						
							
							
								
								No need to handle illegal types.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28496 
							
						 
						
							2006-05-26 18:22:49 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								8aca43e8da 
								
							 
						 
						
							
							
								
								Consistency  
							
							 
							
							... 
							
							
							
							llvm-svn: 28488 
							
						 
						
							2006-05-25 23:31:23 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								0421aca87a 
								
							 
						 
						
							
							
								
								Some clean up.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28483 
							
						 
						
							2006-05-25 22:38:31 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								29f805ec65 
								
							 
						 
						
							
							
								
								Remove some dead code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28481 
							
						 
						
							2006-05-25 22:25:52 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5ee96893ae 
								
							 
						 
						
							
							
								
								Build breakage.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28475 
							
						 
						
							2006-05-25 18:56:34 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								2a33094284 
								
							 
						 
						
							
							
								
								Switch X86 over to a call-selection model where the lowering code creates  
							
							 
							
							... 
							
							
							
							the copyto/fromregs instead of making the X86ISD::CALL selection code create
them.
llvm-svn: 28463 
							
						 
						
							2006-05-25 00:59:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a58f559848 
								
							 
						 
						
							
							
								
								Fix file header comment  
							
							 
							
							... 
							
							
							
							llvm-svn: 28441 
							
						 
						
							2006-05-23 23:20:42 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								7068a93cae 
								
							 
						 
						
							
							
								
								Better way to check for vararg.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28440 
							
						 
						
							2006-05-23 21:08:24 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								17e734f0a6 
								
							 
						 
						
							
							
								
								Remove PreprocessCCCArguments and PreprocessFastCCArguments now that  
							
							 
							
							... 
							
							
							
							FORMAL_ARGUMENTS nodes include a token operand.
llvm-svn: 28439 
							
						 
						
							2006-05-23 21:06:34 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8be5be817c 
								
							 
						 
						
							
							
								
								Implement an annoying part of the Darwin/X86 abi: the callee of a struct  
							
							 
							
							... 
							
							
							
							return argument pops the hidden struct pointer if present, not the caller.
For example, in this testcase:
struct X { int D, E, F, G; };
struct X bar() {
  struct X a;
  a.D = 0;
  a.E = 1;
  a.F = 2;
  a.G = 3;
  return a;
}
void foo(struct X *P) {
  *P = bar();
}
We used to emit:
_foo:
        subl $28, %esp
        movl 32(%esp), %eax
        movl %eax, (%esp)
        call _bar
        addl $28, %esp
        ret
_bar:
        movl 4(%esp), %eax
        movl $0, (%eax)
        movl $1, 4(%eax)
        movl $2, 8(%eax)
        movl $3, 12(%eax)
        ret
This is correct on Linux/X86 but not Darwin/X86.  With this patch, we now
emit:
_foo:
        subl $28, %esp
        movl 32(%esp), %eax
        movl %eax, (%esp)
        call _bar
***     addl $24, %esp
        ret
_bar:
        movl 4(%esp), %eax
        movl $0, (%eax)
        movl $1, 4(%eax)
        movl $2, 8(%eax)
        movl $3, 12(%eax)
***     ret $4
For the record, GCC emits (which is functionally equivalent to our new code):
_bar:
        movl    4(%esp), %eax
        movl    $3, 12(%eax)
        movl    $2, 8(%eax)
        movl    $1, 4(%eax)
        movl    $0, (%eax)
        ret     $4
_foo:
        pushl   %esi
        subl    $40, %esp
        movl    48(%esp), %esi
        leal    16(%esp), %eax
        movl    %eax, (%esp)
        call    _bar
        subl    $4, %esp
        movl    16(%esp), %eax
        movl    %eax, (%esi)
        movl    20(%esp), %eax
        movl    %eax, 4(%esi)
        movl    24(%esp), %eax
        movl    %eax, 8(%esi)
        movl    28(%esp), %eax
        movl    %eax, 12(%esi)
        addl    $40, %esp
        popl    %esi
        ret
This fixes SingleSource/Benchmarks/CoyoteBench/fftbench with LLC and the
JIT, and fixes the X86-backend portion of PR729.  The CBE still needs to
be updated.
llvm-svn: 28438 
							
						 
						
							2006-05-23 18:50:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								01dd6df5f3 
								
							 
						 
						
							
							
								
								CSRet allows varargs  
							
							 
							
							... 
							
							
							
							llvm-svn: 28409 
							
						 
						
							2006-05-19 21:34:04 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								8c6b234ce8 
								
							 
						 
						
							
							
								
								Should pass by reference.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28357 
							
						 
						
							2006-05-17 19:07:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c7df70db57 
								
							 
						 
						
							
							
								
								Implement the custom lowering hook right, returning values for all of the  
							
							 
							
							... 
							
							
							
							arguments at once.
llvm-svn: 28327 
							
						 
						
							2006-05-16 17:14:26 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7b8b8bbbf9 
								
							 
						 
						
							
							
								
								Fix a bug I introduced yesterday, which broke functions with *no* arguments.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28326 
							
						 
						
							2006-05-16 17:08:35 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								9fee442e63 
								
							 
						 
						
							
							
								
								X86 integer register classes naming changes. Make them consistent with FP, vector classes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28324 
							
						 
						
							2006-05-16 07:21:53 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3d82699605 
								
							 
						 
						
							
							
								
								Add a chain to FORMAL_ARGUMENTS.  This is a minimal port of the X86 backend,  
							
							 
							
							... 
							
							
							
							it doesn't currently use/maintain the chain properly.  Also, make the
X86ISelLowering.cpp file 80-col clean.
llvm-svn: 28320 
							
						 
						
							2006-05-16 06:45:34 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								22f95b74ba 
								
							 
						 
						
							
							
								
								Dead variable  
							
							 
							
							... 
							
							
							
							llvm-svn: 28265 
							
						 
						
							2006-05-12 21:12:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6d4a2dc4ad 
								
							 
						 
						
							
							
								
								Teach the X86 backend about non-i32 inline asm register classes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28139 
							
						 
						
							2006-05-06 00:29:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								44a73e9fa5 
								
							 
						 
						
							
							
								
								Teach the code generator to use cvtss2sd as extload f32 -> f64  
							
							 
							
							... 
							
							
							
							llvm-svn: 28131 
							
						 
						
							2006-05-05 21:35:18 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								20a631fde7 
								
							 
						 
						
							
							
								
								Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses.  This has one caller-visible change: getTargetData() now returns a pointer instead of a reference.  
							
							 
							
							... 
							
							
							
							This fixes PR 759.
llvm-svn: 28074 
							
						 
						
							2006-05-03 01:29:57 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								88decded82 
								
							 
						 
						
							
							
								
								Initial caller side support (for CCC only, not FastCC) of 128-bit vector  
							
							 
							
							... 
							
							
							
							passing by value.
llvm-svn: 28015 
							
						 
						
							2006-04-28 21:29:37 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								3cd4362ade 
								
							 
						 
						
							
							
								
								Implement four-wide shuffle with 2 shufps if no more than two elements come  
							
							 
							
							... 
							
							
							
							from each vector. e.g.
        shuffle(G1, G2, 7, 1, 5, 2)
==>
        movaps _G2, %xmm0
        shufps $151, _G1, %xmm0
        shufps $216, %xmm0, %xmm0
llvm-svn: 28011 
							
						 
						
							2006-04-28 07:03:38 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d43c5c6046 
								
							 
						 
						
							
							
								
								TargetLowering::LowerArguments should return a VBIT_CONVERT of  
							
							 
							
							... 
							
							
							
							FORMAL_ARGUMENTS SDOperand in the return result vector.
llvm-svn: 28009 
							
						 
						
							2006-04-28 05:25:15 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								f4f3f0d25f 
								
							 
						 
						
							
							
								
								Make x86 isel lowering produce tailcall nodes. They are match to normal calls  
							
							 
							
							... 
							
							
							
							for now.
Patch contributed by Alexander Friedman.
llvm-svn: 27994 
							
						 
						
							2006-04-27 08:40:39 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								89001ad729 
								
							 
						 
						
							
							
								
								Support for passing 128-bit vector arguments via XMM registers.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27992 
							
						 
						
							2006-04-27 08:31:10 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a0374e1bed 
								
							 
						 
						
							
							
								
								Oops  
							
							 
							
							... 
							
							
							
							llvm-svn: 27989 
							
						 
						
							2006-04-27 05:44:50 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								24eb3f4765 
								
							 
						 
						
							
							
								
								Bug fix: not updating NumIntRegs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27988 
							
						 
						
							2006-04-27 05:35:28 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								48940d16b2 
								
							 
						 
						
							
							
								
								- Clean up formal argument lowering code. Prepare for vector pass by value work.  
							
							 
							
							... 
							
							
							
							- Fixed vararg support.
llvm-svn: 27985 
							
						 
						
							2006-04-27 01:32:22 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								1c39903297 
								
							 
						 
						
							
							
								
								Fix fastcc failures.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27980 
							
						 
						
							2006-04-26 18:21:31 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e0bcfbe811 
								
							 
						 
						
							
							
								
								Switching over FORMAL_ARGUMENTS mechanism to lower call arguments.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27975 
							
						 
						
							2006-04-26 01:20:17 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a9467aab0a 
								
							 
						 
						
							
							
								
								Separate LowerOperation() into multiple functions, one per opcode.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27972 
							
						 
						
							2006-04-25 20:13:52 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5c2bfb069e 
								
							 
						 
						
							
							
								
								Special case handling two wide build_vector(0, x).  
							
							 
							
							... 
							
							
							
							llvm-svn: 27961 
							
						 
						
							2006-04-24 22:58:52 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b0461080e4 
								
							 
						 
						
							
							
								
								A little bit more build_vector enhancement for v8i16 cases.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27959 
							
						 
						
							2006-04-24 18:01:45 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b4f31dd1a8 
								
							 
						 
						
							
							
								
								MOVL shuffle (i.e. movd or movss / movsd from memory) of undef, V2 == V2  
							
							 
							
							... 
							
							
							
							llvm-svn: 27953 
							
						 
						
							2006-04-23 06:35:19 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								4ca2ea5b43 
								
							 
						 
						
							
							
								
								JumpTable support!  What this represents is working asm and jit support for  
							
							 
							
							... 
							
							
							
							x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.
llvm-svn: 27947 
							
						 
						
							2006-04-22 18:53:45 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e728efdfce 
								
							 
						 
						
							
							
								
								Don't do all the lowering stuff for 2-wide build_vector's. Also, minor optimization for shuffle of undef.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27946 
							
						 
						
							2006-04-22 08:34:05 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								16ef94f4e8 
								
							 
						 
						
							
							
								
								Fix a performance regression. Use {p}shuf* when there are only two distinct elements in a build_vector.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27945 
							
						 
						
							2006-04-22 06:21:46 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								14215c36b6 
								
							 
						 
						
							
							
								
								Revamp build_vector lowering to take advantage of movss and movd instructions.  
							
							 
							
							... 
							
							
							
							movd always clear the top 96 bits and movss does so when it's loading the
value from memory.
The net result is codegen for 4-wide shuffles is much improved. It is near
optimal if one or more elements is a zero. e.g.
__m128i test(int a, int b) {
  return _mm_set_epi32(0, 0, b, a);
}
compiles to
_test:
	movd 8(%esp), %xmm1
	movd 4(%esp), %xmm0
	punpckldq %xmm1, %xmm0
	ret
compare to gcc:
_test:
	subl	$12, %esp
	movd	20(%esp), %xmm0
	movd	16(%esp), %xmm1
	punpckldq	%xmm0, %xmm1
	movq	%xmm1, %xmm0
	movhps	LC0, %xmm0
	addl	$12, %esp
	ret
or icc:
_test:
        movd      4(%esp), %xmm0                                #5.10
        movd      8(%esp), %xmm3                                #5.10
        xorl      %eax, %eax                                    #5.10
        movd      %eax, %xmm1                                   #5.10
        punpckldq %xmm1, %xmm0                                  #5.10
        movd      %eax, %xmm2                                   #5.10
        punpckldq %xmm2, %xmm3                                  #5.10
        punpckldq %xmm3, %xmm0                                  #5.10
        ret                                                     #5.10
There are still room for improvement, for example the FP variant of the above example:
__m128 test(float a, float b) {
  return _mm_set_ps(0.0, 0.0, b, a);
}
_test:
	movss 8(%esp), %xmm1
	movss 4(%esp), %xmm0
	unpcklps %xmm1, %xmm0
	xorps %xmm1, %xmm1
	movlhps %xmm1, %xmm0
	ret
The xorps and movlhps are unnecessary. This will require post legalizer optimization to handle.
llvm-svn: 27939 
							
						 
						
							2006-04-21 23:03:30 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e8b5180044 
								
							 
						 
						
							
							
								
								Now generating perfect (I think) code for "vector set" with a single non-zero  
							
							 
							
							... 
							
							
							
							scalar value.
e.g.
        _mm_set_epi32(0, a, 0, 0);
==>
	movd 4(%esp), %xmm0
	pshufd $69, %xmm0, %xmm0
        _mm_set_epi8(0, 0, 0, 0, 0, a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
==>
	movzbw 4(%esp), %ax
	movzwl %ax, %eax
	pxor %xmm0, %xmm0
	pinsrw $5, %eax, %xmm0
llvm-svn: 27923 
							
						 
						
							2006-04-21 01:05:10 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								60f0b8998e 
								
							 
						 
						
							
							
								
								- Added support to turn "vector clear elements", e.g. pand V, <-1, -1, 0, -1>  
							
							 
							
							... 
							
							
							
							to a vector shuffle.
- VECTOR_SHUFFLE lowering change in preparation for more efficient codegen
of vector shuffle with zero (or any splat) vector.
llvm-svn: 27875 
							
						 
						
							2006-04-20 08:58:49 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								15c264b753 
								
							 
						 
						
							
							
								
								Handle v2i64 BUILD_VECTOR custom lowering correctly. v2i64 is a legal type,  
							
							 
							
							... 
							
							
							
							but i64 is not. If possible, change a i64 op to a f64 (e.g. load, constant)
and then cast it back.
llvm-svn: 27849 
							
						 
						
							2006-04-20 00:11:39 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								4a1b0d3292 
								
							 
						 
						
							
							
								
								isSplatMask() bug: first element can be an undef.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27847 
							
						 
						
							2006-04-19 23:28:59 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a3caaee503 
								
							 
						 
						
							
							
								
								- Added support to do aribitrary 4 wide shuffle with no more than three  
							
							 
							
							... 
							
							
							
							instructions.
- Fixed a commute vector_shuff bug.
llvm-svn: 27845 
							
						 
						
							2006-04-19 22:48:17 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								7855e4d032 
								
							 
						 
						
							
							
								
								Commute vector_shuffle to match more movlhps, movlp{s|d} cases.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27840 
							
						 
						
							2006-04-19 20:35:22 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5421206c4b 
								
							 
						 
						
							
							
								
								Use movss to insert_vector_elt(v, s, 0).  
							
							 
							
							... 
							
							
							
							llvm-svn: 27782 
							
						 
						
							2006-04-17 22:45:49 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6e5e205841 
								
							 
						 
						
							
							
								
								Use two pinsrw to insert an element into v4i32 / v4f32 vector.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27779 
							
						 
						
							2006-04-17 22:04:06 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5022b3426e 
								
							 
						 
						
							
							
								
								Implement v8i16, v16i8 splat using unpckl + pshufd.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27768 
							
						 
						
							2006-04-17 20:43:08 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c070c621ac 
								
							 
						 
						
							
							
								
								implement returns of a vector, testcase here: CodeGen/X86/vec_return.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 27767 
							
						 
						
							2006-04-17 20:32:50 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b3b41c4f3d 
								
							 
						 
						
							
							
								
								FP SETOLT, SETOLT, SETUGE, SETUGT conditions were implemented incorrectly  
							
							 
							
							... 
							
							
							
							llvm-svn: 27755 
							
						 
						
							2006-04-17 07:24:10 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6222cf2a36 
								
							 
						 
						
							
							
								
								Silly bug  
							
							 
							
							... 
							
							
							
							llvm-svn: 27719 
							
						 
						
							2006-04-15 05:37:34 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								65bb720a8b 
								
							 
						 
						
							
							
								
								Do not use movs{h|l}dup for a shuffle with a single non-undef node.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27718 
							
						 
						
							2006-04-15 03:13:24 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5d247f81c1 
								
							 
						 
						
							
							
								
								Last few SSE3 intrinsics.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27711 
							
						 
						
							2006-04-14 21:59:03 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e4f97ccf7f 
								
							 
						 
						
							
							
								
								X86 SSE2 supports v8i16 multiplication  
							
							 
							
							... 
							
							
							
							llvm-svn: 27644 
							
						 
						
							2006-04-13 05:10:25 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								92232307d0 
								
							 
						 
						
							
							
								
								All "integer" logical ops (pand, por, pxor) are now promoted to v2i64.  
							
							 
							
							... 
							
							
							
							Clean up and fix various logical ops issues.
llvm-svn: 27633 
							
						 
						
							2006-04-12 21:21:57 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e2157c6e41 
								
							 
						 
						
							
							
								
								Promote v4i32, v8i16, v16i8 load to v2i64 load.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27612 
							
						 
						
							2006-04-12 17:12:36 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								12ba3e23d0 
								
							 
						 
						
							
							
								
								Added support for _mm_move_ss and _mm_move_sd.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27575 
							
						 
						
							2006-04-11 00:19:04 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								617a6a812e 
								
							 
						 
						
							
							
								
								Conditional move of vector types.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27556 
							
						 
						
							2006-04-10 07:23:14 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								ac847268c5 
								
							 
						 
						
							
							
								
								Code clean up.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27501 
							
						 
						
							2006-04-07 21:53:05 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								c995b45f67 
								
							 
						 
						
							
							
								
								- movlp{s|d} and movhp{s|d} support.  
							
							 
							
							... 
							
							
							
							- Normalize shuffle nodes so result vector lower half elements come from the
  first vector, the rest come from the second vector. (Except for the
  exceptions :-).
- Other minor fixes.
llvm-svn: 27474 
							
						 
						
							2006-04-06 23:23:56 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								780382946e 
								
							 
						 
						
							
							
								
								Support for comi / ucomi intrinsics.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27444 
							
						 
						
							2006-04-05 23:38:46 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								f3b52c84ea 
								
							 
						 
						
							
							
								
								Handle canonical form of e.g.  
							
							 
							
							... 
							
							
							
							vector_shuffle v1, v1, <0, 4, 1, 5, 2, 6, 3, 7>
This is turned into
vector_shuffle v1, <undef>, <0, 0, 1, 1, 2, 2, 3, 3>
by dag combiner.
It would match a {p}unpckl on x86.
llvm-svn: 27437 
							
						 
						
							2006-04-05 07:20:06 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6d196db40d 
								
							 
						 
						
							
							
								
								Bogus assert  
							
							 
							
							... 
							
							
							
							llvm-svn: 27434 
							
						 
						
							2006-04-05 06:11:20 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								2cf4232ced 
								
							 
						 
						
							
							
								
								Fallthrough to expand if a VECTOR_SHUFFLE cannot be custom lowered.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27433 
							
						 
						
							2006-04-05 06:09:26 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								59a6355e82 
								
							 
						 
						
							
							
								
								Handle v8i16 shuffle that must be broken into a pair of pshufhw / pshuflw.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27427 
							
						 
						
							2006-04-05 01:47:37 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b64827e662 
								
							 
						 
						
							
							
								
								Use movlpd to: store lower f64 extracted from v2f64.  
							
							 
							
							... 
							
							
							
							Use movhpd to: store upper f64 extracted from v2f64.
llvm-svn: 27382 
							
						 
						
							2006-04-03 22:30:54 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								ebf1006d16 
								
							 
						 
						
							
							
								
								- More efficient extract_vector_elt with shuffle and movss, movsd, movd, etc.  
							
							 
							
							... 
							
							
							
							- Some bug fixes and naming inconsistency fixes.
llvm-svn: 27377 
							
						 
						
							2006-04-03 20:53:28 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5fd7c69473 
								
							 
						 
						
							
							
								
								Use a X86 target specific node X86ISD::PINSRW instead of a mal-formed  
							
							 
							
							... 
							
							
							
							INSERT_VECTOR_ELT to insert a 16-bit value in a 128-bit vector.
llvm-svn: 27314 
							
						 
						
							2006-03-31 21:55:24 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								cbffa4656b 
								
							 
						 
						
							
							
								
								Add support to use pextrw and pinsrw to extract and insert a word element  
							
							 
							
							... 
							
							
							
							from a 128-bit vector.
llvm-svn: 27304 
							
						 
						
							2006-03-31 19:22:53 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								1b0d294de0 
								
							 
						 
						
							
							
								
								Expand all INSERT_VECTOR_ELT (obviously bad) for now.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27275 
							
						 
						
							2006-03-31 01:30:39 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d9d0bbb5ac 
								
							 
						 
						
							
							
								
								Typo  
							
							 
							
							... 
							
							
							
							llvm-svn: 27272 
							
						 
						
							2006-03-31 00:33:57 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								99d7205fba 
								
							 
						 
						
							
							
								
								Ok for vector_shuffle mask to contain undef elements.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27271 
							
						 
						
							2006-03-31 00:30:29 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								7e2ff11a42 
								
							 
						 
						
							
							
								
								Make sure all possible shuffles are matched.  
							
							 
							
							... 
							
							
							
							Use pshufd, pshuhw, and pshulw to shuffle v4f32 if shufps doesn't match.
Use shufps to shuffle v4f32 if pshufd, pshuhw, and pshulw don't match.
llvm-svn: 27259 
							
						 
						
							2006-03-30 19:54:57 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b7fedffc78 
								
							 
						 
						
							
							
								
								- Added some SSE2 128-bit packed integer ops.  
							
							 
							
							... 
							
							
							
							- Added SSE2 128-bit integer pack with signed saturation ops.
- Added pshufhw and pshuflw ops.
llvm-svn: 27252 
							
						 
						
							2006-03-29 23:07:14 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								acc336475e 
								
							 
						 
						
							
							
								
								Need to special case splat after all. Make the second operand of splat  
							
							 
							
							... 
							
							
							
							vector_shuffle undef.
llvm-svn: 27250 
							
						 
						
							2006-03-29 19:02:40 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								500ec16578 
								
							 
						 
						
							
							
								
								- More shuffle related bug fixes.  
							
							 
							
							... 
							
							
							
							- Whenever possible use ops of the right packed types for vector shuffles /
  splats.
llvm-svn: 27246 
							
						 
						
							2006-03-29 03:04:49 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								da59b0d2a8 
								
							 
						 
						
							
							
								
								- Only use pshufd for v4i32 vector shuffles.  
							
							 
							
							... 
							
							
							
							- Other shuffle related fixes.
llvm-svn: 27244 
							
						 
						
							2006-03-29 01:30:51 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								8160fd3d42 
								
							 
						 
						
							
							
								
								Fixing buggy code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27239 
							
						 
						
							2006-03-28 23:41:33 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								457e54efc1 
								
							 
						 
						
							
							
								
								Added missing paren on behalf of Ramana Radhakrishnan.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27223 
							
						 
						
							2006-03-28 10:17:11 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								21e5476deb 
								
							 
						 
						
							
							
								
								Missed X86::isUNPCKHMask  
							
							 
							
							... 
							
							
							
							llvm-svn: 27222 
							
						 
						
							2006-03-28 08:27:15 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								1a194a5264 
								
							 
						 
						
							
							
								
								* Prefer using operation of matching types. e.g unpcklpd rather than movlhps.  
							
							 
							
							... 
							
							
							
							* Bug fixes.
llvm-svn: 27218 
							
						 
						
							2006-03-28 06:50:32 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								2bc3280659 
								
							 
						 
						
							
							
								
								- Clean up / consoladate various shuffle masks.  
							
							 
							
							... 
							
							
							
							- Some misc. bug fixes.
- Use MOVHPDrm to load from m64 to upper half of a XMM register.
llvm-svn: 27210 
							
						 
						
							2006-03-28 02:43:26 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5df75889db 
								
							 
						 
						
							
							
								
								Model unpack lower and interleave as vector_shuffle so we can lower the  
							
							 
							
							... 
							
							
							
							intrinsics as such.
llvm-svn: 27200 
							
						 
						
							2006-03-28 00:39:58 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								9b9cc4fb39 
								
							 
						 
						
							
							
								
								Use pcmpeq to generate vector of all ones.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27167 
							
						 
						
							2006-03-27 07:00:16 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								ed728c1291 
								
							 
						 
						
							
							
								
								SelectionDAGISel can now natively handle Switch instructions, in the same  
							
							 
							
							... 
							
							
							
							manner that the LowerSwitch LLVM to LLVM pass does: emitting a binary
search tree of basic blocks.  The new approach has several advantages:
it is faster, it generates significantly smaller code in many cases, and
it paves the way for implementing dense switch tables as a jump table by
handling switches directly in the instruction selector.
This functionality is currently only enabled on x86, but should be safe for
every target.  In anticipation of making it the default, the cfg is now
properly updated in the x86, ppc, and sparc select lowering code.
llvm-svn: 27156 
							
						 
						
							2006-03-27 01:32:24 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								ed6184aef2 
								
							 
						 
						
							
							
								
								Remove X86:isZeroVector, use ISD::isBuildVectorAllZeros instead; some fixes / cleanups  
							
							 
							
							... 
							
							
							
							llvm-svn: 27150 
							
						 
						
							2006-03-26 09:53:12 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								2bc0941e2a 
								
							 
						 
						
							
							
								
								Build arbitrary vector with more than 2 distinct scalar elements with a  
							
							 
							
							... 
							
							
							
							series of unpack and interleave ops.
llvm-svn: 27119 
							
						 
						
							2006-03-25 09:37:23 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6f7d31ea50 
								
							 
						 
						
							
							
								
								Added 128-bit packed integer subtraction.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27096 
							
						 
						
							2006-03-25 01:33:37 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e7ee6a5e32 
								
							 
						 
						
							
							
								
								Support for scalar to vector with zero extension.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27091 
							
						 
						
							2006-03-24 23:15:12 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								082c8785ef 
								
							 
						 
						
							
							
								
								Handle BUILD_VECTOR with all zero elements.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27056 
							
						 
						
							2006-03-24 07:29:27 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f5efddf80b 
								
							 
						 
						
							
							
								
								Gabor points out that we can't spell. :)  
							
							 
							
							... 
							
							
							
							llvm-svn: 27049 
							
						 
						
							2006-03-24 07:12:19 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a91d8a5b43 
								
							 
						 
						
							
							
								
								All v2f64 shuffle cases can be handled.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27044 
							
						 
						
							2006-03-24 06:40:32 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								2595a687da 
								
							 
						 
						
							
							
								
								More efficient v2f64 shuffle using movlhps, movhlps, unpckhpd, and unpcklpd.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27040 
							
						 
						
							2006-03-24 02:58:06 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d27fb3e85e 
								
							 
						 
						
							
							
								
								Handle more shuffle cases with SHUFP* instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 27024 
							
						 
						
							2006-03-24 01:18:28 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								f842ea57bb 
								
							 
						 
						
							
							
								
								Typo  
							
							 
							
							... 
							
							
							
							llvm-svn: 26997 
							
						 
						
							2006-03-23 20:26:04 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b9b0550dc6 
								
							 
						 
						
							
							
								
								Add 128-bit integer vector load and add (for testing).  
							
							 
							
							... 
							
							
							
							llvm-svn: 26967 
							
						 
						
							2006-03-23 01:57:24 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								021bb7c956 
								
							 
						 
						
							
							
								
								Added a ValueType operand to isShuffleMaskLegal(). For now, x86 will not do  
							
							 
							
							... 
							
							
							
							64-bit vector shuffle.
llvm-svn: 26964 
							
						 
						
							2006-03-22 22:07:06 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								bc04722860 
								
							 
						 
						
							
							
								
								Some clean up.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26957 
							
						 
						
							2006-03-22 19:22:18 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d4e1557941 
								
							 
						 
						
							
							
								
								- Supposely movlhps is faster / better than unpcklpd.  
							
							 
							
							... 
							
							
							
							- Don't forget pshufd is only available with sse2.
llvm-svn: 26956 
							
						 
						
							2006-03-22 19:16:21 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								68ad48bd1a 
								
							 
						 
						
							
							
								
								- Implement X86ISelLowering::isShuffleMaskLegal(). We currently only support  
							
							 
							
							... 
							
							
							
							splat and PSHUFD cases.
- Clean up shuffle / splat matching code.
llvm-svn: 26954 
							
						 
						
							2006-03-22 18:59:22 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								8fdbdf20cd 
								
							 
						 
						
							
							
								
								- VECTOR_SHUFFLE of v4i32 / v4f32 with undef second vector always matches  
							
							 
							
							... 
							
							
							
							PSHUFD. We can make permutes entries which point to the undef pointing
  anything we want.
- Change some names to appease Chris.
llvm-svn: 26951 
							
						 
						
							2006-03-22 08:01:21 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f5e36c8bc0 
								
							 
						 
						
							
							
								
								fix a warning  
							
							 
							
							... 
							
							
							
							llvm-svn: 26941 
							
						 
						
							2006-03-22 04:18:34 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d097e67544 
								
							 
						 
						
							
							
								
								Some splat and shuffle support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26940 
							
						 
						
							2006-03-22 02:53:00 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d5e905d762 
								
							 
						 
						
							
							
								
								- Use movaps to store 128-bit vector integers.  
							
							 
							
							... 
							
							
							
							- Each scalar to vector v8i16 and v16i8 is a any_extend followed by a movd.
llvm-svn: 26932 
							
						 
						
							2006-03-21 23:01:21 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								00f4683bf6 
								
							 
						 
						
							
							
								
								These targets don't support EXTRACT_VECTOR_ELT, though, in time, X86 will.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26930 
							
						 
						
							2006-03-21 20:51:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								80b6bd2746 
								
							 
						 
						
							
							
								
								Add a build_vector node  
							
							 
							
							... 
							
							
							
							llvm-svn: 26895 
							
						 
						
							2006-03-20 06:18:01 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f7b6e7212f 
								
							 
						 
						
							
							
								
								rename these nodes  
							
							 
							
							... 
							
							
							
							llvm-svn: 26848 
							
						 
						
							2006-03-19 01:13:28 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b09a56f3a4 
								
							 
						 
						
							
							
								
								Darwin should use _setjmp/_longjmp instead of setjmp/longjmp.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26833 
							
						 
						
							2006-03-17 20:31:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								388fc4d9fb 
								
							 
						 
						
							
							
								
								Disable x86 fastcc from passing args in registers  
							
							 
							
							... 
							
							
							
							llvm-svn: 26824 
							
						 
						
							2006-03-17 17:27:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								43798850f9 
								
							 
						 
						
							
							
								
								Parameterize the number of integer arguments to pass in registers  
							
							 
							
							... 
							
							
							
							llvm-svn: 26818 
							
						 
						
							2006-03-17 05:10:20 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								bb01d4f272 
								
							 
						 
						
							
							
								
								Remove BRTWOWAY*  
							
							 
							
							... 
							
							
							
							Make the PPC backend not dependent on BRTWOWAY_CC and make the branch
selector smarter about the code it generates, fixing a case in the
readme.
llvm-svn: 26814 
							
						 
						
							2006-03-17 01:40:33 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								f75555feb9 
								
							 
						 
						
							
							
								
								Bug fix: condition inverted.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26804 
							
						 
						
							2006-03-16 22:02:48 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								20931a798e 
								
							 
						 
						
							
							
								
								Added a way for TargetLowering to specify what values can be used as the  
							
							 
							
							... 
							
							
							
							scale component of the target addressing mode.
llvm-svn: 26802 
							
						 
						
							2006-03-16 21:47:42 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								af598d2461 
								
							 
						 
						
							
							
								
								Add LSR hooks.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26740 
							
						 
						
							2006-03-13 23:18:16 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								adc7093fc1 
								
							 
						 
						
							
							
								
								Use rep/stosl; and Count 0x3; rep/stosb for memset with 4 byte aligned dest.  
							
							 
							
							... 
							
							
							
							and variable value.
Similarly for memcpy.
llvm-svn: 26603 
							
						 
						
							2006-03-07 23:29:39 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								30d7b70b73 
								
							 
						 
						
							
							
								
								Enable Dwarf debugging info.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26581 
							
						 
						
							2006-03-07 02:02:57 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9c7f50376a 
								
							 
						 
						
							
							
								
								Copysign needs to be expanded everywhere.  Note that Alpha and IA64 should  
							
							 
							
							... 
							
							
							
							implement copysign as a native op if they have it.
llvm-svn: 26541 
							
						 
						
							2006-03-05 05:08:37 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6dc73297c3 
								
							 
						 
						
							
							
								
								MEMSET / MEMCPY lowering bugs: we can't issue a single WORD / DWORD version of  
							
							 
							
							... 
							
							
							
							rep/stos and rep/mov if the count is not a constant. We could do
  rep/stosl; and $count, 3; rep/stosb
For now, I will lower them to memset / memcpy calls. We will revisit this after
a little bit experiment.
Also need to take care of the trailing bytes even if the count is a constant.
Since the max. number of trailing bytes are 3, we will simply issue loads /
stores.
llvm-svn: 26517 
							
						 
						
							2006-03-04 02:48:56 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								084a102b17 
								
							 
						 
						
							
							
								
								Typo  
							
							 
							
							... 
							
							
							
							llvm-svn: 26512 
							
						 
						
							2006-03-04 01:12:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ad3c974a77 
								
							 
						 
						
							
							
								
								remove the read/write port/io intrinsics.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26479 
							
						 
						
							2006-03-03 00:19:58 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								1926427351 
								
							 
						 
						
							
							
								
								Vector op lowering.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26438 
							
						 
						
							2006-03-01 01:11:20 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								994700101e 
								
							 
						 
						
							
							
								
								Added a common about the need for X86ISD::Wrapper.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26372 
							
						 
						
							2006-02-25 09:55:19 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e0ed6ec13f 
								
							 
						 
						
							
							
								
								- Clean up the lowering and selection code of ConstantPool, GlobalAddress,  
							
							 
							
							... 
							
							
							
							and ExternalSymbol.
- Use C++ code (rather than tblgen'd selection code) to match the above
  mentioned leaf nodes. Do not mutate and nodes and do not record the
  selection in CodeGenMap. These nodes should be safe to duplicate. This is
  a performance win.
llvm-svn: 26335 
							
						 
						
							2006-02-23 20:41:18 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								1f342c2884 
								
							 
						 
						
							
							
								
								PIC related bug fixes.  
							
							 
							
							... 
							
							
							
							1. Various asm printer bug.
2. Lowering bug. Now TargetGlobalAddress is wrapped in X86ISD::TGAWrapper.
llvm-svn: 26324 
							
						 
						
							2006-02-23 02:43:52 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								73136dfecc 
								
							 
						 
						
							
							
								
								- Added option -relocation-model to set relocation model. Valid values include static, pic,  
							
							 
							
							... 
							
							
							
							dynamic-no-pic, and default.
PPC and x86 default is dynamic-no-pic for Darwin, pic for others.
- Removed options -enable-pic and -ppc-static.
llvm-svn: 26315 
							
						 
						
							2006-02-22 20:19:42 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								9e252e3bcf 
								
							 
						 
						
							
							
								
								Added MMX, SSE1, and SSE2 vector instructions and some simple patterns.  
							
							 
							
							... 
							
							
							
							Fixed some existing bugs (wrong predicates, prefixes) at the same time.
llvm-svn: 26310 
							
						 
						
							2006-02-22 02:26:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7ad77dfc2a 
								
							 
						 
						
							
							
								
								split register class handling from explicit physreg handling.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26308 
							
						 
						
							2006-02-22 00:56:39 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7bb4696dc3 
								
							 
						 
						
							
							
								
								Updates to match change of getRegForInlineAsmConstraint prototype  
							
							 
							
							... 
							
							
							
							llvm-svn: 26305 
							
						 
						
							2006-02-21 23:11:00 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d13778eb30 
								
							 
						 
						
							
							
								
								If SSE3 is available, promote FP_TO_UINT i32 to FP_TO_SINT i64 to take  
							
							 
							
							... 
							
							
							
							advantage of fisttpll.
llvm-svn: 26288 
							
						 
						
							2006-02-18 07:26:17 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5588de9415 
								
							 
						 
						
							
							
								
								x86 / Darwin PIC support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26273 
							
						 
						
							2006-02-18 00:15:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								07a2677e43 
								
							 
						 
						
							
							
								
								unbreak the build  
							
							 
							
							... 
							
							
							
							llvm-svn: 26260 
							
						 
						
							2006-02-17 07:09:27 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								593bea73ba 
								
							 
						 
						
							
							
								
								Unbreak x86 be  
							
							 
							
							... 
							
							
							
							llvm-svn: 26259 
							
						 
						
							2006-02-17 07:01:52 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								5965bd19f8 
								
							 
						 
						
							
							
								
								kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBC  
							
							 
							
							... 
							
							
							
							and SUBE nodes that actually expose what's going on and allow for
significant simplifications in the targets.
llvm-svn: 26255 
							
						 
						
							2006-02-17 05:43:56 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								7e5496d5fe 
								
							 
						 
						
							
							
								
								Kill the x86 pattern isel.  boom.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26246 
							
						 
						
							2006-02-17 00:03:04 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								8a77efe4f7 
								
							 
						 
						
							
							
								
								Rework the SelectionDAG-based implementations of SimplifyDemandedBits  
							
							 
							
							... 
							
							
							
							and ComputeMaskedBits to match the new improved versions in instcombine.
Tested against all of multisource/benchmarks on ppc.
llvm-svn: 26238 
							
						 
						
							2006-02-16 21:11:51 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								03c1e6f48e 
								
							 
						 
						
							
							
								
								A bit more memset / memcpy optimization.  
							
							 
							
							... 
							
							
							
							Turns them into calls to memset / memcpy if 1) buffer(s) are not DWORD aligned,
2) size is not known to be greater or equal to some minimum value (currently 128).
llvm-svn: 26224 
							
						 
						
							2006-02-16 00:21:07 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								4b40a42653 
								
							 
						 
						
							
							
								
								Rename maxStoresPerMemSet to maxStoresPerMemset, etc.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26174 
							
						 
						
							2006-02-14 08:38:30 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6a37456d73 
								
							 
						 
						
							
							
								
								Set maxStoresPerMemSet to 16. Ditto for maxStoresPerMemCpy and  
							
							 
							
							... 
							
							
							
							maxStoresPerMemMove. Although the last one is not used.
llvm-svn: 26172 
							
						 
						
							2006-02-14 08:25:08 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								62c3484e43 
								
							 
						 
						
							
							
								
								Switch targets over to using SelectionDAG::getCALLSEQ_START to create  
							
							 
							
							... 
							
							
							
							CALLSEQ_START nodes.
llvm-svn: 26143 
							
						 
						
							2006-02-13 09:00:43 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5a76680de1 
								
							 
						 
						
							
							
								
								Darwin ABI issues: weak, linkonce, etc. dynamic-no-pic support is complete.  
							
							 
							
							... 
							
							
							
							Also fixed a function stub bug. Added weak and linkonce support for
x86 Linux.
llvm-svn: 26038 
							
						 
						
							2006-02-07 08:38:37 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								11613a5219 
								
							 
						 
						
							
							
								
								Separate FILD and FILD_FLAG, the later is only used for SSE2. It produces a  
							
							 
							
							... 
							
							
							
							flag so it can be flagged to a FST.
llvm-svn: 25953 
							
						 
						
							2006-02-04 02:20:30 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d8fba3a1ee 
								
							 
						 
						
							
							
								
								Fix a erroneous comment.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25894 
							
						 
						
							2006-02-02 00:28:23 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								7e7f439f85 
								
							 
						 
						
							
							
								
								Fix some of the stuff in the PPC README file, and clean up legalization  
							
							 
							
							... 
							
							
							
							of the SELECT_CC, BR_CC, and BRTWOWAY_CC nodes.
llvm-svn: 25875 
							
						 
						
							2006-02-01 07:19:44 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a24617f5d4 
								
							 
						 
						
							
							
								
								Return's chain should be matching either the chain produced by the  
							
							 
							
							... 
							
							
							
							value or the chain going into the load.
llvm-svn: 25863 
							
						 
						
							2006-02-01 01:19:32 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e1ce4d7115 
								
							 
						 
						
							
							
								
								When folding a load into a return of SSE value, check the chain to  
							
							 
							
							... 
							
							
							
							ensure the memory location has not been clobbered.
llvm-svn: 25861 
							
						 
						
							2006-02-01 00:20:21 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5659ca8f47 
								
							 
						 
						
							
							
								
								Be smarter about whether to store the SSE return value in memory. If  
							
							 
							
							... 
							
							
							
							it is already available in memory, do a fld directly from there.
llvm-svn: 25859 
							
						 
						
							2006-01-31 23:19:54 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								72d5c256c9 
								
							 
						 
						
							
							
								
								- Allow XMM load (for scalar use) to be folded into ANDP* and XORP*.  
							
							 
							
							... 
							
							
							
							- Use XORP* to implement fneg.
llvm-svn: 25857 
							
						 
						
							2006-01-31 22:28:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c642aa5e1c 
								
							 
						 
						
							
							
								
								* Fix 80-column violations  
							
							 
							
							... 
							
							
							
							* Rename hasSSE -> hasSSE1 to avoid my continual confusion with 'has any SSE'.
* Add inline asm constraint specification.
llvm-svn: 25854 
							
						 
						
							2006-01-31 19:43:35 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								2dd217b88f 
								
							 
						 
						
							
							
								
								Added custom lowering of fabs  
							
							 
							
							... 
							
							
							
							llvm-svn: 25831 
							
						 
						
							2006-01-31 03:14:29 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								45df7f84ff 
								
							 
						 
						
							
							
								
								Don't generate complex sequence for SETOLE, SETOLT, SETULT, and SETUGT. Flip  
							
							 
							
							... 
							
							
							
							the order of the compare operands and generate SETOGT, SETOGE, SETUGE, and
SETULE instead.
llvm-svn: 25824 
							
						 
						
							2006-01-30 23:41:35 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								08390f6a21 
								
							 
						 
						
							
							
								
								i64 -> f32, f32 -> i64 and some clean up.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25818 
							
						 
						
							2006-01-30 22:13:22 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5b97fcf0f5 
								
							 
						 
						
							
							
								
								Always use FP stack instructions to perform i64 to f64 as well as f64 to i64  
							
							 
							
							... 
							
							
							
							conversions. SSE does not have instructions to handle these tasks.
llvm-svn: 25817 
							
						 
						
							2006-01-30 08:02:57 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f0b24d2dc0 
								
							 
						 
						
							
							
								
								Move MaskedValueIsZero from the DAGCombiner to the TargetLowering interface,making isMaskedValueZeroForTargetNode simpler, and useable from other partsof the compiler.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25803 
							
						 
						
							2006-01-30 04:09:27 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c6fa0282d2 
								
							 
						 
						
							
							
								
								adjust prototype  
							
							 
							
							... 
							
							
							
							llvm-svn: 25798 
							
						 
						
							2006-01-30 03:49:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								132177e103 
								
							 
						 
						
							
							
								
								The FP stack doesn't support UNDEF, ask the legalizer to legalize it  
							
							 
							
							... 
							
							
							
							instead of lying and saying we have it.
llvm-svn: 25775 
							
						 
						
							2006-01-29 06:44:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								61c9a8e942 
								
							 
						 
						
							
							
								
								Targets all now request ConstantFP to be legalized into TargetConstantFP.  
							
							 
							
							... 
							
							
							
							'fpimm' in .td files is now TargetConstantFP.
llvm-svn: 25771 
							
						 
						
							2006-01-29 06:26:08 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ccd2a20c4b 
								
							 
						 
						
							
							
								
								silence a warning  
							
							 
							
							... 
							
							
							
							llvm-svn: 25745 
							
						 
						
							2006-01-28 10:34:47 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a814f0b31c 
								
							 
						 
						
							
							
								
								Bye bye Pattern ISel, hello DAG ISel.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25700 
							
						 
						
							2006-01-27 21:26:54 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								8c47c3a3b1 
								
							 
						 
						
							
							
								
								Remove TLI.LowerReturnTo, and just let targets custom lower ISD::RET for  
							
							 
							
							... 
							
							
							
							the same functionality.  This addresses another piece of bug 680.  Next,
on to fixing Alpha VAARG, which I broke last time.
llvm-svn: 25696 
							
						 
						
							2006-01-27 21:09:22 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								cde9e30bc6 
								
							 
						 
						
							
							
								
								x86 CPU detection and proper subtarget support  
							
							 
							
							... 
							
							
							
							llvm-svn: 25679 
							
						 
						
							2006-01-27 08:10:46 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								944d1e91ea 
								
							 
						 
						
							
							
								
								When trying to fold X86::SETCC into a Select, make a copy if it has more than  
							
							 
							
							... 
							
							
							
							one use. This allows more CMOV instructions.
llvm-svn: 25634 
							
						 
						
							2006-01-26 02:13:10 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								e74795cd70 
								
							 
						 
						
							
							
								
								First part of bug 680:  
							
							 
							
							... 
							
							
							
							Remove TLI.LowerVA* and replace it with SDNodes that are lowered the same
way as everything else.
llvm-svn: 25606 
							
						 
						
							2006-01-25 18:21:52 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								83eeefbbd1 
								
							 
						 
						
							
							
								
								X86 prefer scheduling for reduced register pressure.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25602 
							
						 
						
							2006-01-25 09:15:17 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								aff0800fd1 
								
							 
						 
						
							
							
								
								Fix a selectcc lowering bug. Make a copy of X86ISD::CMP when folding it.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25596 
							
						 
						
							2006-01-25 09:05:09 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								27d30a5f42 
								
							 
						 
						
							
							
								
								use ESP directly, not a copy of ESP into some other register for fastcc calls  
							
							 
							
							... 
							
							
							
							llvm-svn: 25584 
							
						 
						
							2006-01-24 06:14:44 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6f33eaeb81 
								
							 
						 
						
							
							
								
								Emit the copies out of call return registers *after* the ISD::CALLSEQ_END  
							
							 
							
							... 
							
							
							
							node, fixing fastcc and the case where a function has a frame pointer due
to dynamic allocas.
llvm-svn: 25580 
							
						 
						
							2006-01-24 05:17:12 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								335b46dd20 
								
							 
						 
						
							
							
								
								LowerReturn now doesn't have to handle f32 returns.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25484 
							
						 
						
							2006-01-20 18:41:25 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								3d2cc7e2e9 
								
							 
						 
						
							
							
								
								Avoid generating a redundant setcc.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25457 
							
						 
						
							2006-01-19 08:52:46 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								267ba5965e 
								
							 
						 
						
							
							
								
								A obvious typo  
							
							 
							
							... 
							
							
							
							llvm-svn: 25435 
							
						 
						
							2006-01-19 01:46:14 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								621674a19d 
								
							 
						 
						
							
							
								
								SRA shift amount must be in i8  
							
							 
							
							... 
							
							
							
							llvm-svn: 25416 
							
						 
						
							2006-01-18 09:26:46 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								4b3774e0a2 
								
							 
						 
						
							
							
								
								If a call return type is i1, insert a truncate from X86::AL to i1.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25415 
							
						 
						
							2006-01-18 08:08:38 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								feaed4d107 
								
							 
						 
						
							
							
								
								Fix lowering of calls which return f32 values.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25413 
							
						 
						
							2006-01-17 21:58:21 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								0d5b69f734 
								
							 
						 
						
							
							
								
								SSE does not support i64 SINT_TO_FP (FP stack doesn't either, but we custom  
							
							 
							
							... 
							
							
							
							expand it), so ask legalizer to expand i32 UINT_TO_FP.
llvm-svn: 25386 
							
						 
						
							2006-01-17 02:32:49 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								561881f30a 
								
							 
						 
						
							
							
								
								Added a FIXME comment about why FST is currently flagged to fpGETRESULT.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25381 
							
						 
						
							2006-01-17 00:37:42 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								bec9d720b0 
								
							 
						 
						
							
							
								
								Bug fixes: fpGETRESULT should produces a flag result and X86ISD::FST should  
							
							 
							
							... 
							
							
							
							read a flag.
llvm-svn: 25378 
							
						 
						
							2006-01-17 00:19:47 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								911c68d7a8 
								
							 
						 
						
							
							
								
								Fix FP_TO_INT**_IN_MEM lowering.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25368 
							
						 
						
							2006-01-16 21:21:29 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								78c358d1ad 
								
							 
						 
						
							
							
								
								Use the default lowering of ISD::DYNAMIC_STACKALLOC, delete now dead code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25333 
							
						 
						
							2006-01-15 09:00:21 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								2fba8a3aaa 
								
							 
						 
						
							
							
								
								bswap implementation  
							
							 
							
							... 
							
							
							
							llvm-svn: 25312 
							
						 
						
							2006-01-14 03:14:10 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								dba84bbc1e 
								
							 
						 
						
							
							
								
								LHS = X86ISD::CMOVcc LHS, RHS  means LHS = RHS if cc. So the operands must be  
							
							 
							
							... 
							
							
							
							flipped around.
llvm-svn: 25290 
							
						 
						
							2006-01-13 19:51:46 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1a8d918ef1 
								
							 
						 
						
							
							
								
								Enable X86 support for savestack/restorestack  
							
							 
							
							... 
							
							
							
							llvm-svn: 25278 
							
						 
						
							2006-01-13 18:00:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8e2f52e645 
								
							 
						 
						
							
							
								
								expand unsupported stacksave/stackrestore nodes  
							
							 
							
							... 
							
							
							
							llvm-svn: 25272 
							
						 
						
							2006-01-13 02:42:53 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d7faa4bae1 
								
							 
						 
						
							
							
								
								More typo's. I need new eye glasses...  
							
							 
							
							... 
							
							
							
							llvm-svn: 25261 
							
						 
						
							2006-01-13 01:17:24 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								731423f36a 
								
							 
						 
						
							
							
								
								Oops. Typo.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25260 
							
						 
						
							2006-01-13 01:06:49 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								fb22e86c4d 
								
							 
						 
						
							
							
								
								Fix a SETCC / BRCOND folding bug.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25259 
							
						 
						
							2006-01-13 01:03:02 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6305e50ee1 
								
							 
						 
						
							
							
								
								Fix sint_to_fp (fild*) support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25257 
							
						 
						
							2006-01-12 22:54:21 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								84dc9b55f0 
								
							 
						 
						
							
							
								
								X86ISD::SETCC (e.g. SETEr) produces a flag (so multiple SETCC can be  
							
							 
							
							... 
							
							
							
							linked together).
llvm-svn: 25247 
							
						 
						
							2006-01-12 08:27:59 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b94db9e9a4 
								
							 
						 
						
							
							
								
								* Materialize GlobalAddress and ExternalSym with MOV32ri rather than  
							
							 
							
							... 
							
							
							
							LEA32r.
* Do not lower GlobalAddress to TargetGlobalAddress. Let isel does it.
llvm-svn: 25246 
							
						 
						
							2006-01-12 07:56:47 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6d2ab04463 
								
							 
						 
						
							
							
								
								Added ROTL and ROTR.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25232 
							
						 
						
							2006-01-11 23:20:05 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								ae986f1f1e 
								
							 
						 
						
							
							
								
								Support for MEMCPY and MEMSET.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25226 
							
						 
						
							2006-01-11 22:15:48 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								1b8121b227 
								
							 
						 
						
							
							
								
								Add bswap, rotl, and rotr nodes  
							
							 
							
							... 
							
							
							
							Add dag combiner code to recognize rotl, rotr
Add ppc code to match rotl
Targets should add rotl/rotr patterns if they have them
llvm-svn: 25222 
							
						 
						
							2006-01-11 21:21:00 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								bc7a0f44bd 
								
							 
						 
						
							
							
								
								* Add special entry code main() (to set x87 to 64-bit precision).  
							
							 
							
							... 
							
							
							
							* Allow a register node as SelectAddr() base.
* ExternalSymbol -> TargetExternalSymbol as direct function callee.
* Use X86::ESP register rather than CopyFromReg(X86::ESP) as stack ptr for
  call parmater passing.
llvm-svn: 25207 
							
						 
						
							2006-01-11 06:09:51 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								339edad775 
								
							 
						 
						
							
							
								
								SSE cmov support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25190 
							
						 
						
							2006-01-11 00:33:36 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								73a1ad975e 
								
							 
						 
						
							
							
								
								FP_TO_INT*_IN_MEM and x87 FP Select support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25188 
							
						 
						
							2006-01-10 20:26:56 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								12181af0c7 
								
							 
						 
						
							
							
								
								More typos  
							
							 
							
							... 
							
							
							
							llvm-svn: 25162 
							
						 
						
							2006-01-09 22:29:54 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								77fa9195cd 
								
							 
						 
						
							
							
								
								typo  
							
							 
							
							... 
							
							
							
							llvm-svn: 25160 
							
						 
						
							2006-01-09 20:49:21 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								9c249c37f8 
								
							 
						 
						
							
							
								
								Support for ADD_PARTS, SUB_PARTS, SHL_PARTS, SHR_PARTS, and SRA_PARTS.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25158 
							
						 
						
							2006-01-09 18:33:28 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								172fce7050 
								
							 
						 
						
							
							
								
								* Fast call support.  
							
							 
							
							... 
							
							
							
							* FP cmp, setcc, etc.
llvm-svn: 25117 
							
						 
						
							2006-01-06 00:43:03 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								deeafa0f00 
								
							 
						 
						
							
							
								
								Had expand logic backward.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25105 
							
						 
						
							2006-01-05 01:47:43 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								762e9ec06c 
								
							 
						 
						
							
							
								
								Added initial support for DEBUG_LABEL allowing debug specific labels to be  
							
							 
							
							... 
							
							
							
							inserted in the code.
llvm-svn: 25104 
							
						 
						
							2006-01-05 01:25:28 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								45e19098a6 
								
							 
						 
						
							
							
								
								DAG based isel call support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25103 
							
						 
						
							2006-01-05 00:27:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8258489ca4 
								
							 
						 
						
							
							
								
								Fix a problem duraid pointed out to me compiling kc++ with -enable-x86-fastcc  
							
							 
							
							... 
							
							
							
							llvm-svn: 25024 
							
						 
						
							2005-12-27 03:02:18 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5c59d49630 
								
							 
						 
						
							
							
								
								More X86 floating point patterns.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24990 
							
						 
						
							2005-12-23 07:31:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								30107e65c8 
								
							 
						 
						
							
							
								
								make sure bit_convert's are expanded  
							
							 
							
							... 
							
							
							
							llvm-svn: 24979 
							
						 
						
							2005-12-23 05:15:23 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								9cdc16c6d3 
								
							 
						 
						
							
							
								
								* Fix a GlobalAddress lowering bug.  
							
							 
							
							... 
							
							
							
							* Teach DAG combiner about X86ISD::SETCC by adding a TargetLowering hook.
llvm-svn: 24921 
							
						 
						
							2005-12-21 23:05:39 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								9e296bee9a 
								
							 
						 
						
							
							
								
								Disengage DEBUG_LOC from non-PPC targets.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24919 
							
						 
						
							2005-12-21 20:51:37 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								c1583dbd63 
								
							 
						 
						
							
							
								
								* Added support for X86 RET with an additional operand to specify number of  
							
							 
							
							... 
							
							
							
							bytes to pop off stack.
* Added support for X86 SETCC.
llvm-svn: 24917 
							
						 
						
							2005-12-21 20:21:51 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a74ce62746 
								
							 
						 
						
							
							
								
								* Added lowering hook for external weak global address. It inserts a load  
							
							 
							
							... 
							
							
							
							for Darwin.
* Added lowering hook for ISD::RET. It inserts CopyToRegs for the return
  value (or store / fld / copy to ST(0) for floating point value). This
  eliminate the need to write C++ code to handle RET with variable number
  of operands.
llvm-svn: 24888 
							
						 
						
							2005-12-21 02:39:21 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6af02635a7 
								
							 
						 
						
							
							
								
								Added a hook to print out names of target specific DAG nodes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24877 
							
						 
						
							2005-12-20 06:22:03 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6fc31046aa 
								
							 
						 
						
							
							
								
								X86 conditional branch support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24870 
							
						 
						
							2005-12-19 23:12:38 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								f3b16bc5a0 
								
							 
						 
						
							
							
								
								Remove a few lines of dead code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24768 
							
						 
						
							2005-12-17 07:18:44 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								225a4d0d6d 
								
							 
						 
						
							
							
								
								X86 lowers SELECT to a cmp / test followed by a conditional move.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24754 
							
						 
						
							2005-12-17 01:21:05 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								74151ba279 
								
							 
						 
						
							
							
								
								* Promote all 1 bit entities to 8 bit.  
							
							 
							
							... 
							
							
							
							* Handling extload (1 bit -> 8 bit) and remove C++ code that handle 1 bit
zextload.
llvm-svn: 24726 
							
						 
						
							2005-12-15 19:49:23 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3225733e65 
								
							 
						 
						
							
							
								
								X86 doesn't support sextinreg for 8-bit things either.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24631 
							
						 
						
							2005-12-07 17:59:14 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9c415364cf 
								
							 
						 
						
							
							
								
								No targets support line number info yet.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24513 
							
						 
						
							2005-11-29 06:16:21 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6c1ca888d4 
								
							 
						 
						
							
							
								
								Lower READCYCLECOUNTER correctly, preserving the chain result  
							
							 
							
							... 
							
							
							
							llvm-svn: 24438 
							
						 
						
							2005-11-20 22:57:19 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6df9e11989 
								
							 
						 
						
							
							
								
								use chain operands to ensure the copies don't wander from the rdtsc instruction.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24434 
							
						 
						
							2005-11-20 22:01:40 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								0bf68ae434 
								
							 
						 
						
							
							
								
								The second patch of X86 support for read cycle counter.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24430 
							
						 
						
							2005-11-20 21:41:10 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								76ac068568 
								
							 
						 
						
							
							
								
								Separate X86ISelLowering stuff out from the X86ISelPattern.cpp file.  Patch  
							
							 
							
							... 
							
							
							
							contributed by Evan Cheng.
llvm-svn: 24358 
							
						 
						
							2005-11-15 00:40:23 +00:00