diff options
Diffstat (limited to 'llvm/lib/Target/Mips/MipsTargetMachine.cpp')
| -rw-r--r-- | llvm/lib/Target/Mips/MipsTargetMachine.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MipsTargetMachine.cpp b/llvm/lib/Target/Mips/MipsTargetMachine.cpp index fb79a4bf40c..a66aae690ad 100644 --- a/llvm/lib/Target/Mips/MipsTargetMachine.cpp +++ b/llvm/lib/Target/Mips/MipsTargetMachine.cpp @@ -23,6 +23,10 @@ #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/StringRef.h" #include "llvm/Analysis/TargetTransformInfo.h" +#include "llvm/CodeGen/GlobalISel/IRTranslator.h" +#include "llvm/CodeGen/GlobalISel/Legalizer.h" +#include "llvm/CodeGen/GlobalISel/RegBankSelect.h" +#include "llvm/CodeGen/GlobalISel/InstructionSelect.h" #include "llvm/CodeGen/BasicTTIImpl.h" #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/Passes.h" @@ -46,6 +50,9 @@ extern "C" void LLVMInitializeMipsTarget() { RegisterTargetMachine<MipselTargetMachine> Y(getTheMipselTarget()); RegisterTargetMachine<MipsebTargetMachine> A(getTheMips64Target()); RegisterTargetMachine<MipselTargetMachine> B(getTheMips64elTarget()); + + PassRegistry *PR = PassRegistry::getPassRegistry(); + initializeGlobalISel(*PR); } static std::string computeDataLayout(const Triple &TT, StringRef CPU, @@ -230,6 +237,10 @@ public: bool addInstSelector() override; void addPreEmitPass() override; void addPreRegAlloc() override; + bool addIRTranslator() override; + bool addLegalizeMachineIR() override; + bool addRegBankSelect() override; + bool addGlobalInstructionSelect() override; }; } // end anonymous namespace @@ -285,3 +296,23 @@ void MipsPassConfig::addPreEmitPass() { addPass(createMipsHazardSchedule()); addPass(createMipsConstantIslandPass()); } + +bool MipsPassConfig::addIRTranslator() { + addPass(new IRTranslator()); + return false; +} + +bool MipsPassConfig::addLegalizeMachineIR() { + addPass(new Legalizer()); + return false; +} + +bool MipsPassConfig::addRegBankSelect() { + addPass(new RegBankSelect()); + return false; +} + +bool MipsPassConfig::addGlobalInstructionSelect() { + addPass(new InstructionSelect()); + return false; +} |

