forked from OSchip/llvm-project
[Remarks][Driver][NFC] Make shouldEmitRemarks more available in the Driver
Move the function to Driver.h so that it can be re-used in other places.
This commit is contained in:
parent
bce1cce6bf
commit
a8c678cb9a
|
@ -620,6 +620,9 @@ public:
|
||||||
/// And False otherwise.
|
/// And False otherwise.
|
||||||
bool isOptimizationLevelFast(const llvm::opt::ArgList &Args);
|
bool isOptimizationLevelFast(const llvm::opt::ArgList &Args);
|
||||||
|
|
||||||
|
/// \return True if the argument combination will end up generating remarks.
|
||||||
|
bool willEmitRemarks(const llvm::opt::ArgList &Args);
|
||||||
|
|
||||||
} // end namespace driver
|
} // end namespace driver
|
||||||
} // end namespace clang
|
} // end namespace clang
|
||||||
|
|
||||||
|
|
|
@ -5060,3 +5060,26 @@ Driver::getIncludeExcludeOptionFlagMasks(bool IsClCompatMode) const {
|
||||||
bool clang::driver::isOptimizationLevelFast(const ArgList &Args) {
|
bool clang::driver::isOptimizationLevelFast(const ArgList &Args) {
|
||||||
return Args.hasFlag(options::OPT_Ofast, options::OPT_O_Group, false);
|
return Args.hasFlag(options::OPT_Ofast, options::OPT_O_Group, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool clang::driver::willEmitRemarks(const ArgList &Args) {
|
||||||
|
// -fsave-optimization-record enables it.
|
||||||
|
if (Args.hasFlag(options::OPT_fsave_optimization_record,
|
||||||
|
options::OPT_fno_save_optimization_record, false))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// -fsave-optimization-record=<format> enables it as well.
|
||||||
|
if (Args.hasFlag(options::OPT_fsave_optimization_record_EQ,
|
||||||
|
options::OPT_fno_save_optimization_record, false))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// -foptimization-record-file alone enables it too.
|
||||||
|
if (Args.hasFlag(options::OPT_foptimization_record_file_EQ,
|
||||||
|
options::OPT_fno_save_optimization_record, false))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// -foptimization-record-passes alone enables it too.
|
||||||
|
if (Args.hasFlag(options::OPT_foptimization_record_passes_EQ,
|
||||||
|
options::OPT_fno_save_optimization_record, false))
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
|
@ -1415,29 +1415,6 @@ static bool isNoCommonDefault(const llvm::Triple &Triple) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool shouldEmitRemarks(const ArgList &Args) {
|
|
||||||
// -fsave-optimization-record enables it.
|
|
||||||
if (Args.hasFlag(options::OPT_fsave_optimization_record,
|
|
||||||
options::OPT_fno_save_optimization_record, false))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
// -fsave-optimization-record=<format> enables it as well.
|
|
||||||
if (Args.hasFlag(options::OPT_fsave_optimization_record_EQ,
|
|
||||||
options::OPT_fno_save_optimization_record, false))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
// -foptimization-record-file alone enables it too.
|
|
||||||
if (Args.hasFlag(options::OPT_foptimization_record_file_EQ,
|
|
||||||
options::OPT_fno_save_optimization_record, false))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
// -foptimization-record-passes alone enables it too.
|
|
||||||
if (Args.hasFlag(options::OPT_foptimization_record_passes_EQ,
|
|
||||||
options::OPT_fno_save_optimization_record, false))
|
|
||||||
return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool hasMultipleInvocations(const llvm::Triple &Triple,
|
static bool hasMultipleInvocations(const llvm::Triple &Triple,
|
||||||
const ArgList &Args) {
|
const ArgList &Args) {
|
||||||
// Supported only on Darwin where we invoke the compiler multiple times
|
// Supported only on Darwin where we invoke the compiler multiple times
|
||||||
|
@ -3718,7 +3695,7 @@ static void RenderDebugOptions(const ToolChain &TC, const Driver &D,
|
||||||
TC.adjustDebugInfoKind(DebugInfoKind, Args);
|
TC.adjustDebugInfoKind(DebugInfoKind, Args);
|
||||||
|
|
||||||
// When emitting remarks, we need at least debug lines in the output.
|
// When emitting remarks, we need at least debug lines in the output.
|
||||||
if (shouldEmitRemarks(Args) &&
|
if (willEmitRemarks(Args) &&
|
||||||
DebugInfoKind <= codegenoptions::DebugDirectivesOnly)
|
DebugInfoKind <= codegenoptions::DebugDirectivesOnly)
|
||||||
DebugInfoKind = codegenoptions::DebugLineTablesOnly;
|
DebugInfoKind = codegenoptions::DebugLineTablesOnly;
|
||||||
|
|
||||||
|
@ -5546,7 +5523,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
||||||
CmdArgs.push_back("-fapple-pragma-pack");
|
CmdArgs.push_back("-fapple-pragma-pack");
|
||||||
|
|
||||||
// Remarks can be enabled with any of the `-f.*optimization-record.*` flags.
|
// Remarks can be enabled with any of the `-f.*optimization-record.*` flags.
|
||||||
if (shouldEmitRemarks(Args) && checkRemarksOptions(D, Args, Triple))
|
if (willEmitRemarks(Args) && checkRemarksOptions(D, Args, Triple))
|
||||||
renderRemarksOptions(Args, CmdArgs, Triple, Input, JA);
|
renderRemarksOptions(Args, CmdArgs, Triple, Input, JA);
|
||||||
|
|
||||||
bool RewriteImports = Args.hasFlag(options::OPT_frewrite_imports,
|
bool RewriteImports = Args.hasFlag(options::OPT_frewrite_imports,
|
||||||
|
|
Loading…
Reference in New Issue