summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AArch64/AArch64CallLowering.h
diff options
context:
space:
mode:
authorQuentin Colombet <qcolombet@apple.com>2016-02-16 00:57:44 +0000
committerQuentin Colombet <qcolombet@apple.com>2016-02-16 00:57:44 +0000
commit1ce38545fb142740944e5f268ec6c4b543f706f5 (patch)
tree11796c2764a0a4d3c664dc3dd71916f81bda926e /llvm/lib/Target/AArch64/AArch64CallLowering.h
parent23c89f359a2460f136b6a7115b9e11eac04501ac (diff)
downloadbcm5719-llvm-1ce38545fb142740944e5f268ec6c4b543f706f5.tar.gz
bcm5719-llvm-1ce38545fb142740944e5f268ec6c4b543f706f5.zip
[GlobalISel] Get rid of the ifdefs in TargetLowering.
Introduce a new API used only by GlobalISel: CallLowering. This API will contain target hooks dedicated to call lowering. llvm-svn: 260922
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64CallLowering.h')
-rw-r--r--llvm/lib/Target/AArch64/AArch64CallLowering.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64CallLowering.h b/llvm/lib/Target/AArch64/AArch64CallLowering.h
new file mode 100644
index 00000000000..449a237e913
--- /dev/null
+++ b/llvm/lib/Target/AArch64/AArch64CallLowering.h
@@ -0,0 +1,36 @@
+//===-- llvm/lib/Target/AArch64/AArch64CallLowering.h - Call lowering -----===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+///
+/// \file
+/// This file describes how to lower LLVM calls to machine code calls.
+///
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIB_TARGET_AARCH64_AARCH64CALLLOWERING
+#define LLVM_LIB_TARGET_AARCH64_AARCH64CALLLOWERING
+
+#include "llvm/CodeGen/GlobalISel/CallLowering.h"
+
+namespace llvm {
+
+class AArch64TargetLowering;
+
+class AArch64CallLowering: public CallLowering {
+ public:
+ AArch64CallLowering(const AArch64TargetLowering &TLI);
+
+ bool LowerReturn(MachineIRBuilder &MIRBuiler, const Value *Val,
+ unsigned VReg) const override;
+ bool
+ LowerFormalArguments(MachineIRBuilder &MIRBuilder,
+ const Function::ArgumentListType &Args,
+ const SmallVectorImpl<unsigned> &VRegs) const override;
+};
+} // End of namespace llvm;
+#endif
OpenPOWER on IntegriCloud