diff options
author | John McCall <rjmccall@apple.com> | 2016-03-11 04:30:43 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2016-03-11 04:30:43 +0000 |
commit | f26e73df7568e0d3cb3976c86e646e98d3db6789 (patch) | |
tree | 10d7163ad47e6bdaa567014552e58ef3ea32a1c7 /clang/lib/CodeGen/TargetInfo.cpp | |
parent | c56a8b32840eec263276cd4eddf84a09d1d42e3f (diff) | |
download | bcm5719-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.cpp | 7 |
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: |