diff options
author | Quentin Colombet <qcolombet@apple.com> | 2016-02-16 00:57:44 +0000 |
---|---|---|
committer | Quentin Colombet <qcolombet@apple.com> | 2016-02-16 00:57:44 +0000 |
commit | 1ce38545fb142740944e5f268ec6c4b543f706f5 (patch) | |
tree | 11796c2764a0a4d3c664dc3dd71916f81bda926e /llvm/lib/Target/AArch64/AArch64CallLowering.h | |
parent | 23c89f359a2460f136b6a7115b9e11eac04501ac (diff) | |
download | bcm5719-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.h | 36 |
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 |