summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/TargetInfo.cpp
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2016-03-11 04:30:43 +0000
committerJohn McCall <rjmccall@apple.com>2016-03-11 04:30:43 +0000
commitf26e73df7568e0d3cb3976c86e646e98d3db6789 (patch)
tree10d7163ad47e6bdaa567014552e58ef3ea32a1c7 /clang/lib/CodeGen/TargetInfo.cpp
parentc56a8b32840eec263276cd4eddf84a09d1d42e3f (diff)
downloadbcm5719-llvm-f26e73df7568e0d3cb3976c86e646e98d3db6789.tar.gz
bcm5719-llvm-f26e73df7568e0d3cb3976c86e646e98d3db6789.zip
Add a coerce-and-expand ABIArgInfo as a generalization of some
of the things we do with Expand / Direct. NFC for now, but this will be used by swiftcall expansion. llvm-svn: 263192
Diffstat (limited to 'clang/lib/CodeGen/TargetInfo.cpp')
-rw-r--r--clang/lib/CodeGen/TargetInfo.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp
index 51949979ad9..1748cd2ba57 100644
--- a/clang/lib/CodeGen/TargetInfo.cpp
+++ b/clang/lib/CodeGen/TargetInfo.cpp
@@ -160,6 +160,10 @@ LLVM_DUMP_METHOD void ABIArgInfo::dump() const {
case Expand:
OS << "Expand";
break;
+ case CoerceAndExpand:
+ OS << "CoerceAndExpand Type=";
+ getCoerceAndExpandType()->print(OS);
+ break;
}
OS << ")\n";
}
@@ -1570,6 +1574,7 @@ static bool isArgInAlloca(const ABIArgInfo &Info) {
case ABIArgInfo::Direct:
case ABIArgInfo::Extend:
case ABIArgInfo::Expand:
+ case ABIArgInfo::CoerceAndExpand:
if (Info.getInReg())
return false;
return true;
@@ -6829,6 +6834,7 @@ Address SparcV9ABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
CharUnits Stride;
switch (AI.getKind()) {
case ABIArgInfo::Expand:
+ case ABIArgInfo::CoerceAndExpand:
case ABIArgInfo::InAlloca:
llvm_unreachable("Unsupported ABI kind for va_arg");
@@ -7059,6 +7065,7 @@ Address XCoreABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
CharUnits ArgSize = CharUnits::Zero();
switch (AI.getKind()) {
case ABIArgInfo::Expand:
+ case ABIArgInfo::CoerceAndExpand:
case ABIArgInfo::InAlloca:
llvm_unreachable("Unsupported ABI kind for va_arg");
case ABIArgInfo::Ignore:
OpenPOWER on IntegriCloud