Changeset View
Changeset View
Standalone View
Standalone View
cfe/trunk/lib/Frontend/CompilerInvocation.cpp
Show First 20 Lines • Show All 643 Lines • ▼ Show 20 Lines | static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK, | ||||
Opts.UniqueSectionNames = Args.hasFlag(OPT_funique_section_names, | Opts.UniqueSectionNames = Args.hasFlag(OPT_funique_section_names, | ||||
OPT_fno_unique_section_names, true); | OPT_fno_unique_section_names, true); | ||||
Opts.MergeFunctions = Args.hasArg(OPT_fmerge_functions); | Opts.MergeFunctions = Args.hasArg(OPT_fmerge_functions); | ||||
Opts.NoUseJumpTables = Args.hasArg(OPT_fno_jump_tables); | Opts.NoUseJumpTables = Args.hasArg(OPT_fno_jump_tables); | ||||
Opts.PrepareForLTO = Args.hasArg(OPT_flto, OPT_flto_EQ); | Opts.PrepareForLTO = Args.hasArg(OPT_flto, OPT_flto_EQ); | ||||
const Arg *A = Args.getLastArg(OPT_flto, OPT_flto_EQ); | Opts.EmitSummaryIndex = false; | ||||
Opts.EmitSummaryIndex = A && A->containsValue("thin"); | if (Arg *A = Args.getLastArg(OPT_flto_EQ)) { | ||||
StringRef S = A->getValue(); | |||||
if (S == "thin") | |||||
Opts.EmitSummaryIndex = true; | |||||
else if (S != "full") | |||||
Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << S; | |||||
} | |||||
Opts.LTOUnit = Args.hasFlag(OPT_flto_unit, OPT_fno_lto_unit, false); | Opts.LTOUnit = Args.hasFlag(OPT_flto_unit, OPT_fno_lto_unit, false); | ||||
if (Arg *A = Args.getLastArg(OPT_fthinlto_index_EQ)) { | if (Arg *A = Args.getLastArg(OPT_fthinlto_index_EQ)) { | ||||
if (IK.getLanguage() != InputKind::LLVM_IR) | if (IK.getLanguage() != InputKind::LLVM_IR) | ||||
Diags.Report(diag::err_drv_argument_only_allowed_with) | Diags.Report(diag::err_drv_argument_only_allowed_with) | ||||
<< A->getAsString(Args) << "-x ir"; | << A->getAsString(Args) << "-x ir"; | ||||
Opts.ThinLTOIndexFile = Args.getLastArgValue(OPT_fthinlto_index_EQ); | Opts.ThinLTOIndexFile = Args.getLastArgValue(OPT_fthinlto_index_EQ); | ||||
} | } | ||||
Opts.ThinLinkBitcodeFile = Args.getLastArgValue(OPT_fthin_link_bitcode_EQ); | Opts.ThinLinkBitcodeFile = Args.getLastArgValue(OPT_fthin_link_bitcode_EQ); | ||||
▲ Show 20 Lines • Show All 2,136 Lines • Show Last 20 Lines |