diff options
author | Dylan McKay <dylanmckay34@gmail.com> | 2016-09-29 12:44:38 +0000 |
---|---|---|
committer | Dylan McKay <dylanmckay34@gmail.com> | 2016-09-29 12:44:38 +0000 |
commit | b79c01a42370948f46ba49e15ada3dee9a4e63c4 (patch) | |
tree | dd8a210e30876804de3b0f65453922a9be9e891c /llvm/lib/Target/AVR/AVRISelLowering.h | |
parent | 09a8c7d489d336ce78834b4fc1ba5e57f93a5d72 (diff) | |
download | bcm5719-llvm-b79c01a42370948f46ba49e15ada3dee9a4e63c4.tar.gz bcm5719-llvm-b79c01a42370948f46ba49e15ada3dee9a4e63c4.zip |
[AVR] Add instruction selection lowering code
Summary: This adds AVRISelLowering.cpp
Reviewers: kparzysz, arsenm
Subscribers: wdng, beanz, mgorny
Differential Revision: https://reviews.llvm.org/D25034
llvm-svn: 282711
Diffstat (limited to 'llvm/lib/Target/AVR/AVRISelLowering.h')
-rw-r--r-- | llvm/lib/Target/AVR/AVRISelLowering.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/llvm/lib/Target/AVR/AVRISelLowering.h b/llvm/lib/Target/AVR/AVRISelLowering.h index 2c8c9c88b6d..17074e1b1ee 100644 --- a/llvm/lib/Target/AVR/AVRISelLowering.h +++ b/llvm/lib/Target/AVR/AVRISelLowering.h @@ -15,6 +15,7 @@ #ifndef LLVM_AVR_ISEL_LOWERING_H #define LLVM_AVR_ISEL_LOWERING_H +#include "llvm/CodeGen/CallingConvLower.h" #include "llvm/Target/TargetLowering.h" namespace llvm { @@ -92,6 +93,9 @@ public: bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const override; + EVT getSetCCResultType(const DataLayout &DL, LLVMContext &Context, + EVT VT) const override; + MachineBasicBlock * EmitInstrWithCustomInserter(MachineInstr &MI, MachineBasicBlock *MBB) const override; @@ -125,6 +129,13 @@ private: SDValue LowerSETCC(SDValue Op, SelectionDAG &DAG) const; SDValue LowerVASTART(SDValue Op, SelectionDAG &DAG) const; + CCAssignFn *CCAssignFnForReturn(CallingConv::ID CC) const; + + bool CanLowerReturn(CallingConv::ID CallConv, + MachineFunction &MF, bool isVarArg, + const SmallVectorImpl<ISD::OutputArg> &Outs, + LLVMContext &Context) const override; + SDValue LowerReturn(SDValue Chain, CallingConv::ID CallConv, bool isVarArg, const SmallVectorImpl<ISD::OutputArg> &Outs, const SmallVectorImpl<SDValue> &OutVals, const SDLoc &dl, @@ -143,8 +154,8 @@ private: SmallVectorImpl<SDValue> &InVals) const; private: - MachineBasicBlock *insertShift(MachineInstr *MI, MachineBasicBlock *BB) const; - MachineBasicBlock *insertMul(MachineInstr *MI, MachineBasicBlock *BB) const; + MachineBasicBlock *insertShift(MachineInstr &MI, MachineBasicBlock *BB) const; + MachineBasicBlock *insertMul(MachineInstr &MI, MachineBasicBlock *BB) const; }; } // end namespace llvm |