summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/CodeGen/TargetPassConfig.cpp11
-rw-r--r--llvm/test/CodeGen/AArch64/GlobalISel/gisel-commandline-option.ll3
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
OpenPOWER on IntegriCloud