diff options
Diffstat (limited to 'contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h')
-rw-r--r-- | contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h b/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h index a894034020e9..0f08b72a334e 100644 --- a/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h +++ b/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h @@ -21,7 +21,8 @@ namespace llvm { class MipsSEDAGToDAGISel : public MipsDAGToDAGISel { public: - explicit MipsSEDAGToDAGISel(MipsTargetMachine &TM) : MipsDAGToDAGISel(TM) {} + explicit MipsSEDAGToDAGISel(MipsTargetMachine &TM, CodeGenOpt::Level OL) + : MipsDAGToDAGISel(TM, OL) {} private: @@ -34,11 +35,12 @@ private: bool replaceUsesWithZeroReg(MachineRegisterInfo *MRI, const MachineInstr&); - std::pair<SDNode*, SDNode*> selectMULT(SDNode *N, unsigned Opc, SDLoc dl, - EVT Ty, bool HasLo, bool HasHi); + std::pair<SDNode *, SDNode *> selectMULT(SDNode *N, unsigned Opc, + const SDLoc &dl, EVT Ty, bool HasLo, + bool HasHi); - SDNode *selectAddESubE(unsigned MOp, SDValue InFlag, SDValue CmpLHS, - SDLoc DL, SDNode *Node) const; + void selectAddESubE(unsigned MOp, SDValue InFlag, SDValue CmpLHS, + const SDLoc &DL, SDNode *Node) const; bool selectAddrFrameIndex(SDValue Addr, SDValue &Base, SDValue &Offset) const; bool selectAddrFrameIndexOffset(SDValue Addr, SDValue &Base, SDValue &Offset, @@ -47,9 +49,6 @@ private: bool selectAddrRegImm(SDValue Addr, SDValue &Base, SDValue &Offset) const override; - bool selectAddrRegReg(SDValue Addr, SDValue &Base, - SDValue &Offset) const override; - bool selectAddrDefault(SDValue Addr, SDValue &Base, SDValue &Offset) const override; @@ -62,14 +61,23 @@ private: bool selectAddrRegImm10(SDValue Addr, SDValue &Base, SDValue &Offset) const; + bool selectAddrRegImm11(SDValue Addr, SDValue &Base, + SDValue &Offset) const; + bool selectAddrRegImm12(SDValue Addr, SDValue &Base, SDValue &Offset) const; bool selectAddrRegImm16(SDValue Addr, SDValue &Base, SDValue &Offset) const; - bool selectIntAddrMM(SDValue Addr, SDValue &Base, - SDValue &Offset) const override; + bool selectIntAddr11MM(SDValue Addr, SDValue &Base, + SDValue &Offset) const override; + + bool selectIntAddr12MM(SDValue Addr, SDValue &Base, + SDValue &Offset) const override; + + bool selectIntAddr16MM(SDValue Addr, SDValue &Base, + SDValue &Offset) const override; bool selectIntAddrLSL2MM(SDValue Addr, SDValue &Base, SDValue &Offset) const override; @@ -111,7 +119,7 @@ private: /// starting at bit zero. bool selectVSplatMaskR(SDValue N, SDValue &Imm) const override; - std::pair<bool, SDNode*> selectNode(SDNode *Node) override; + bool trySelect(SDNode *Node) override; void processFunctionAfterISel(MachineFunction &MF) override; @@ -124,8 +132,8 @@ private: std::vector<SDValue> &OutOps) override; }; -FunctionPass *createMipsSEISelDag(MipsTargetMachine &TM); - +FunctionPass *createMipsSEISelDag(MipsTargetMachine &TM, + CodeGenOpt::Level OptLevel); } #endif |