diff options
-rw-r--r-- | llvm/lib/CodeGen/TargetPassConfig.cpp | 11 | ||||
-rw-r--r-- | llvm/test/CodeGen/AArch64/GlobalISel/gisel-commandline-option.ll | 3 |
2 files changed, 6 insertions, 8 deletions
diff --git a/llvm/lib/CodeGen/TargetPassConfig.cpp b/llvm/lib/CodeGen/TargetPassConfig.cpp index acdc814c45c..392f41ac438 100644 --- a/llvm/lib/CodeGen/TargetPassConfig.cpp +++ b/llvm/lib/CodeGen/TargetPassConfig.cpp @@ -711,16 +711,11 @@ bool TargetPassConfig::addCoreISelPasses() { TM->setFastISel(true); // Ask the target for an instruction selector. - bool EnableGlobalISel = TM->Options.EnableGlobalISel; // Explicitly enabling fast-isel should override implicitly enabled // global-isel. - if (EnableGlobalISel && (EnableGlobalISelOption == cl::BOU_UNSET) && - (EnableFastISelOption == cl::BOU_TRUE)) - EnableGlobalISel = false; - if (EnableGlobalISelOption == cl::BOU_TRUE) - EnableGlobalISel = true; - - if (EnableGlobalISel) { + if (EnableGlobalISelOption == cl::BOU_TRUE || + (EnableGlobalISelOption == cl::BOU_UNSET && + TM->Options.EnableGlobalISel && EnableFastISelOption != cl::BOU_TRUE)) { if (addIRTranslator()) return true; diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/gisel-commandline-option.ll b/llvm/test/CodeGen/AArch64/GlobalISel/gisel-commandline-option.ll index 0f7f0bdae7d..3920e1d99c2 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/gisel-commandline-option.ll +++ b/llvm/test/CodeGen/AArch64/GlobalISel/gisel-commandline-option.ll @@ -32,6 +32,9 @@ ; RUN: llc -mtriple=aarch64-- -debug-pass=Structure %s -o /dev/null 2>&1 \ ; RUN: | FileCheck %s --check-prefix DISABLED +; RUN: llc -mtriple=aarch64-- -fast-isel=0 -global-isel=false \ +; RUN: -debug-pass=Structure %s -o /dev/null 2>&1 | FileCheck %s --check-prefix DISABLED + ; ENABLED: IRTranslator ; ENABLED-NEXT: Legalizer ; ENABLED-NEXT: RegBankSelect |