ad4d57a2f5 
								
							 
						 
						
							
							
								
								Determine whether a spill kills the register it's spilling before insertion rather than trying to undo the kill marker afterwards.  
							
							... 
							
							
							
							llvm-svn: 46953 
							
						 
						
							2008-02-11 08:30:52 +00:00  
				
					
						
							
							
								 
						
							
								8d78b0597b 
								
							 
						 
						
							
							
								
								If a vr is already marked alive in a bb, then it has PHI uses that are visited earlier, then it is not killed in the def block (i.e. not dead).  
							
							... 
							
							
							
							llvm-svn: 46763 
							
						 
						
							2008-02-05 20:04:18 +00:00  
				
					
						
							
							
								 
						
							
								f4e5e556fd 
								
							 
						 
						
							
							
								
								Add target triples to these so they don't fail on linux.  
							
							... 
							
							
							
							llvm-svn: 46496 
							
						 
						
							2008-01-29 06:26:07 +00:00  
				
					
						
							
							
								 
						
							
								a60c61dc1a 
								
							 
						 
						
							
							
								
								Need to convert to LLVM code and not C.  
							
							... 
							
							
							
							llvm-svn: 46397 
							
						 
						
							2008-01-26 06:56:08 +00:00  
				
					
						
							
							
								 
						
							
								0b973210f8 
								
							 
						 
						
							
							
								
								Rename the .c to .ll  
							
							... 
							
							
							
							llvm-svn: 46396 
							
						 
						
							2008-01-26 06:53:40 +00:00  
				
					
						
							
							
								 
						
							
								0f69974fdb 
								
							 
						 
						
							
							
								
								Move testcase to the code gen directory.  
							
							... 
							
							
							
							llvm-svn: 46395 
							
						 
						
							2008-01-26 06:53:06 +00:00  
				
					
						
							
							
								 
						
							
								5c94cb3596 
								
							 
						 
						
							
							
								
								Implement flt_rounds for PowerPC.  
							
							... 
							
							
							
							llvm-svn: 46174 
							
						 
						
							2008-01-18 19:55:37 +00:00  
				
					
						
							
							
								 
						
							
								f5b46f7dad 
								
							 
						 
						
							
							
								
								Fix a latent bug exposed by my truncstore patch.  We compiled stfiwx-2.ll to:  
							
							... 
							
							
							
							_test:
	fctiwz f0, f1
	stfiwx f0, 0, r4
	blr 
instead of:
_test:
	fctiwz f0, f1
	stfd f0, -8(r1)
	nop
	nop
	lwz r2, -4(r1)
	stb r2, 0(r4)
	blr 
The former is not correct (stores 4 bytes, not 1).
llvm-svn: 46161 
							
						 
						
							2008-01-18 16:54:56 +00:00  
				
					
						
							
							
								 
						
							
								aebbe4700a 
								
							 
						 
						
							
							
								
								add testcase for regression  
							
							... 
							
							
							
							llvm-svn: 46073 
							
						 
						
							2008-01-16 18:03:52 +00:00  
				
					
						
							
							
								 
						
							
								b17db3afa8 
								
							 
						 
						
							
							
								
								remove darwin/i386 t-t  
							
							... 
							
							
							
							llvm-svn: 45743 
							
						 
						
							2008-01-08 06:52:51 +00:00  
				
					
						
							
							
								 
						
							
								89f36e6b21 
								
							 
						 
						
							
							
								
								Finally implement correct ordered comparisons for PPC, even though  
							
							... 
							
							
							
							the code generated is not wonderful.  This turns a miscompilation into
a code quality bug (noted in the ppc readme).  This fixes PR642, which
is over 2 years old (!).  Nate, please review this.
llvm-svn: 45742 
							
						 
						
							2008-01-08 06:46:30 +00:00  
				
					
						
							
							
								 
						
							
								f47015bc74 
								
							 
						 
						
							
							
								
								Fix a significant code quality regression I introduced on PPC64 quite  
							
							... 
							
							
							
							a while ago.  We now produce:
_foo:
	mflr r0
	std r0, 16(r1)
	ld r2, 16(r1)
	std r2, 0(r3)
	ld r0, 16(r1)
	mtlr r0
	blr 
instead of:
_foo:
	mflr r0
	std r0, 16(r1)
	lis r0, 0
	ori r0, r0, 16
	ldx r2, r1, r0
	std r2, 0(r3)
	ld r0, 16(r1)
	mtlr r0
	blr 
for:
void foo(void **X) {
  *X = __builtin_return_address(0);
}
on ppc64.
llvm-svn: 44701 
							
						 
						
							2007-12-08 07:04:58 +00:00  
				
					
						
							
							
								 
						
							
								f6a8156e4f 
								
							 
						 
						
							
							
								
								implement __builtin_return_addr(0) on ppc.  
							
							... 
							
							
							
							llvm-svn: 44700 
							
						 
						
							2007-12-08 06:59:59 +00:00  
				
					
						
							
							
								 
						
							
								79ae9895f6 
								
							 
						 
						
							
							
								
								Fix a crash on invalid code due to memcpy lowering.  
							
							... 
							
							
							
							llvm-svn: 44378 
							
						 
						
							2007-11-27 22:14:42 +00:00  
				
					
						
							
							
								 
						
							
								6edac0ad1d 
								
							 
						 
						
							
							
								
								Testcase for PR1811  
							
							... 
							
							
							
							llvm-svn: 44244 
							
						 
						
							2007-11-19 21:43:22 +00:00  
				
					
						
							
							
								 
						
							
								a674612d94 
								
							 
						 
						
							
							
								
								Testcase from PR 1508 (although its's somewhat  
							
							... 
							
							
							
							orthogonal to the main problem there)
llvm-svn: 44194 
							
						 
						
							2007-11-16 23:16:35 +00:00  
				
					
						
							
							
								 
						
							
								17b0e3e1ae 
								
							 
						 
						
							
							
								
								Skip over deleted val#'s.  
							
							... 
							
							
							
							llvm-svn: 43700 
							
						 
						
							2007-11-05 06:46:45 +00:00  
				
					
						
							
							
								 
						
							
								b0bfd69684 
								
							 
						 
						
							
							
								
								On second thought. Remove this as it should never be generated in the first  
							
							... 
							
							
							
							place.
llvm-svn: 43400 
							
						 
						
							2007-10-26 20:34:37 +00:00  
				
					
						
							
							
								 
						
							
								6d15b32c15 
								
							 
						 
						
							
							
								
								- Remove the hacky code that forces a memcpy. Alignment is taken care of in the  
							
							... 
							
							
							
							FE.
- Explicitly pass in the alignment of the load & store.
- XFAIL 2007-10-23-UnalignedMemcpy.ll because llc has a bug that crashes on
  unaligned pointers.
llvm-svn: 43398 
							
						 
						
							2007-10-26 20:24:42 +00:00  
				
					
						
							
							
								 
						
							
								e3b859298a 
								
							 
						 
						
							
							
								
								If there's an unaligned memcpy to/from the stack, don't lower it. Just call the  
							
							... 
							
							
							
							memcpy library function instead.
llvm-svn: 43270 
							
						 
						
							2007-10-23 23:32:40 +00:00  
				
					
						
							
							
								 
						
							
								ec271b104c 
								
							 
						 
						
							
							
								
								Temporary solution: added a different set of BCTRL_Macho / BCTRL_ELF with right callee-saved defs set for ppc64.  
							
							... 
							
							
							
							llvm-svn: 43248 
							
						 
						
							2007-10-23 06:42:42 +00:00  
				
					
						
							
							
								 
						
							
								bdbed66333 
								
							 
						 
						
							
							
								
								Use ptr type in the immediate field of a BxA instruction so we don't end up selecting 32-bit call instruction for ppc64.  
							
							... 
							
							
							
							llvm-svn: 43228 
							
						 
						
							2007-10-22 19:46:19 +00:00  
				
					
						
							
							
								 
						
							
								070aca5d25 
								
							 
						 
						
							
							
								
								Pointer arithmetic should be done with the index the same size as the pointer.  
							
							... 
							
							
							
							llvm-svn: 43120 
							
						 
						
							2007-10-18 08:32:37 +00:00  
				
					
						
							
							
								 
						
							
								1366653e2f 
								
							 
						 
						
							
							
								
								Fix a bug handling frame references in ppc inline asm when the frame offset  
							
							... 
							
							
							
							doesn't fit into 16 bits.
llvm-svn: 43032 
							
						 
						
							2007-10-16 18:00:18 +00:00  
				
					
						
							
							
								 
						
							
								c0154c06d6 
								
							 
						 
						
							
							
								
								First round of ppc long double.  call/return and  
							
							... 
							
							
							
							basic arithmetic works.
Rename RTLIB long double functions to distinguish
different flavors of long double; the lib functions
have different names, alas.
llvm-svn: 42644 
							
						 
						
							2007-10-05 20:04:43 +00:00  
				
					
						
							
							
								 
						
							
								c519c38629 
								
							 
						 
						
							
							
								
								Add explicit triples to avoid default behavior that varies by host.  
							
							... 
							
							
							
							llvm-svn: 41959 
							
						 
						
							2007-09-14 20:37:18 +00:00  
				
					
						
							
							
								 
						
							
								d8317967aa 
								
							 
						 
						
							
							
								
								Fixed a typo that's causing a missing kill marker.  
							
							... 
							
							
							
							llvm-svn: 41893 
							
						 
						
							2007-09-12 23:02:04 +00:00  
				
					
						
							
							
								 
						
							
								c16847b157 
								
							 
						 
						
							
							
								
								Sometimes a MI can define a register as well as defining a super-register at the  
							
							... 
							
							
							
							same time. Do not mark the "smaller" def as dead.
llvm-svn: 41871 
							
						 
						
							2007-09-11 22:34:47 +00:00  
				
					
						
							
							
								 
						
							
								7a9935c31f 
								
							 
						 
						
							
							
								
								this is not infinite recursion.  
							
							... 
							
							
							
							llvm-svn: 41806 
							
						 
						
							2007-09-10 21:16:23 +00:00  
				
					
						
							
							
								 
						
							
								29e6ac4281 
								
							 
						 
						
							
							
								
								Implement misaligned FP loads and stores.  
							
							... 
							
							
							
							llvm-svn: 41786 
							
						 
						
							2007-09-08 19:29:23 +00:00  
				
					
						
							
							
								 
						
							
								9929bc403d 
								
							 
						 
						
							
							
								
								Add missing index versions of instructions to the map.  
							
							... 
							
							
							
							llvm-svn: 41776 
							
						 
						
							2007-09-07 22:01:02 +00:00  
				
					
						
							
							
								 
						
							
								6480cc6f8c 
								
							 
						 
						
							
							
								
								Change all floating constants that are not exactly  
							
							... 
							
							
							
							representable to use hex format.
llvm-svn: 41722 
							
						 
						
							2007-09-05 17:50:36 +00:00  
				
					
						
							
							
								 
						
							
								b9bf812ba5 
								
							 
						 
						
							
							
								
								Add the 64-bit versions of the DS* Altivec instructions.  
							
							... 
							
							
							
							llvm-svn: 41717 
							
						 
						
							2007-09-05 04:05:20 +00:00  
				
					
						
							
							
								 
						
							
								4dbd9f254a 
								
							 
						 
						
							
							
								
								Fix for PR1613: added 64-bit rotate left PPC instructions and patterns.  
							
							... 
							
							
							
							llvm-svn: 41711 
							
						 
						
							2007-09-04 20:20:29 +00:00  
				
					
						
							
							
								 
						
							
								544fdd27fb 
								
							 
						 
						
							
							
								
								update test to check that codegen works with llvm.used in llvm.metadata section  
							
							... 
							
							
							
							llvm-svn: 41289 
							
						 
						
							2007-08-22 19:36:31 +00:00  
				
					
						
							
							
								 
						
							
								f9dd170e36 
								
							 
						 
						
							
							
								
								Convert tests using "| wc -l | grep ..." to use the count script.  
							
							... 
							
							
							
							llvm-svn: 41097 
							
						 
						
							2007-08-15 13:36:28 +00:00  
				
					
						
							
							
								 
						
							
								859a52072e 
								
							 
						 
						
							
							
								
								Test case for PR1596.  
							
							... 
							
							
							
							llvm-svn: 41085 
							
						 
						
							2007-08-14 23:21:10 +00:00  
				
					
						
							
							
								 
						
							
								7132e00de7 
								
							 
						 
						
							
							
								
								This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future.  
							
							... 
							
							
							
							This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported.
llvm-svn: 40807 
							
						 
						
							2007-08-04 01:51:18 +00:00  
				
					
						
							
							
								 
						
							
								03708acd4e 
								
							 
						 
						
							
							
								
								new testcase  
							
							... 
							
							
							
							llvm-svn: 40636 
							
						 
						
							2007-07-31 16:18:25 +00:00  
				
					
						
							
							
								 
						
							
								4ff9fb14f6 
								
							 
						 
						
							
							
								
								Fix a bug in getCopyFromParts turned up in the testcase for PR1132.  
							
							... 
							
							
							
							llvm-svn: 40598 
							
						 
						
							2007-07-30 19:09:17 +00:00  
				
					
						
							
							
								 
						
							
								c8780b0ae9 
								
							 
						 
						
							
							
								
								New test case.  
							
							... 
							
							
							
							llvm-svn: 40587 
							
						 
						
							2007-07-30 07:52:03 +00:00  
				
					
						
							
							
								 
						
							
								314e1cb7ee 
								
							 
						 
						
							
							
								
								For PR1553:  
							
							... 
							
							
							
							Change the keywords for the zext and sext parameter attributes to be 
zeroext and signext so they don't conflict with the keywords for the
instructions of the same name. This gets around the ambiguity.
llvm-svn: 40069 
							
						 
						
							2007-07-19 23:13:04 +00:00  
				
					
						
							
							
								 
						
							
								c6e67a6126 
								
							 
						 
						
							
							
								
								Remove the trailing semicolon from function declarations in LLVM,  
							
							... 
							
							
							
							where it's interpreted as a comment, not part of the syntax.
llvm-svn: 39920 
							
						 
						
							2007-07-16 13:37:30 +00:00  
				
					
						
							
							
								 
						
							
								42d12da712 
								
							 
						 
						
							
							
								
								these tests do not need a triple on Solaris. Thanks sabre!  
							
							... 
							
							
							
							llvm-svn: 39803 
							
						 
						
							2007-07-13 10:08:18 +00:00  
				
					
						
							
							
								 
						
							
								1ef777cbb4 
								
							 
						 
						
							
							
								
								fix the remaining 3 testcases that missed a target triple  
							
							... 
							
							
							
							llvm-svn: 39773 
							
						 
						
							2007-07-12 13:21:08 +00:00  
				
					
						
							
							
								 
						
							
								f8f531bf69 
								
							 
						 
						
							
							
								
								Change getCopyToParts and getCopyFromParts to always use target-endian  
							
							... 
							
							
							
							register ordering, for both physical and virtual registers. Update the PPC
target lowering for calls to expect registers for the call result to
already be in target order.
llvm-svn: 38471 
							
						 
						
							2007-07-09 20:59:04 +00:00  
				
					
						
							
							
								 
						
							
								6fec9a91b7 
								
							 
						 
						
							
							
								
								add target triple to fix PR1546  
							
							... 
							
							
							
							llvm-svn: 38462 
							
						 
						
							2007-07-09 17:14:58 +00:00  
				
					
						
							
							
								 
						
							
								bab5355ff4 
								
							 
						 
						
							
							
								
								Add an explicit triple to the big-endian tests so that the assembly  
							
							... 
							
							
							
							output format is always consistent with what the greps are looking for.
llvm-svn: 37943 
							
						 
						
							2007-07-06 13:15:51 +00:00  
				
					
						
							
							
								 
						
							
								da784693c3 
								
							 
						 
						
							
							
								
								Fix test.  
							
							... 
							
							
							
							llvm-svn: 37928 
							
						 
						
							2007-07-05 23:00:50 +00:00  
				
					
						
							
							
								 
						
							
								d258e80583 
								
							 
						 
						
							
							
								
								Add a parameter to getCopyToParts and getCopyFromParts to specify whether  
							
							... 
							
							
							
							endian swapping should be done, and update the code to use it. This fixes
some register ordering issues on big-endian systems, such as PowerPC,
introduced by the recent illegal by-val arguments changes.
llvm-svn: 37921 
							
						 
						
							2007-07-05 20:12:34 +00:00