Index: llvm/lib/Target/Mips/MipsTargetMachine.cpp
--- llvm/lib/Target/Mips/MipsTargetMachine.cpp.orig
+++ llvm/lib/Target/Mips/MipsTargetMachine.cpp
@@ -48,6 +48,7 @@ using namespace llvm;
 
 #define DEBUG_TYPE "mips"
 
+extern cl::opt<bool> FixLoongson2FBTB;
 static cl::opt<bool>
     EnableMulMulFix("mfix4300", cl::init(false),
                     cl::desc("Enable the VR4300 mulmul bug fix."), cl::Hidden);
@@ -280,6 +281,9 @@ bool MipsPassConfig::addInstSelector() {
 
 void MipsPassConfig::addPreRegAlloc() {
   addPass(createMipsOptimizePICCallPass());
+
+  if (FixLoongson2FBTB)
+    addPass(createMipsLoongson2FBTBFix());
 }
 
 TargetTransformInfo
