Skip to content

Commit 1a49944

Browse files
committed
[clang][cli] NFC: Decrease the scope of ParseCodeGenArgs parameters
Instead of passing the whole `TargetOptions` and `FrontendOptions` to `ParseCodeGenArgs` give it only the necessary members. This makes tracking the dependencies between various parsers and option groups easier. Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D94675
1 parent c495dfe commit 1a49944

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

clang/lib/Frontend/CompilerInvocation.cpp

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,8 @@ static void FixupInvocation(CompilerInvocation &Invocation,
405405
llvm::Triple T(TargetOpts.Triple);
406406
llvm::Triple::ArchType Arch = T.getArch();
407407

408+
CodeGenOpts.CodeModel = TargetOpts.CodeModel;
409+
408410
if (LangOpts.getExceptionHandling() != llvm::ExceptionHandling::None &&
409411
T.isWindowsMSVCEnvironment())
410412
Diags.Report(diag::err_fe_invalid_exception_model)
@@ -901,11 +903,9 @@ static void setPGOUseInstrumentor(CodeGenOptions &Opts,
901903
}
902904

903905
static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
904-
DiagnosticsEngine &Diags,
905-
const TargetOptions &TargetOpts,
906-
const FrontendOptions &FrontendOpts) {
906+
DiagnosticsEngine &Diags, const llvm::Triple &T,
907+
const std::string &OutputFile) {
907908
bool Success = true;
908-
llvm::Triple Triple = llvm::Triple(TargetOpts.Triple);
909909

910910
unsigned OptimizationLevel = getOptimizationLevel(Args, IK, Diags);
911911
// TODO: This could be done in Driver
@@ -964,7 +964,6 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
964964
llvm::Triple::arm, llvm::Triple::armeb, llvm::Triple::mips,
965965
llvm::Triple::mipsel, llvm::Triple::mips64, llvm::Triple::mips64el};
966966

967-
llvm::Triple T(TargetOpts.Triple);
968967
if (Opts.OptimizationLevel > 0 && Opts.hasReducedDebugInfo() &&
969968
llvm::is_contained(DebugEntryValueArchs, T.getArch()))
970969
Opts.EmitCallSiteInfo = true;
@@ -990,8 +989,6 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
990989
if (!Opts.ProfileInstrumentUsePath.empty())
991990
setPGOUseInstrumentor(Opts, Opts.ProfileInstrumentUsePath);
992991

993-
Opts.CodeModel = TargetOpts.CodeModel;
994-
995992
if (const Arg *A = Args.getLastArg(OPT_ftime_report, OPT_ftime_report_EQ)) {
996993
Opts.TimePasses = true;
997994

@@ -1036,8 +1033,8 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
10361033
if (Arg *A = Args.getLastArg(OPT_save_temps_EQ))
10371034
Opts.SaveTempsFilePrefix =
10381035
llvm::StringSwitch<std::string>(A->getValue())
1039-
.Case("obj", FrontendOpts.OutputFile)
1040-
.Default(llvm::sys::path::filename(FrontendOpts.OutputFile).str());
1036+
.Case("obj", OutputFile)
1037+
.Default(llvm::sys::path::filename(OutputFile).str());
10411038

10421039
// The memory profile runtime appends the pid to make this name more unique.
10431040
const char *MemProfileBasename = "memprof.profraw";
@@ -2937,11 +2934,11 @@ bool CompilerInvocation::CreateFromArgs(CompilerInvocation &Res,
29372934
InputKind DashX = ParseFrontendArgs(Res.getFrontendOpts(), Args, Diags,
29382935
LangOpts.IsHeaderFile);
29392936
ParseTargetArgs(Res.getTargetOpts(), Args, Diags);
2940-
Success &= ParseCodeGenArgs(Res.getCodeGenOpts(), Args, DashX, Diags,
2941-
Res.getTargetOpts(), Res.getFrontendOpts());
2937+
llvm::Triple T(Res.getTargetOpts().Triple);
2938+
Success &= ParseCodeGenArgs(Res.getCodeGenOpts(), Args, DashX, Diags, T,
2939+
Res.getFrontendOpts().OutputFile);
29422940
ParseHeaderSearchArgs(Res.getHeaderSearchOpts(), Args,
29432941
Res.getFileSystemOpts().WorkingDir);
2944-
llvm::Triple T(Res.getTargetOpts().Triple);
29452942
if (DashX.getFormat() == InputKind::Precompiled ||
29462943
DashX.getLanguage() == Language::LLVM_IR) {
29472944
// ObjCAAutoRefCount and Sanitize LangOpts are used to setup the

0 commit comments

Comments
 (0)