mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-11 13:26:08 +03:00
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:
parent
8d71c8624a
commit
98a066ea30
2 changed files with 8 additions and 11 deletions
|
@ -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
|
||||||
|
|
|
@ -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(
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue