aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/SwiftCallingConv.cpp
AgeCommit message (Collapse)AuthorFilesLines
2017-06-21SwiftCC: Perform physical layout when computing coercion typesArnold Schwaighofer1-1/+7
We need to take type alignment padding into account whe computing physical layouts. The layout must be compatible with the input layout, offsets are defined in terms of offsets within a packed struct which are computed in terms of the alloc size of a type. Usingthe store size we would insert padding for the following type for example: struct { int3 v; long long l; } __attribute((packed)) On x86-64 int3 is padded to int4 alignment. The swiftcc type would be <{ <3 x float>, [4 x i8], i64 }> which is not compatible with <{ <3 x float>, i64 }>. The latter has i64 at offset 16 and the former at offset 20. rdar://32618125 llvm-svn: 305956
2016-12-01swiftcc: Add an api to query whether a target ABI stores swifterror in a ↵Arnold Schwaighofer1-0/+5
register llvm-svn: 288394
2016-10-13Swift Calling Convention: Fix out of bounds accessArnold Schwaighofer1-1/+1
Use iterator instead of address of element in vector It is not valid to access one after the last element. rdar://28759508 llvm-svn: 284150
2016-10-11Pass the end of a component to SwiftAggLowering's enumerateComponents callbackArnold Schwaighofer1-1/+1
This is usefull for determining whether components overlap. llvm-svn: 283932
2016-04-08Silencing a 32-bit shift implicit conversion warning from MSVC; NFC.Aaron Ballman1-1/+1
llvm-svn: 265782
2016-04-04Fix "suggest parentheses" warning.James Y Knight1-3/+3
llvm-svn: 265355
2016-04-04Fix an unused-variable warning by using the variable in the placeJohn McCall1-1/+1
it was supposed to have been used. llvm-svn: 265344
2016-04-04IRGen-level lowering for the Swift calling convention.John McCall1-0/+830
llvm-svn: 265324