9f02fd9d8d 
								
							 
						 
						
							
							
								
								Raise ARM byval minimum size from 32 to 64, addressing a performance  
							
							... 
							
							
							
							regression in mason.  rdar://problem/7662569
llvm-svn: 130444 
							
						 
						
							2011-04-28 21:35:59 +00:00  
				
					
						
							
							
								 
						
							
								dd77c8efa2 
								
							 
						 
						
							
							
								
								Replace unitary array with scalar.  rdar://problem/7662569  
							
							... 
							
							
							
							llvm-svn: 130423 
							
						 
						
							2011-04-28 19:24:47 +00:00  
				
					
						
							
							
								 
						
							
								4b21495e42 
								
							 
						 
						
							
							
								
								Replace SmallVector with an array, as suggested by Frits van Bommel.  rdar://problem/7662569  
							
							... 
							
							
							
							llvm-svn: 130417 
							
						 
						
							2011-04-28 18:16:06 +00:00  
				
					
						
							
							
								 
						
							
								f2752a3938 
								
							 
						 
						
							
							
								
								Re-enable byval for ARM in clang.  rdar://problem/7662569  
							
							... 
							
							
							
							llvm-svn: 130312 
							
						 
						
							2011-04-27 17:24:02 +00:00  
				
					
						
							
							
								 
						
							
								6f095d613a 
								
							 
						 
						
							
							
								
								Temporarily revert r130176, it appears to have broken a few tests.  
							
							... 
							
							
							
							llvm-svn: 130179 
							
						 
						
							2011-04-26 01:02:04 +00:00  
				
					
						
							
							
								 
						
							
								83da03c2ab 
								
							 
						 
						
							
							
								
								Turn on byval parameters in Clang for ARM APCS.  rdar://problem/7662569  
							
							... 
							
							
							
							llvm-svn: 130176 
							
						 
						
							2011-04-25 23:48:12 +00:00  
				
					
						
							
							
								 
						
							
								bd4a3c03ff 
								
							 
						 
						
							
							
								
								PTX: Add default PTX calling conventions  
							
							... 
							
							
							
							llvm-svn: 129987 
							
						 
						
							2011-04-22 11:10:38 +00:00  
				
					
						
							
							
								 
						
							
								e0fda7377e 
								
							 
						 
						
							
							
								
								The 0.98 revision of the x86-64 ABI clarified a lot of things, some  
							
							... 
							
							
							
							of which break strict compatibility with previous compilers.  Implement
one of them and then immediately opt out on Darwin.
llvm-svn: 129899 
							
						 
						
							2011-04-21 01:20:55 +00:00  
				
					
						
							
							
								 
						
							
								14ad22f09d 
								
							 
						 
						
							
							
								
								ADT/Triple: Switch to using .isOSDarwin() predicate.  
							
							... 
							
							
							
							llvm-svn: 129823 
							
						 
						
							2011-04-19 21:43:27 +00:00  
				
					
						
							
							
								 
						
							
								57540c5be0 
								
							 
						 
						
							
							
								
								fix a bunch of comment typos found by codespell.  Patch by  
							
							... 
							
							
							
							Luis Felipe Strano Moraes!
llvm-svn: 129559 
							
						 
						
							2011-04-15 05:22:18 +00:00  
				
					
						
							
							
								 
						
							
								231e875b5c 
								
							 
						 
						
							
							
								
								Implement ARM pcs attribute. Basically it's another way of calling convention selection (AAPCS or  
							
							... 
							
							
							
							AAPCS+VFP), similar to fastcall / stdcall / whatevercall seen on x86.
In particular, all library functions should always be AAPCS regardless of floating point ABI used.
llvm-svn: 129534 
							
						 
						
							2011-04-14 20:06:49 +00:00  
				
					
						
							
							
								 
						
							
								45df3dd3fe 
								
							 
						 
						
							
							
								
								Set AAPCS-VFP calling convention accordingly and hard float ABI command handling.  
							
							... 
							
							
							
							llvm-svn: 128866 
							
						 
						
							2011-04-05 00:23:47 +00:00  
				
					
						
							
							
								 
						
							
								20c0f02cc5 
								
							 
						 
						
							
							
								
								Remove PHINode::reserveOperandSpace(). Instead, add a parameter to  
							
							... 
							
							
							
							PHINode::Create() giving the (known or expected) number of operands.
llvm-svn: 128538 
							
						 
						
							2011-03-30 11:28:58 +00:00  
				
					
						
							
							
								 
						
							
								ec9d2633f1 
								
							 
						 
						
							
							
								
								When we adjust the inline ASM type, we need to take into account an early  
							
							... 
							
							
							
							clobber with the 'y' constraint. Otherwise, we get the wrong return type and an
assert, because it created a '<1 x i64>' vector type instead of the x86_mmx
type.
llvm-svn: 127185 
							
						 
						
							2011-03-07 22:47:14 +00:00  
				
					
						
							
							
								 
						
							
								99cc30c371 
								
							 
						 
						
							
							
								
								Revert "Add CC_Win64ThisCall and set it in the necessary places."  
							
							... 
							
							
							
							This reverts commit 126863.
llvm-svn: 126886 
							
						 
						
							2011-03-02 21:36:49 +00:00  
				
					
						
							
							
								 
						
							
								454464b491 
								
							 
						 
						
							
							
								
								Add CC_Win64ThisCall and set it in the necessary places.  
							
							... 
							
							
							
							llvm-svn: 126863 
							
						 
						
							2011-03-02 19:36:23 +00:00  
				
					
						
							
							
								 
						
							
								f8a6e802f9 
								
							 
						 
						
							
							
								
								lib/CodeGen/TargetInfo.cpp: On Win64, arg i128 should be emitted as INDIRECT.  
							
							... 
							
							
							
							mingw-w64's i128 tweak should be done with x86_64-mingw32.
llvm-svn: 126186 
							
						 
						
							2011-02-22 03:56:57 +00:00  
				
					
						
							
							
								 
						
							
								8f5cf74c77 
								
							 
						 
						
							
							
								
								Re-instate r125819 and r125820 with no functionality change  
							
							... 
							
							
							
							llvm-svn: 126060 
							
						 
						
							2011-02-19 23:03:58 +00:00  
				
					
						
							
							
								 
						
							
								a6d2bff0c5 
								
							 
						 
						
							
							
								
								Revert 125820 and 125819 to fix PR9266.  
							
							... 
							
							
							
							llvm-svn: 126050 
							
						 
						
							2011-02-19 21:39:31 +00:00  
				
					
						
							
							
								 
						
							
								3ae6caaf1b 
								
							 
						 
						
							
							
								
								Move TargetInfo::adjustInlineAsmType to TargetCodeGenInfo  
							
							... 
							
							
							
							llvm-svn: 125819 
							
						 
						
							2011-02-18 02:24:56 +00:00  
				
					
						
							
							
								 
						
							
								31ea2f14bc 
								
							 
						 
						
							
							
								
								Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 instead.  
							
							... 
							
							
							
							No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32.
llvm-svn: 125742 
							
						 
						
							2011-02-17 08:51:38 +00:00  
				
					
						
							
							
								 
						
							
								029d74b264 
								
							 
						 
						
							
							
								
								Fix whitespace.  
							
							... 
							
							
							
							llvm-svn: 125741 
							
						 
						
							2011-02-17 08:50:50 +00:00  
				
					
						
							
							
								 
						
							
								24f1d3e60a 
								
							 
						 
						
							
							
								
								Add NetBSD target support. Patch by Joerg Sonnenberger.  
							
							... 
							
							
							
							llvm-svn: 124736 
							
						 
						
							2011-02-02 18:59:27 +00:00  
				
					
						
							
							
								 
						
							
								e03c603624 
								
							 
						 
						
							
							
								
								lib/CodeGen/TargetInfo.cpp: Fix coding style and erase an obsolete comment.  
							
							... 
							
							
							
							llvm-svn: 123790 
							
						 
						
							2011-01-19 00:11:33 +00:00  
				
					
						
							
							
								 
						
							
								bd91f50190 
								
							 
						 
						
							
							
								
								lib/CodeGen/TargetInfo.cpp: Add Win64 calling conversion.  
							
							... 
							
							
							
							FIXME: It would be incompatible to Microsoft's in one point.
On mingw64-gcc, {i128} is expanded for args and returned as {rax, rdx}.
llvm-svn: 123692 
							
						 
						
							2011-01-17 22:56:31 +00:00  
				
					
						
							
							
								 
						
							
								b9fa00e0c2 
								
							 
						 
						
							
							
								
								Remove special handling for opaque Neon vector types.  
							
							... 
							
							
							
							Clang does not wrap the vectors in structs anymore so this isn't needed.
llvm-svn: 123241 
							
						 
						
							2011-01-11 16:53:49 +00:00  
				
					
						
							
							
								 
						
							
								bd4520b535 
								
							 
						 
						
							
							
								
								Move DefaultABIInfo::classifyReturnType where it belongs.  No functional change.  
							
							... 
							
							
							
							llvm-svn: 123195 
							
						 
						
							2011-01-10 23:54:17 +00:00  
				
					
						
							
							
								 
						
							
								36a1f68fec 
								
							 
						 
						
							
							
								
								1. Add some ABI information for the Microblaze.  
							
							... 
							
							
							
							2. Add attibutes "interrupt_handler" and "save_volatiles" for the Microblaze target.
llvm-svn: 122184 
							
						 
						
							2010-12-19 19:57:51 +00:00  
				
					
						
							
							
								 
						
							
								8c173cc364 
								
							 
						 
						
							
							
								
								Use a twine.  
							
							... 
							
							
							
							llvm-svn: 118892 
							
						 
						
							2010-11-12 15:42:18 +00:00  
				
					
						
							
							
								 
						
							
								fd88a6160d 
								
							 
						 
						
							
							
								
								Rename getBaseClassOffset to getBaseClassOffsetInBits and introduce a getBaseClassOffset which returns the offset in CharUnits. Do the same thing for getVBaseClassOffset.  
							
							... 
							
							
							
							llvm-svn: 117881 
							
						 
						
							2010-10-31 23:22:37 +00:00  
				
					
						
							
							
								 
						
							
								f5a1fbcdf3 
								
							 
						 
						
							
							
								
								Fix Whitespace.  
							
							... 
							
							
							
							llvm-svn: 116798 
							
						 
						
							2010-10-19 06:39:39 +00:00  
				
					
						
							
							
								 
						
							
								9987c0ea42 
								
							 
						 
						
							
							
								
								We shouldn't keep track of MMX registers "needed" separately from the SSE  
							
							... 
							
							
							
							registers needed.
llvm-svn: 116772 
							
						 
						
							2010-10-18 23:51:38 +00:00  
				
					
						
							
							
								 
						
							
								5cd41c4b13 
								
							 
						 
						
							
							
								
								Reapply r116684 with fixes. The test cases needed to be updated.  
							
							... 
							
							
							
							llvm-svn: 116696 
							
						 
						
							2010-10-18 03:41:31 +00:00  
				
					
						
							
							
								 
						
							
								c7c9be661f 
								
							 
						 
						
							
							
								
								Temporarily revert r116684. It was causing failures with  
							
							... 
							
							
							
							Clang :: CodeGen/x86_32-arguments-darwin.c
    Clang :: CodeGen/x86_32-arguments-linux.c
llvm-svn: 116687 
							
						 
						
							2010-10-17 07:58:46 +00:00  
				
					
						
							
							
								 
						
							
								812f4b123e 
								
							 
						 
						
							
							
								
								The "gcc.dg/compat/vector-1 -m32" test was broken after the MMX rewrite. The  
							
							... 
							
							
							
							function parameters weren't converted to use the correct type (x86_mmx). Add a
check, similar to the one in llvm-gcc, to see if we need the x86_mmx type for
that function parameter. If so, it coerces the type to be that.
llvm-svn: 116684 
							
						 
						
							2010-10-17 07:38:01 +00:00  
				
					
						
							
							
								 
						
							
								a09e8efd1f 
								
							 
						 
						
							
							
								
								Per discussion with Sanjiv, remove the PIC16 target from mainline.  When/if  
							
							... 
							
							
							
							it comes back, it will be largely a rewrite, so keeping the old codebase
in tree isn't helping anyone.
llvm-svn: 116191 
							
						 
						
							2010-10-11 05:44:49 +00:00  
				
					
						
							
							
								 
						
							
								19964dbe3b 
								
							 
						 
						
							
							
								
								IRgen/ABI/ARM: Return large vectors in memory.  
							
							... 
							
							
							
							llvm-svn: 114619 
							
						 
						
							2010-09-23 01:54:32 +00:00  
				
					
						
							
							
								 
						
							
								b34b08098c 
								
							 
						 
						
							
							
								
								IRgen/ABI/ARM: Trust the backend to pass vectors correctly for the given ABI.  
							
							... 
							
							
							
							- Therefore, we can lower out the NEON wrapper structs and pass the vectors
   directly. This makes a huge difference in the cleanliness of the IR after
   optimization.
 - I will trust, but verify, via future ABITest testing (for APCS-GNU, at
   least).
llvm-svn: 114618 
							
						 
						
							2010-09-23 01:54:28 +00:00  
				
					
						
							
							
								 
						
							
								dd38fbc7fb 
								
							 
						 
						
							
							
								
								IRgen/ABI/x86-32: Realign indirect arguments when the ABI requires us to pass  
							
							... 
							
							
							
							them with a smaller alignment than the rest of codegen expects.
llvm-svn: 114115 
							
						 
						
							2010-09-16 20:42:06 +00:00  
				
					
						
							
							
								 
						
							
								7b7c2937ef 
								
							 
						 
						
							
							
								
								IRgen/ABI: Add support for realigning structures which are passed by indirect  
							
							... 
							
							
							
							reference.
llvm-svn: 114114 
							
						 
						
							2010-09-16 20:42:02 +00:00  
				
					
						
							
							
								 
						
							
								ed23de3348 
								
							 
						 
						
							
							
								
								IRgen/ABI/x86_32/Darwin: On Darwin, only structures with SSE vector types get passed  
							
							... 
							
							
							
							with a non-default-stack-ABI-alignment (of 16).
 - This fixes the ABI convenient, but breaks codegen since we now have
   underaligned arguments. Marginal improvement overall though, and will be
   fixed in next commit.
llvm-svn: 114113 
							
						 
						
							2010-09-16 20:42:00 +00:00  
				
					
						
							
							
								 
						
							
								8a6c91ff76 
								
							 
						 
						
							
							
								
								IRgen/x86_32/Linux: Linux seems to align all stack objects to 4 bytes, unlike  
							
							... 
							
							
							
							Darwin. Checked vs the handiest Linux llvm-gcc I had around, someone on Linux is
welcome to investigate more.
llvm-svn: 114112 
							
						 
						
							2010-09-16 20:41:56 +00:00  
				
					
						
							
							
								 
						
							
								d426c8eae3 
								
							 
						 
						
							
							
								
								fix rdar://8360877 a really nasty miscompilation in Boost.Xpressive  
							
							... 
							
							
							
							caused by my ABI work.  Passing:
struct outer {
  int x;
  struct epsilon_matcher {} e;
  int f;
};
as {i32,i32} isn't safe, because the offset of the second element
needs to be at 8 when it is interpreted as a memory value.
llvm-svn: 112686 
							
						 
						
							2010-09-01 00:50:20 +00:00  
				
					
						
							
							
								 
						
							
								be5eb17536 
								
							 
						 
						
							
							
								
								same refactoring as before, this time on the argument side.  
							
							... 
							
							
							
							llvm-svn: 112684 
							
						 
						
							2010-09-01 00:24:35 +00:00  
				
					
						
							
							
								 
						
							
								52b3c13149 
								
							 
						 
						
							
							
								
								refactor some code to cut down on redundancy, no functionality change.  
							
							... 
							
							
							
							llvm-svn: 112683 
							
						 
						
							2010-09-01 00:20:33 +00:00  
				
					
						
							
							
								 
						
							
								04dc957260 
								
							 
						 
						
							
							
								
								Add support for windows x86-64 varargs, patch by Cameron Esfahani!  
							
							... 
							
							
							
							llvm-svn: 112603 
							
						 
						
							2010-08-31 16:44:54 +00:00  
				
					
						
							
							
								 
						
							
								a48fbe8c53 
								
							 
						 
						
							
							
								
								Fix PR8029, a x86-32 ABI regression in introduced in r112211  
							
							... 
							
							
							
							llvm-svn: 112537 
							
						 
						
							2010-08-30 22:03:23 +00:00  
				
					
						
							
							
								 
						
							
								d7e54804ee 
								
							 
						 
						
							
							
								
								improve comments.  
							
							... 
							
							
							
							llvm-svn: 112214 
							
						 
						
							2010-08-26 20:08:43 +00:00  
				
					
						
							
							
								 
						
							
								d774ae9ed1 
								
							 
						 
						
							
							
								
								fix 2xi16 to pass as i32 instead of <2 x i16>.  The former passes in  
							
							... 
							
							
							
							memory (as required) the later now passes in an xmm register.  This
fixes gcc.dg/compat/vector_1 on x86-32.
llvm-svn: 112211 
							
						 
						
							2010-08-26 20:05:13 +00:00  
				
					
						
							
							
								 
						
							
								69e683fb35 
								
							 
						 
						
							
							
								
								vector of long and ulong are also classified as INTEGER in x86-64 abi,  
							
							... 
							
							
							
							this fixes rdar://8358475 a failure of the gcc.dg/compat/vector_1 abi
test.
llvm-svn: 112205 
							
						 
						
							2010-08-26 18:13:50 +00:00