Nate Begeman 
							
						 
					 
					
						
						
							
						
						1d9d7427c4 
					 
					
						
						
							
							First bits of 64 bit PowerPC stuff, currently disabled.  A lot of this is  
						
						... 
						
						
						
						purely mechanical.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23778  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-18 00:28:58 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						21e463b2bf 
					 
					
						
						
							
							More PPC32 -> PPC changes, as well as merging some classes that were  
						
						... 
						
						
						
						redundant after the change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23759  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-16 05:39:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						16e71f2f70 
					 
					
						
						
							
							Rename PPC32*.h to PPC*.h  
						
						... 
						
						
						
						This completes the grand PPC file renaming
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23745  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-14 23:59:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7c0d664c21 
					 
					
						
						
							
							fix an f32/f64 type mismatch  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23587  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-02 06:37:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						919c032fa4 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23577  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-10-01 01:35:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						615c2d0920 
					 
					
						
						
							
							Add FP versions of the binary operators, keeping the int and fp worlds seperate.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23506  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-28 22:29:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d145a61f8f 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23482  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-27 22:18:25 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7b738342f0 
					 
					
						
						
							
							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).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23334  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-13 19:33:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						31262ce53d 
					 
					
						
						
							
							Remove some dead vectors  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23329  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-13 18:47:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e6ec9f20c9 
					 
					
						
						
							
							PowerPC cannot truncstore i1 natively  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23304  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-10 00:21:06 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						c09eeec0eb 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23250  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-06 22:03:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1e9de3ed2d 
					 
					
						
						
							
							Decouple fsqrt from gpul optimizations, implementing fsqrt.ll.  
						
						... 
						
						
						
						Remove the -enable-gpopt option which is subsumed by feature flags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23218  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 18:33:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f505949580 
					 
					
						
						
							
							Restore this patch now that the latent bug has been fixed  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23209  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 01:24:55 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5b3224fe7e 
					 
					
						
						
							
							Revert the previous patch which causes a mysterious regression in toast.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23207  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-02 00:47:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2a00daac58 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23198  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-09-01 23:44:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f76053269e 
					 
					
						
						
							
							Move FCTIWZ handling out of the instruction selectors and into legalization,  
						
						... 
						
						
						
						getting them out of the business of making stack slots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23180  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-31 21:09:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						bc11c3482c 
					 
					
						
						
							
							Move SHL,SHR i64 -> legalizer  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23178  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-31 20:23:54 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						eb9b62e35e 
					 
					
						
						
							
							lower sra_parts on the dag, implementing it for the dag isel, and exposing  
						
						... 
						
						
						
						the ops to dag optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23176  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-31 19:09:57 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						49296f1f48 
					 
					
						
						
							
							Enable generation of AssertSext and AssertZext in the PPC backend.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23168  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-31 01:58:39 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6de08f4377 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23140  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-30 00:45:18 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						915fb302b1 
					 
					
						
						
							
							Fix some really strange indentation that xcode likes to use.  
						
						... 
						
						
						
						no xcode, this is not right:
   if (!foo) break;
     X;
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23138  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-30 00:19:00 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8a2d3ca7df 
					 
					
						
						
							
							implement SELECT_CC fully for the DAG->DAG isel!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23101  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 21:23:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0bbea95433 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23091  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 20:25:03 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0b1e4e508b 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23083  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 17:36:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e4bc9ea0a5 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23075  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-26 00:52:45 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						c8e27db5c5 
					 
					
						
						
							
							Remove option to make SetCC illegal on PowerPC after long discussion with  
						
						... 
						
						
						
						Chris.  This will be accomplished through correctly modeling CR's and
subregs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23056  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-25 20:01:10 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						8ca5693c51 
					 
					
						
						
							
							Ack, typo  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22981  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-23 05:45:10 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						a50d53e5ef 
					 
					
						
						
							
							Add an option to make SetCC illegal as a beta option  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22979  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-23 05:42:36 +00:00 
						 
				 
			
				
					
						
							
							
								Jim Laskey 
							
						 
					 
					
						
						
							
						
						ad23c9d4f2 
					 
					
						
						
							
							Make UINT_TO_FP and SINT_TO_FP use generic expansion.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22815  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-17 00:40:22 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a8cd01524f 
					 
					
						
						
							
							updates for changes in nodes  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22808  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-16 21:58:15 +00:00 
						 
				 
			
				
					
						
							
							
								Nate Begeman 
							
						 
					 
					
						
						
							
						
						7cbd525ba8 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22805  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-16 19:49:35 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7c5a3d390a 
					 
					
						
						
							
							Pull the LLVM -> DAG lowering code out of the pattern selector so that it  
						
						... 
						
						
						
						can be shared with the DAG->DAG selector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22799  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-08-16 17:14:42 +00:00