15
15
#ifndef LLVM_AVR_ISEL_LOWERING_H
16
16
#define LLVM_AVR_ISEL_LOWERING_H
17
17
18
+ #include " llvm/CodeGen/CallingConvLower.h"
18
19
#include " llvm/Target/TargetLowering.h"
19
20
20
21
namespace llvm {
@@ -92,6 +93,9 @@ class AVRTargetLowering : public TargetLowering {
92
93
93
94
bool isOffsetFoldingLegal (const GlobalAddressSDNode *GA) const override ;
94
95
96
+ EVT getSetCCResultType (const DataLayout &DL, LLVMContext &Context,
97
+ EVT VT) const override ;
98
+
95
99
MachineBasicBlock *
96
100
EmitInstrWithCustomInserter (MachineInstr &MI,
97
101
MachineBasicBlock *MBB) const override ;
@@ -125,6 +129,13 @@ class AVRTargetLowering : public TargetLowering {
125
129
SDValue LowerSETCC (SDValue Op, SelectionDAG &DAG) const ;
126
130
SDValue LowerVASTART (SDValue Op, SelectionDAG &DAG) const ;
127
131
132
+ CCAssignFn *CCAssignFnForReturn (CallingConv::ID CC) const ;
133
+
134
+ bool CanLowerReturn (CallingConv::ID CallConv,
135
+ MachineFunction &MF, bool isVarArg,
136
+ const SmallVectorImpl<ISD::OutputArg> &Outs,
137
+ LLVMContext &Context) const override ;
138
+
128
139
SDValue LowerReturn (SDValue Chain, CallingConv::ID CallConv, bool isVarArg,
129
140
const SmallVectorImpl<ISD::OutputArg> &Outs,
130
141
const SmallVectorImpl<SDValue> &OutVals, const SDLoc &dl,
@@ -143,8 +154,8 @@ class AVRTargetLowering : public TargetLowering {
143
154
SmallVectorImpl<SDValue> &InVals) const ;
144
155
145
156
private:
146
- MachineBasicBlock *insertShift (MachineInstr * MI, MachineBasicBlock *BB) const ;
147
- MachineBasicBlock *insertMul (MachineInstr * MI, MachineBasicBlock *BB) const ;
157
+ MachineBasicBlock *insertShift (MachineInstr & MI, MachineBasicBlock *BB) const ;
158
+ MachineBasicBlock *insertMul (MachineInstr & MI, MachineBasicBlock *BB) const ;
148
159
};
149
160
150
161
} // end namespace llvm
0 commit comments