$OpenBSD: patch-lib_Target_Mips_MipsTargetMachine_cpp,v 1.1 2021/05/18 03:35:07 rsadowski Exp $

Adapt the -mfix-loongson2f-btb workaround from as(1) to LLVM/clang.

Index: lib/Target/Mips/MipsTargetMachine.cpp
--- lib/Target/Mips/MipsTargetMachine.cpp.orig
+++ lib/Target/Mips/MipsTargetMachine.cpp
@@ -45,6 +45,8 @@ using namespace llvm;
 
 #define DEBUG_TYPE "mips"
 
+extern cl::opt<bool> FixLoongson2FBTB;
+
 extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeMipsTarget() {
   // Register the target.
   RegisterTargetMachine<MipsebTargetMachine> X(getTheMipsTarget());
@@ -280,6 +282,9 @@ bool MipsPassConfig::addInstSelector() {
 
 void MipsPassConfig::addPreRegAlloc() {
   addPass(createMipsOptimizePICCallPass());
+
+  if (FixLoongson2FBTB)
+    addPass(createMipsLoongson2FBTBFix());
 }
 
 TargetTransformInfo
