Index: lib/Target/Mips/Mips16ISelDAGToDAG.h =================================================================== --- lib/Target/Mips/Mips16ISelDAGToDAG.h +++ lib/Target/Mips/Mips16ISelDAGToDAG.h @@ -20,7 +20,8 @@ class Mips16DAGToDAGISel : public MipsDAGToDAGISel { public: - explicit Mips16DAGToDAGISel(MipsTargetMachine &TM) : MipsDAGToDAGISel(TM) {} + explicit Mips16DAGToDAGISel(MipsTargetMachine &TM, CodeGenOpt::Level OL) + : MipsDAGToDAGISel(TM, OL) {} private: std::pair selectMULT(SDNode *N, unsigned Opc, SDLoc DL, @@ -46,8 +47,8 @@ void initMips16SPAliasReg(MachineFunction &MF); }; -FunctionPass *createMips16ISelDag(MipsTargetMachine &TM); - +FunctionPass *createMips16ISelDag(MipsTargetMachine &TM, + CodeGenOpt::Level OptLevel); } #endif Index: lib/Target/Mips/Mips16ISelDAGToDAG.cpp =================================================================== --- lib/Target/Mips/Mips16ISelDAGToDAG.cpp +++ lib/Target/Mips/Mips16ISelDAGToDAG.cpp @@ -317,6 +317,7 @@ return std::make_pair(false, nullptr); } -FunctionPass *llvm::createMips16ISelDag(MipsTargetMachine &TM) { - return new Mips16DAGToDAGISel(TM); +FunctionPass *llvm::createMips16ISelDag(MipsTargetMachine &TM, + CodeGenOpt::Level OptLevel) { + return new Mips16DAGToDAGISel(TM, OptLevel); } Index: lib/Target/Mips/MipsISelDAGToDAG.h =================================================================== --- lib/Target/Mips/MipsISelDAGToDAG.h +++ lib/Target/Mips/MipsISelDAGToDAG.h @@ -31,8 +31,8 @@ class MipsDAGToDAGISel : public SelectionDAGISel { public: - explicit MipsDAGToDAGISel(MipsTargetMachine &TM) - : SelectionDAGISel(TM), Subtarget(nullptr) {} + explicit MipsDAGToDAGISel(MipsTargetMachine &TM, CodeGenOpt::Level OL) + : SelectionDAGISel(TM, OL), Subtarget(nullptr) {} // Pass Name const char *getPassName() const override { Index: lib/Target/Mips/MipsSEISelDAGToDAG.h =================================================================== --- lib/Target/Mips/MipsSEISelDAGToDAG.h +++ lib/Target/Mips/MipsSEISelDAGToDAG.h @@ -21,7 +21,8 @@ class MipsSEDAGToDAGISel : public MipsDAGToDAGISel { public: - explicit MipsSEDAGToDAGISel(MipsTargetMachine &TM) : MipsDAGToDAGISel(TM) {} + explicit MipsSEDAGToDAGISel(MipsTargetMachine &TM, CodeGenOpt::Level OL) + : MipsDAGToDAGISel(TM, OL) {} private: @@ -124,8 +125,8 @@ std::vector &OutOps) override; }; -FunctionPass *createMipsSEISelDag(MipsTargetMachine &TM); - +FunctionPass *createMipsSEISelDag(MipsTargetMachine &TM, + CodeGenOpt::Level OptLevel); } #endif Index: lib/Target/Mips/MipsSEISelDAGToDAG.cpp =================================================================== --- lib/Target/Mips/MipsSEISelDAGToDAG.cpp +++ lib/Target/Mips/MipsSEISelDAGToDAG.cpp @@ -1015,6 +1015,7 @@ return true; } -FunctionPass *llvm::createMipsSEISelDag(MipsTargetMachine &TM) { - return new MipsSEDAGToDAGISel(TM); +FunctionPass *llvm::createMipsSEISelDag(MipsTargetMachine &TM, + CodeGenOpt::Level OptLevel) { + return new MipsSEDAGToDAGISel(TM, OptLevel); } Index: lib/Target/Mips/MipsTargetMachine.cpp =================================================================== --- lib/Target/Mips/MipsTargetMachine.cpp +++ lib/Target/Mips/MipsTargetMachine.cpp @@ -217,8 +217,8 @@ // the ISelDag to gen Mips code. bool MipsPassConfig::addInstSelector() { addPass(createMipsModuleISelDagPass(getMipsTargetMachine())); - addPass(createMips16ISelDag(getMipsTargetMachine())); - addPass(createMipsSEISelDag(getMipsTargetMachine())); + addPass(createMips16ISelDag(getMipsTargetMachine(), getOptLevel())); + addPass(createMipsSEISelDag(getMipsTargetMachine(), getOptLevel())); return false; } Index: test/CodeGen/Mips/emergency-spill-slot-near-fp.ll =================================================================== --- test/CodeGen/Mips/emergency-spill-slot-near-fp.ll +++ test/CodeGen/Mips/emergency-spill-slot-near-fp.ll @@ -1,5 +1,5 @@ ; Check that register scavenging spill slot is close to $fp. -; RUN: llc -march=mipsel -O0 -fast-isel=false < %s | FileCheck %s +; RUN: llc -march=mipsel -O0 < %s | FileCheck %s ; CHECK: sw ${{.*}}, 8($sp) ; CHECK: lw ${{.*}}, 8($sp) @@ -31,4 +31,4 @@ ret i32 0 } -attributes #0 = { noinline optnone "no-frame-pointer-elim"="true" } +attributes #0 = { noinline "no-frame-pointer-elim"="true" }