Ignore -enable-cross-module-inlining if inlining is generally disabled (#3664)

People use `dflags "-enable-cross-module-inlining" platform="ldc"`
in their dub.sdl files; default and debug builds without -O thus
incur a superfluous compile-time cost for no benefit.
This commit is contained in:
Martin Kinkelin 2021-02-13 00:09:01 +01:00 committed by GitHub
parent 8d71c8624a
commit 98a066ea30
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 11 deletions

View file

@ -128,7 +128,7 @@ bool willInline() {
} }
bool willCrossModuleInline() { bool willCrossModuleInline() {
return enableCrossModuleInlining == llvm::cl::BOU_TRUE; return enableCrossModuleInlining == llvm::cl::BOU_TRUE && willInline();
} }
#if LDC_LLVM_VER >= 800 && LDC_LLVM_VER < 1000 #if LDC_LLVM_VER >= 800 && LDC_LLVM_VER < 1000

View file

@ -1,21 +1,18 @@
// Test disabling/enabling of cross-module inlining // Test disabling of cross-module inlining
// RUN: %ldc %s -I%S -c -output-ll -enable-cross-module-inlining -O0 -of=%t.ENA.ll && FileCheck %s --check-prefix ENABLED < %t.ENA.ll // RUN: %ldc %s -I%S -c -output-ll -enable-cross-module-inlining -O0 -of=%t.ENA.ll && FileCheck %s < %t.ENA.ll
// RUN: %ldc %s -I%S -c -output-ll -disable-cross-module-inlining -O3 -of=%t.DIS.ll && FileCheck %s --check-prefix DISABLED < %t.DIS.ll // RUN: %ldc %s -I%S -c -output-ll -disable-cross-module-inlining -O3 -of=%t.DIS.ll && FileCheck %s < %t.DIS.ll
import inputs.inlinables; import inputs.inlinables;
extern (C): // simplify mangling for easier matching extern (C): // simplify mangling for easier matching
// DISABLED-LABEL: define{{.*}} @call_easily_inlinable( // CHECK-LABEL: define{{.*}} @call_easily_inlinable(
// ENABLED-LABEL: define{{.*}} @call_easily_inlinable(
int call_easily_inlinable(int i) int call_easily_inlinable(int i)
{ {
// DISABLED: call {{.*}} @easily_inlinable( // CHECK: call {{.*}} @easily_inlinable(
return easily_inlinable(i); return easily_inlinable(i);
// DISABLED: ret // CHECK: ret
// ENABLED: ret
} }
// ENABLED-DAG: define {{.*}} @easily_inlinable( // CHECK-DAG: declare {{.*}} @easily_inlinable(
// DISABLED-DAG: declare {{.*}} @easily_inlinable(