Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								cea3af4e54 
								
							 
						 
						
							
							
								
								Simplify test for whether we need an alloca to hold an indirect return  
							
							 
							
							... 
							
							
							
							value.
 - No functionality change.
llvm-svn: 63859 
							
						 
						
							2009-02-05 09:24:53 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								747865af0c 
								
							 
						 
						
							
							
								
								Implement ABI Indirect sematics for arguments.  
							
							 
							
							... 
							
							
							
							- No intended functionality change, all current ABI implementations
   were only using indirect for complex/aggregate types, which were
   being passed indirectly with the Direct ABIInfo kind.
llvm-svn: 63858 
							
						 
						
							2009-02-05 09:16:39 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								b8b1c679c4 
								
							 
						 
						
							
							
								
								Merge ABIInfo StructRet/ByVal into Indirect.  
							
							 
							
							... 
							
							
							
							- No (intended) functionality change, the semantic changes are to come.
llvm-svn: 63850 
							
						 
						
							2009-02-05 08:00:50 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								c79407fc40 
								
							 
						 
						
							
							
								
								Pull CodeGenFunction::GetUndefRValue() out of EmitUnsupportedRValue.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63845 
							
						 
						
							2009-02-05 07:09:07 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								70245be397 
								
							 
						 
						
							
							
								
								x86-32: Use Ignore to avoid passing empty structs (instead of Expand).  
							
							 
							
							... 
							
							
							
							llvm-svn: 63813 
							
						 
						
							2009-02-05 01:50:07 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								0103574d55 
								
							 
						 
						
							
							
								
								Honor ByVal alignment. Patch by Nate Begeman!  
							
							 
							
							... 
							
							
							
							llvm-svn: 63811 
							
						 
						
							2009-02-05 01:31:19 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								fff09f335d 
								
							 
						 
						
							
							
								
								Unbreak CGFunctionInfo::Profile method and reenable caching of ABI  
							
							 
							
							... 
							
							
							
							information.
llvm-svn: 63799 
							
						 
						
							2009-02-05 00:00:23 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								56e7552c73 
								
							 
						 
						
							
							
								
								Add ABIArgInfo::dump()  
							
							 
							
							... 
							
							
							
							llvm-svn: 63794 
							
						 
						
							2009-02-04 23:24:38 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								fb5fdf1f14 
								
							 
						 
						
							
							
								
								Temporarily disable caching of ABI results; this is going horribly  
							
							 
							
							... 
							
							
							
							wrong in some cases.
llvm-svn: 63780 
							
						 
						
							2009-02-04 21:36:22 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								a45bdbbb6a 
								
							 
						 
						
							
							
								
								Add asserts that the function signature matches the other arguments provide  
							
							 
							
							... 
							
							
							
							to CGCall functions.
llvm-svn: 63775 
							
						 
						
							2009-02-04 21:17:21 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								6e3b7df125 
								
							 
						 
						
							
							
								
								Handle demotion of coerced arguments (as in void a(x) short x; { ... }).  
							
							 
							
							... 
							
							
							
							llvm-svn: 63726 
							
						 
						
							2009-02-04 07:22:24 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								a33461150d 
								
							 
						 
						
							
							
								
								Use ConvertTypeForMem when creating alloca for scalar argument.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63681 
							
						 
						
							2009-02-03 23:04:57 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								fc7c76159c 
								
							 
						 
						
							
							
								
								x86_64 ABI: Initial implementation of ABI compliant parameter passing.  
							
							 
							
							... 
							
							
							
							- Now only 27/500 failures on ABITest single argument tests; from
   350/500. :)
 - As with return types, a large percentage of these are likely to be
   gcc bugs, not yet reviewed.
Also, fix bug in handling of Ignore ABI type in argument lists.
llvm-svn: 63654 
							
						 
						
							2009-02-03 20:00:13 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								2f219b0770 
								
							 
						 
						
							
							
								
								ABI handling: Implement coercion for argument types (in addition to  
							
							 
							
							... 
							
							
							
							return types).
llvm-svn: 63645 
							
						 
						
							2009-02-03 19:12:28 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								32931eb21d 
								
							 
						 
						
							
							
								
								Change ABIInfo to compute information for a full signature at a time  
							
							 
							
							... 
							
							
							
							(the main point of this restructing).
llvm-svn: 63619 
							
						 
						
							2009-02-03 06:51:18 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								0136282a9c 
								
							 
						 
						
							
							
								
								Remove ABIArgInfo::Default kind, ABI is now responsible for specifying  
							
							 
							
							... 
							
							
							
							acceptable kind with more precise semantics.
llvm-svn: 63617 
							
						 
						
							2009-02-03 06:30:17 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								67dace890f 
								
							 
						 
						
							
							
								
								Add ABIArgInfo::Direct kind, which passes arguments using whatever the  
							
							 
							
							... 
							
							
							
							native IRgen type is. This is like Default, but without any extra
semantics (like automatic tweaking of structures or void).
llvm-svn: 63615 
							
						 
						
							2009-02-03 06:17:37 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								5a0acdc982 
								
							 
						 
						
							
							
								
								Add two FIXMEs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63613 
							
						 
						
							2009-02-03 06:02:10 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								b52d077d8b 
								
							 
						 
						
							
							
								
								Always use CGFunctionInfo to access ABI information.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63612 
							
						 
						
							2009-02-03 05:59:18 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								313321ea23 
								
							 
						 
						
							
							
								
								Move ABIArgInfo into CGFunctionInfo, computed on creation.  
							
							 
							
							... 
							
							
							
							- Still have to convert some consumers over.
llvm-svn: 63610 
							
						 
						
							2009-02-03 05:31:23 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								6d6b0d309a 
								
							 
						 
						
							
							
								
								Move ABIInfo/ABIArgInfo classes into ABIInfo.h  
							
							 
							
							... 
							
							
							
							llvm-svn: 63586 
							
						 
						
							2009-02-03 01:05:53 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								e0be82956b 
								
							 
						 
						
							
							
								
								Memoize CGFunctionInfo construction.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63576 
							
						 
						
							2009-02-03 00:07:12 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								3668cb2d3c 
								
							 
						 
						
							
							
								
								Change CGFunctionInfo args iterator to not include the return type.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63571 
							
						 
						
							2009-02-02 23:43:58 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								bf8c24ad89 
								
							 
						 
						
							
							
								
								Thread CGFunctionInfo construction through CodeGenTypes.  
							
							 
							
							... 
							
							
							
							- Inefficient & leaks memory currently, will be cleaned up subsequently.
llvm-svn: 63567 
							
						 
						
							2009-02-02 23:23:47 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								d931a87f90 
								
							 
						 
						
							
							
								
								More ABI API cleanup.  
							
							 
							
							... 
							
							
							
							- Lift CGFunctionInfo creation above ReturnTypeUsesSret and
   EmitFunction{Epi,Pro}log.
llvm-svn: 63553 
							
						 
						
							2009-02-02 22:03:45 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								7633cbf005 
								
							 
						 
						
							
							
								
								ABI handling API changes.  
							
							 
							
							... 
							
							
							
							- Lift CGFunctionInfo creation up to callers of EmitCall.
 - Move isVariadic bit out of CGFunctionInfo, take as argument to
   GetFunctionType instead.
No functionality change.
llvm-svn: 63550 
							
						 
						
							2009-02-02 21:43:58 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								f5589ac5a9 
								
							 
						 
						
							
							
								
								Shuffle some functions around, no functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63538 
							
						 
						
							2009-02-02 19:06:38 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								50f520171c 
								
							 
						 
						
							
							
								
								Add FIXME.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63531 
							
						 
						
							2009-02-02 18:06:39 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								5df2b0baaa 
								
							 
						 
						
							
							
								
								Remove unused overload of GetFunctionType.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63472 
							
						 
						
							2009-01-31 03:05:44 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								a8b7f6bb13 
								
							 
						 
						
							
							
								
								Initialize CGFunctionInfo isVariadic bit correctly.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63471 
							
						 
						
							2009-01-31 02:54:56 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								a37249c663 
								
							 
						 
						
							
							
								
								Err, unbreak my previous "no functionality change commit", will fix properly later.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63467 
							
						 
						
							2009-01-31 02:20:43 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								3cd20632ff 
								
							 
						 
						
							
							
								
								Kill off CGCallInfo, always use CGFunctionInfo for encapsulating  
							
							 
							
							... 
							
							
							
							function/call info.
llvm-svn: 63466 
							
						 
						
							2009-01-31 02:19:00 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								34aa3ca8c4 
								
							 
						 
						
							
							
								
								x86_64 ABI: Retool classification to compute lo & hi classifications  
							
							 
							
							... 
							
							
							
							in terms of where the type resides in the containing object. This is a
more clear embodiement of the spec & fixes a merging issue with
unions. Down to 3/1000 failures.
llvm-svn: 63455 
							
						 
						
							2009-01-31 00:06:58 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								6a046c64d9 
								
							 
						 
						
							
							
								
								x86_64 ABI: Fix more thinkos, straddling computation for complex was  
							
							 
							
							... 
							
							
							
							computing in bytes not bits. We are now down to 22/1000 failures on
the return types tests, and 18 of those are gcc bugs I believe.
llvm-svn: 63438 
							
						 
						
							2009-01-30 22:40:15 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								c35dca92f5 
								
							 
						 
						
							
							
								
								x86_64 ABI: Fix thinko in prev commit, 64-bit vectors should have SSE  
							
							 
							
							... 
							
							
							
							class, not integer.
llvm-svn: 63426 
							
						 
						
							2009-01-30 21:50:20 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								4d22eaeb44 
								
							 
						 
						
							
							
								
								x86_64 ABI: Pass <1 x double> in memory. This is arguably wrong, but  
							
							 
							
							... 
							
							
							
							matches gcc 4.2 (not llvm-gcc).
llvm-svn: 63413 
							
						 
						
							2009-01-30 19:38:39 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								7da8d0b321 
								
							 
						 
						
							
							
								
								Remove testing -use-x86_64-abi option; current implementation is  
							
							 
							
							... 
							
							
							
							robust enough for general use.
llvm-svn: 63406 
							
						 
						
							2009-01-30 18:47:53 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								890c6b5520 
								
							 
						 
						
							
							
								
								x86_64 ABI: Split small vectors which cross an eightbyte boundary. Down to 33/500 return type failures.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63404 
							
						 
						
							2009-01-30 18:40:10 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								f5222fa0ad 
								
							 
						 
						
							
							
								
								x86_64 ABI: Implement classification for arrays.  
							
							 
							
							... 
							
							
							
							- This brings us down to an 8% failure rate on the first 500 return
   types tests (from 12%).
llvm-svn: 63383 
							
						 
						
							2009-01-30 08:09:32 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								62dc51c395 
								
							 
						 
						
							
							
								
								Use uint64_t not unsigned for type sizes/offsets.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63352 
							
						 
						
							2009-01-30 00:47:38 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								5537b8bc6c 
								
							 
						 
						
							
							
								
								x86_64 ABI: Handle fields / complex components which straddle  
							
							 
							
							... 
							
							
							
							eightbyte boundaries.
 - Getting harder to test now that we handle cases gcc & llvm-gcc get
   wrong ( { _Complex char; _Complex int; } is a good example). :)
llvm-svn: 63305 
							
						 
						
							2009-01-29 09:42:07 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								7cd7d47c5c 
								
							 
						 
						
							
							
								
								x86_64 ABI: Tweak merging algorithm so that we always bail early when  
							
							 
							
							... 
							
							
							
							we see a Memory classification.
llvm-svn: 63295 
							
						 
						
							2009-01-29 08:35:40 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								012468aa7f 
								
							 
						 
						
							
							
								
								ABI: When emitting calls which return an ignored argument, make sure  
							
							 
							
							... 
							
							
							
							to still return an RValue of the correct type.
llvm-svn: 63294 
							
						 
						
							2009-01-29 08:24:57 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								17aa941534 
								
							 
						 
						
							
							
								
								x86_64 ABI: Implement classification for records.  
							
							 
							
							... 
							
							
							
							- This is my best initial guess at what the "spec" means, although it is not
   particularly clear on a number of points. Will refine through testing.
llvm-svn: 63292 
							
						 
						
							2009-01-29 08:13:58 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								227e1a77ff 
								
							 
						 
						
							
							
								
								x86_64: Support cases which map to returning multiple values in LLVM  
							
							 
							
							... 
							
							
							
							(e.g., _Complex double -> { double, double } return).
llvm-svn: 63285 
							
						 
						
							2009-01-29 07:36:07 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								8e6652affc 
								
							 
						 
						
							
							
								
								x86_64 ABI: Classify _Complex ints as integer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63283 
							
						 
						
							2009-01-29 07:22:20 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								d678d3d970 
								
							 
						 
						
							
							
								
								x86_64: Classify __m64 and __m128 "correctly".  
							
							 
							
							... 
							
							
							
							- gcc appears to be classifying <1 x double> as INTEGER which is
   odd. Will investigate later.
llvm-svn: 63086 
							
						 
						
							2009-01-27 02:01:34 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								0f4aa3cbb1 
								
							 
						 
						
							
							
								
								Implement support for coercion to wider types during ABI handling.  
							
							 
							
							... 
							
							
							
							- Code quality is poor, but simple.
llvm-svn: 63083 
							
						 
						
							2009-01-27 01:36:03 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								94a6f25738 
								
							 
						 
						
							
							
								
								Add Ignore ABIArgInfo kind, for handling void & empty structures.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63039 
							
						 
						
							2009-01-26 21:26:08 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								3334a44501 
								
							 
						 
						
							
							
								
								Start filling in x86_64 ABI implementation.  
							
							 
							
							... 
							
							
							
							- No functionality change, moved behind -use-x86_64-abi option until
   it becomes non-experimental.
llvm-svn: 62915 
							
						 
						
							2009-01-24 08:32:22 +00:00