summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PPCCallingConv.h
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2019-01-29 00:30:35 +0000
committerReid Kleckner <rnk@google.com>2019-01-29 00:30:35 +0000
commit85e72c3d56c7abbb1e1d4dc22d8565ff36bed919 (patch)
treef96a07685bbc3f42e1aa104425873b4fe6a7f402 /llvm/lib/Target/PowerPC/PPCCallingConv.h
parentb72888647baee2093c2cbd7a0c3da6dc8b870f20 (diff)
downloadbcm5719-llvm-85e72c3d56c7abbb1e1d4dc22d8565ff36bed919.tar.gz
bcm5719-llvm-85e72c3d56c7abbb1e1d4dc22d8565ff36bed919.zip
[PPC] Include tablegenerated PPCGenCallingConv.inc once
Move the CC analysis implementation to its own .cpp file instead of duplicating it and artificually using functions in PPCISelLowering.cpp and PPCFastISel.cpp. Follow-up to the same change done for X86, ARM, and AArch64. llvm-svn: 352444
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCCallingConv.h')
-rw-r--r--llvm/lib/Target/PowerPC/PPCCallingConv.h29
1 files changed, 21 insertions, 8 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCCallingConv.h b/llvm/lib/Target/PowerPC/PPCCallingConv.h
index 235c82c31f6..03d9be0a73d 100644
--- a/llvm/lib/Target/PowerPC/PPCCallingConv.h
+++ b/llvm/lib/Target/PowerPC/PPCCallingConv.h
@@ -19,14 +19,27 @@
namespace llvm {
-inline bool CC_PPC_AnyReg_Error(unsigned &, MVT &, MVT &,
- CCValAssign::LocInfo &, ISD::ArgFlagsTy &,
- CCState &) {
- llvm_unreachable("The AnyReg calling convention is only supported by the " \
- "stackmap and patchpoint intrinsics.");
- // gracefully fallback to PPC C calling convention on Release builds.
- return false;
-}
+bool RetCC_PPC(unsigned ValNo, MVT ValVT, MVT LocVT,
+ CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
+ CCState &State);
+bool RetCC_PPC64_ELF_FIS(unsigned ValNo, MVT ValVT, MVT LocVT,
+ CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
+ CCState &State);
+bool RetCC_PPC_Cold(unsigned ValNo, MVT ValVT, MVT LocVT,
+ CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
+ CCState &State);
+bool CC_PPC32_SVR4(unsigned ValNo, MVT ValVT, MVT LocVT,
+ CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
+ CCState &State);
+bool CC_PPC64_ELF_FIS(unsigned ValNo, MVT ValVT, MVT LocVT,
+ CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
+ CCState &State);
+bool CC_PPC32_SVR4_ByVal(unsigned ValNo, MVT ValVT, MVT LocVT,
+ CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
+ CCState &State);
+bool CC_PPC32_SVR4_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT,
+ CCValAssign::LocInfo LocInfo,
+ ISD::ArgFlagsTy ArgFlags, CCState &State);
} // End llvm namespace
OpenPOWER on IntegriCloud