Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								54cb1833a4 
								
							 
						 
						
							
							
								
								Use SelectRoot() as entry of any tblgen based isel.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25997 
							
						 
						
							2006-02-05 06:46:41 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d19d51f414 
								
							 
						 
						
							
							
								
								Re-commit the last bit of change that was backed out.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25983 
							
						 
						
							2006-02-05 05:25:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								22b4edfb42 
								
							 
						 
						
							
							
								
								Temporarily revert this patch, which probably breaks with the  
							
							 
							
							... 
							
							
							
							tblgen patch reverted.
llvm-svn: 25971 
							
						 
						
							2006-02-04 09:24:16 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								ce87cac555 
								
							 
						 
						
							
							
								
								Complex pattern's custom matcher should not call Select() on any operands.  
							
							 
							
							... 
							
							
							
							Select them afterwards if it returns true.
llvm-svn: 25968 
							
						 
						
							2006-02-04 08:50:49 +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  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								cde9e30bc6 
								
							 
						 
						
							
							
								
								x86 CPU detection and proper subtarget support  
							
							 
							
							... 
							
							
							
							llvm-svn: 25679 
							
						 
						
							2006-01-27 08:10:46 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								de02d7727f 
								
							 
						 
						
							
							
								
								Add explicit #includes of <iostream>  
							
							 
							
							... 
							
							
							
							llvm-svn: 25515 
							
						 
						
							2006-01-22 23:41:00 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6135a7a546 
								
							 
						 
						
							
							
								
								Didn't mean to check that in.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25436 
							
						 
						
							2006-01-19 01:52:56 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								267ba5965e 
								
							 
						 
						
							
							
								
								A obvious typo  
							
							 
							
							... 
							
							
							
							llvm-svn: 25435 
							
						 
						
							2006-01-19 01:46:14 +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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8869c6f782 
								
							 
						 
						
							
							
								
								silence a warning  
							
							 
							
							... 
							
							
							
							llvm-svn: 25322 
							
						 
						
							2006-01-14 20:11:13 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								2ae799aff0 
								
							 
						 
						
							
							
								
								Select DYNAMIC_STACKALLOC  
							
							 
							
							... 
							
							
							
							llvm-svn: 25225 
							
						 
						
							2006-01-11 22:15:18 +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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7c551268d0 
								
							 
						 
						
							
							
								
								implement FP_REG_KILL insertion for the dag-dag instruction selector  
							
							 
							
							... 
							
							
							
							llvm-svn: 25192 
							
						 
						
							2006-01-11 01:15:34 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								29852a58b0 
								
							 
						 
						
							
							
								
								Fit into 80 cols  
							
							 
							
							... 
							
							
							
							llvm-svn: 25191 
							
						 
						
							2006-01-11 00:46:55 +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
							
						 
						
							 
							
							
							
							
								
							
							
								7c4486215f 
								
							 
						 
						
							
							
								
								* Added undef patterns.  
							
							 
							
							... 
							
							
							
							* Some reorg.
llvm-svn: 25163 
							
						 
						
							2006-01-09 23:10:28 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								92e2797ce2 
								
							 
						 
						
							
							
								
								* Added integer div / rem.  
							
							 
							
							... 
							
							
							
							* Fixed a load folding bug.
llvm-svn: 25136 
							
						 
						
							2006-01-06 23:19:29 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								10d2790d50 
								
							 
						 
						
							
							
								
								ISEL code for MULHU, MULHS, and UNDEF.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25132 
							
						 
						
							2006-01-06 20:36:21 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b03f9b32d2 
								
							 
						 
						
							
							
								
								fold (shl x, 1) -> (add x, x)  
							
							 
							
							... 
							
							
							
							llvm-svn: 25120 
							
						 
						
							2006-01-06 01:06:31 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a5ae6e8320 
								
							 
						 
						
							
							
								
								Added ConstantFP patterns.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25108 
							
						 
						
							2006-01-05 02:08:37 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								45e19098a6 
								
							 
						 
						
							
							
								
								DAG based isel call support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25103 
							
						 
						
							2006-01-05 00:27:02 +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  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								a2f308fc3e 
								
							 
						 
						
							
							
								
								Remove ISD::RET select code. Now tblgen'd.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24889 
							
						 
						
							2005-12-21 02:41:57 +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
							
						 
						
							 
							
							
							
							
								
							
							
								1d9b671de0 
								
							 
						 
						
							
							
								
								It's essential we clear CodeGenMap after isel every basic block!  
							
							 
							
							... 
							
							
							
							llvm-svn: 24867 
							
						 
						
							2005-12-19 22:36:02 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								1d71248392 
								
							 
						 
						
							
							
								
								Darwin API issue: indirect load of external and weak symbols.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24775 
							
						 
						
							2005-12-17 09:13:43 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								bc7708c0e8 
								
							 
						 
						
							
							
								
								Added truncate.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24760 
							
						 
						
							2005-12-17 02:02:50 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								cb19390ead 
								
							 
						 
						
							
							
								
								Added support for cmp, test, and conditional move instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24756 
							
						 
						
							2005-12-17 01:24:02 +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  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								00fcb0017e 
								
							 
						 
						
							
							
								
								Handling zero extension of 1 bit value.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24722 
							
						 
						
							2005-12-15 01:02:48 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								67ed58e22b 
								
							 
						 
						
							
							
								
								When SelectLEAAddr() fails, it shouldn't cause the side effect of having the  
							
							 
							
							... 
							
							
							
							base or index operands being selected.
llvm-svn: 24674 
							
						 
						
							2005-12-12 21:49:40 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								bfd259a2b7 
								
							 
						 
						
							
							
								
								For ISD::RET, if # of operands >= 2, try selection the real data dep. operand  
							
							 
							
							... 
							
							
							
							first before the chain.
e.g.
int X;
int foo(int x)
{
  x += X + 37;
  return x;
}
If chain operand is selected first, we would generate:
	movl X, %eax
	movl 4(%esp), %ecx
	leal 37(%ecx,%eax), %eax
rather than
	movl $37, %eax
	addl 4(%esp), %eax
	addl X, %eax
which does not require %ecx. (Due to ADD32rm not matching.)
llvm-svn: 24673 
							
						 
						
							2005-12-12 20:32:18 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								0d6cfee704 
								
							 
						 
						
							
							
								
								* Added X86 store patterns.  
							
							 
							
							... 
							
							
							
							* Added X86 dec patterns.
llvm-svn: 24654 
							
						 
						
							2005-12-10 00:48:20 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								c9fab31098 
								
							 
						 
						
							
							
								
								* Added intelligence to X86 LEA addressing mode matching routine so it returns  
							
							 
							
							... 
							
							
							
							false if the match is not profitable. e.g. leal 1(%eax), %eax.
* Added patterns for X86 integer loads and LEA32.
llvm-svn: 24635 
							
						 
						
							2005-12-08 02:01:35 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								4b02426130 
								
							 
						 
						
							
							
								
								Proper support for shifts with register shift value.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24559 
							
						 
						
							2005-12-01 00:43:55 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								af2e0373dd 
								
							 
						 
						
							
							
								
								SelectNodeTo now returns its result, we must pay attention to it.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24550 
							
						 
						
							2005-11-30 22:59:19 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								4eb7af9bc9 
								
							 
						 
						
							
							
								
								Added support to STORE and shifts to DAG to DAG isel.  
							
							 
							
							... 
							
							
							
							llvm-svn: 24525 
							
						 
						
							2005-11-30 02:51:20 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3f0f71b92b 
								
							 
						 
						
							
							
								
								Add load and other support to the dag-dag isel.  Patch contributed by Evan  
							
							 
							
							... 
							
							
							
							Cheng!
llvm-svn: 24419 
							
						 
						
							2005-11-19 02:11:08 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5930d3df3d 
								
							 
						 
						
							
							
								
								Add patterns for several simple instructions that take i32 immediates.  
							
							 
							
							... 
							
							
							
							Patch contributed by Evan Cheng!
llvm-svn: 24382 
							
						 
						
							2005-11-16 22:59:19 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								655e7dfd0d 
								
							 
						 
						
							
							
								
								initial step at adding a dag-to-dag isel for X86 backend.  Patch contributed  
							
							 
							
							... 
							
							
							
							by Evan Cheng!
llvm-svn: 24371 
							
						 
						
							2005-11-16 01:54:32 +00:00