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