mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-04-29 22:50:53 +03:00
Fixes and improvements to cross-module inlining code.
This commit is contained in:
parent
a3f0678283
commit
7ed5a09dc3
6 changed files with 80 additions and 42 deletions
|
@ -90,6 +90,14 @@ static cl::opt<cl::boolOrDefault, false, opts::FlagParser<cl::boolOrDefault>>
|
|||
cl::desc("Enable function inlining (default in -O2 and higher)"),
|
||||
cl::ZeroOrMore);
|
||||
|
||||
static llvm::cl::opt<llvm::cl::boolOrDefault, false,
|
||||
opts::FlagParser<llvm::cl::boolOrDefault>>
|
||||
enableCrossModuleInlining(
|
||||
"cross-module-inlining",
|
||||
llvm::cl::desc("Enable cross-module function inlining (default enabled "
|
||||
"with inlining)"),
|
||||
llvm::cl::ZeroOrMore, llvm::cl::Hidden);
|
||||
|
||||
static cl::opt<bool> unitAtATime("unit-at-a-time", cl::desc("Enable basic IPO"),
|
||||
cl::init(true));
|
||||
|
||||
|
@ -131,6 +139,11 @@ bool willInline() {
|
|||
(enableInlining == cl::BOU_UNSET && optLevel() > 1);
|
||||
}
|
||||
|
||||
bool willCrossModuleInline() {
|
||||
return enableCrossModuleInlining == llvm::cl::BOU_TRUE ||
|
||||
(enableCrossModuleInlining == llvm::cl::BOU_UNSET && willInline());
|
||||
}
|
||||
|
||||
bool isOptimizationEnabled() { return optimizeLevel != 0; }
|
||||
|
||||
llvm::CodeGenOpt::Level codeGenOptLevel() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue