4dd383120f 
								
							 
						 
						
							
							
								
								Invert the TargetLowering flag that controls divide by consant expansion.  
							
							... 
							
							
							
							Add a new flag to TargetLowering indicating if the target has really cheap
  signed division by powers of two, make ppc use it.  This will probably go
  away in the future.
Implement some more ISD::SDIV folds in the dag combiner
Remove now dead code in the x86 backend.
llvm-svn: 23853 
							
						 
						
							2005-10-21 00:02:42 +00:00  
				
					
						
							
							
								 
						
							
								c6f067a8c4 
								
							 
						 
						
							
							
								
								Move the target constant divide optimization up into the dag combiner, so  
							
							... 
							
							
							
							that the nodes can be folded with other nodes, and we can not duplicate
code in every backend.  Alpha will probably want this too.
llvm-svn: 23835 
							
						 
						
							2005-10-20 02:15:44 +00:00  
				
					
						
							
							
								 
						
							
								78afac2ddd 
								
							 
						 
						
							
							
								
								Add the ability to lower return instructions to TargetLowering.  This  
							
							... 
							
							
							
							allows us to lower legal return types to something else, to meet ABI
requirements (such as that i64 be returned in two i32 regs on Darwin/ppc).
llvm-svn: 23802 
							
						 
						
							2005-10-18 23:23:37 +00:00  
				
					
						
							
							
								 
						
							
								e74dfbb9ce 
								
							 
						 
						
							
							
								
								Do the right thing and enable 64 bit regs under the control of a subtarget  
							
							... 
							
							
							
							option.  Currently the only way to enable this is to specify the
64bitregs mattr flag.  It is never enabled by default on any config yet.
llvm-svn: 23779 
							
						 
						
							2005-10-18 00:56:42 +00:00  
				
					
						
							
							
								 
						
							
								0b71e007ef 
								
							 
						 
						
							
							
								
								First bits of 64 bit PowerPC stuff, currently disabled.  A lot of this is  
							
							... 
							
							
							
							purely mechanical.
llvm-svn: 23778 
							
						 
						
							2005-10-18 00:28:58 +00:00  
				
					
						
							
							
								 
						
							
								6cca84e43c 
								
							 
						 
						
							
							
								
								More PPC32 -> PPC changes, as well as merging some classes that were  
							
							... 
							
							
							
							redundant after the change.
llvm-svn: 23759 
							
						 
						
							2005-10-16 05:39:50 +00:00  
				
					
						
							
							
								 
						
							
								6f3b954662 
								
							 
						 
						
							
							
								
								Rename PPC32*.h to PPC*.h  
							
							... 
							
							
							
							This completes the grand PPC file renaming
llvm-svn: 23745 
							
						 
						
							2005-10-14 23:59:06 +00:00  
				
					
						
							
							
								 
						
							
								a17e6c486c 
								
							 
						 
						
							
							
								
								fix an f32/f64 type mismatch  
							
							... 
							
							
							
							llvm-svn: 23587 
							
						 
						
							2005-10-02 06:37:13 +00:00  
				
					
						
							
							
								 
						
							
								d3eee1a09b 
								
							 
						 
						
							
							
								
								Modify the ppc backend to use two register classes for FP: F8RC and F4RC.  
							
							... 
							
							
							
							These are used to represent float and double values, and the two regclasses
contain the same physical registers.
llvm-svn: 23577 
							
						 
						
							2005-10-01 01:35:02 +00:00  
				
					
						
							
							
								 
						
							
								d3ea19b51a 
								
							 
						 
						
							
							
								
								Add FP versions of the binary operators, keeping the int and fp worlds seperate.  
							
							... 
							
							
							
							llvm-svn: 23506 
							
						 
						
							2005-09-28 22:29:58 +00:00  
				
					
						
							
							
								 
						
							
								a028e7a39c 
								
							 
						 
						
							
							
								
								Darwin, like many BSD systems, has a setjmp/longjmp which saves the signal mask  
							
							... 
							
							
							
							on setjmp calls and restores it on longjmp calls (both of which require syscalls).
This makes the calls REALLY slow.  Use _setjmp/_longjmp instead.  This speeds up
hexxagon from 120.31s to 15.68s: from 5.53x slower than GCC to 28% faster than GCC.
llvm-svn: 23482 
							
						 
						
							2005-09-27 22:18:25 +00:00  
				
					
						
							
							
								 
						
							
								0f965a615e 
								
							 
						 
						
							
							
								
								Change the arg lowering code to use copyfromreg from vregs associated  
							
							... 
							
							
							
							with incoming arguments instead of the pregs themselves.  This fixes
the scheduler from causing problems by moving a copyfromreg for an argument
to after a select_cc node (now it can, and bad things won't happen).
llvm-svn: 23334 
							
						 
						
							2005-09-13 19:33:40 +00:00  
				
					
						
							
							
								 
						
							
								aa6cbd90c5 
								
							 
						 
						
							
							
								
								Remove some dead vectors  
							
							... 
							
							
							
							llvm-svn: 23329 
							
						 
						
							2005-09-13 18:47:49 +00:00  
				
					
						
							
							
								 
						
							
								4309c3a785 
								
							 
						 
						
							
							
								
								PowerPC cannot truncstore i1 natively  
							
							... 
							
							
							
							llvm-svn: 23304 
							
						 
						
							2005-09-10 00:21:06 +00:00  
				
					
						
							
							
								 
						
							
								6095214bf0 
								
							 
						 
						
							
							
								
								Implement i64<->fp using the fctidz/fcfid instructions on PowerPC when we  
							
							... 
							
							
							
							are allowed to generate 64-bit-only PowerPC instructions for 32 bit hosts,
such as the PowerPC 970.
This speeds up 189.lucas from 81.99 to 32.64 seconds.
llvm-svn: 23250 
							
						 
						
							2005-09-06 22:03:27 +00:00  
				
					
						
							
							
								 
						
							
								aa3b1fcc58 
								
							 
						 
						
							
							
								
								Decouple fsqrt from gpul optimizations, implementing fsqrt.ll.  
							
							... 
							
							
							
							Remove the -enable-gpopt option which is subsumed by feature flags.
llvm-svn: 23218 
							
						 
						
							2005-09-02 18:33:05 +00:00  
				
					
						
							
							
								 
						
							
								763a3a0fa7 
								
							 
						 
						
							
							
								
								Restore this patch now that the latent bug has been fixed  
							
							... 
							
							
							
							llvm-svn: 23209 
							
						 
						
							2005-09-02 01:24:55 +00:00  
				
					
						
							
							
								 
						
							
								06d440f2ee 
								
							 
						 
						
							
							
								
								Revert the previous patch which causes a mysterious regression in toast.  
							
							... 
							
							
							
							llvm-svn: 23207 
							
						 
						
							2005-09-02 00:47:05 +00:00  
				
					
						
							
							
								 
						
							
								9ee867b93b 
								
							 
						 
						
							
							
								
								Implement small-arguments.ll:test3 by teaching the DAG optimizer that  
							
							... 
							
							
							
							the results of calls to functions returning small values are properly
sign/zero extended.
llvm-svn: 23198 
							
						 
						
							2005-09-01 23:44:32 +00:00  
				
					
						
							
							
								 
						
							
								da2e04c69d 
								
							 
						 
						
							
							
								
								Move FCTIWZ handling out of the instruction selectors and into legalization,  
							
							... 
							
							
							
							getting them out of the business of making stack slots.
llvm-svn: 23180 
							
						 
						
							2005-08-31 21:09:52 +00:00  
				
					
						
							
							
								 
						
							
								e675a08e10 
								
							 
						 
						
							
							
								
								Move SHL,SHR i64 -> legalizer  
							
							... 
							
							
							
							llvm-svn: 23178 
							
						 
						
							2005-08-31 20:23:54 +00:00  
				
					
						
							
							
								 
						
							
								2f03896a0f 
								
							 
						 
						
							
							
								
								lower sra_parts on the dag, implementing it for the dag isel, and exposing  
							
							... 
							
							
							
							the ops to dag optimization.
llvm-svn: 23176 
							
						 
						
							2005-08-31 19:09:57 +00:00  
				
					
						
							
							
								 
						
							
								e3287b85b7 
								
							 
						 
						
							
							
								
								Enable generation of AssertSext and AssertZext in the PPC backend.  
							
							... 
							
							
							
							llvm-svn: 23168 
							
						 
						
							2005-08-31 01:58:39 +00:00  
				
					
						
							
							
								 
						
							
								e75b5e63a7 
								
							 
						 
						
							
							
								
								Fix a bug in my patch for legalizing to fsel.  It cannot handle seteq/setne,  
							
							... 
							
							
							
							which I failed to include when I moved the code over.  This fixes
MallocBench/gs.
llvm-svn: 23140 
							
						 
						
							2005-08-30 00:45:18 +00:00  
				
					
						
							
							
								 
						
							
								62b9a5d1f8 
								
							 
						 
						
							
							
								
								Fix some really strange indentation that xcode likes to use.  
							
							... 
							
							
							
							no xcode, this is not right:
   if (!foo) break;
     X;
llvm-svn: 23138 
							
						 
						
							2005-08-30 00:19:00 +00:00  
				
					
						
							
							
								 
						
							
								9b577f108a 
								
							 
						 
						
							
							
								
								implement SELECT_CC fully for the DAG->DAG isel!  
							
							... 
							
							
							
							llvm-svn: 23101 
							
						 
						
							2005-08-26 21:23:58 +00:00  
				
					
						
							
							
								 
						
							
								b2854fadda 
								
							 
						 
						
							
							
								
								Make fsel emission work with both the pattern and dag-dag selectors, by  
							
							... 
							
							
							
							giving it a non-instruction opcode.  The dag->dag selector used to not
select the operands of the fsel, because it thought that whole tree was
already selected.
llvm-svn: 23091 
							
						 
						
							2005-08-26 20:25:03 +00:00  
				
					
						
							
							
								 
						
							
								7f1fa8eaef 
								
							 
						 
						
							
							
								
								implement the other half of the select_cc -> fsel lowering, which handles  
							
							... 
							
							
							
							when the RHS of the comparison is 0.0.  Turn this on by default.
llvm-svn: 23083 
							
						 
						
							2005-08-26 17:36:52 +00:00  
				
					
						
							
							
								 
						
							
								f3d06c6417 
								
							 
						 
						
							
							
								
								add initial support for converting select_cc -> fsel in the legalizer  
							
							... 
							
							
							
							instead of in the backend.  This currently handles fsel cases with registers,
but doesn't have the 0.0 and -0.0 optimization enabled yet.
Once this is finished, special hack for fp immediates can go away.
llvm-svn: 23075 
							
						 
						
							2005-08-26 00:52:45 +00:00  
				
					
						
							
							
								 
						
							
								65ffd8fbf4 
								
							 
						 
						
							
							
								
								Remove option to make SetCC illegal on PowerPC after long discussion with  
							
							... 
							
							
							
							Chris.  This will be accomplished through correctly modeling CR's and
subregs.
llvm-svn: 23056 
							
						 
						
							2005-08-25 20:01:10 +00:00  
				
					
						
							
							
								 
						
							
								f3ce09b36e 
								
							 
						 
						
							
							
								
								Ack, typo  
							
							... 
							
							
							
							llvm-svn: 22981 
							
						 
						
							2005-08-23 05:45:10 +00:00  
				
					
						
							
							
								 
						
							
								7216ad415b 
								
							 
						 
						
							
							
								
								Add an option to make SetCC illegal as a beta option  
							
							... 
							
							
							
							llvm-svn: 22979 
							
						 
						
							2005-08-23 05:42:36 +00:00  
				
					
						
							
							
								 
						
							
								6267b2c97c 
								
							 
						 
						
							
							
								
								Make UINT_TO_FP and SINT_TO_FP use generic expansion.  
							
							... 
							
							
							
							llvm-svn: 22815 
							
						 
						
							2005-08-17 00:40:22 +00:00  
				
					
						
							
							
								 
						
							
								79f5ebc7b9 
								
							 
						 
						
							
							
								
								updates for changes in nodes  
							
							... 
							
							
							
							llvm-svn: 22808 
							
						 
						
							2005-08-16 21:58:15 +00:00  
				
					
						
							
							
								 
						
							
								371e49515d 
								
							 
						 
						
							
							
								
								Implement BR_CC and BRTWOWAY_CC.  This allows the removal of a rather nasty  
							
							... 
							
							
							
							fixme from the PowerPC backend.  Emit slightly better code for legalizing
select_cc.
llvm-svn: 22805 
							
						 
						
							2005-08-16 19:49:35 +00:00  
				
					
						
							
							
								 
						
							
								f22556d3ad 
								
							 
						 
						
							
							
								
								Pull the LLVM -> DAG lowering code out of the pattern selector so that it  
							
							... 
							
							
							
							can be shared with the DAG->DAG selector.
llvm-svn: 22799 
							
						 
						
							2005-08-16 17:14:42 +00:00