Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
flang/lib/Frontend/CompilerInvocation.cpp
Show First 20 Lines • Show All 120 Lines • ▼ Show 20 Lines | static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts, | ||||
llvm::opt::ArgList &args, | llvm::opt::ArgList &args, | ||||
clang::DiagnosticsEngine &diags) { | clang::DiagnosticsEngine &diags) { | ||||
opts.OptimizationLevel = getOptimizationLevel(args, diags); | opts.OptimizationLevel = getOptimizationLevel(args, diags); | ||||
if (args.hasFlag(clang::driver::options::OPT_fdebug_pass_manager, | if (args.hasFlag(clang::driver::options::OPT_fdebug_pass_manager, | ||||
clang::driver::options::OPT_fno_debug_pass_manager, false)) | clang::driver::options::OPT_fno_debug_pass_manager, false)) | ||||
opts.DebugPassManager = 1; | opts.DebugPassManager = 1; | ||||
if (args.hasFlag(clang::driver::options::OPT_fstack_arrays, | |||||
clang::driver::options::OPT_fno_stack_arrays, false)) { | |||||
opts.StackArrays = 1; | |||||
} | |||||
for (auto *a : args.filtered(clang::driver::options::OPT_fpass_plugin_EQ)) | for (auto *a : args.filtered(clang::driver::options::OPT_fpass_plugin_EQ)) | ||||
opts.LLVMPassPlugins.push_back(a->getValue()); | opts.LLVMPassPlugins.push_back(a->getValue()); | ||||
// -mrelocation-model option. | // -mrelocation-model option. | ||||
if (const llvm::opt::Arg *A = | if (const llvm::opt::Arg *A = | ||||
args.getLastArg(clang::driver::options::OPT_mrelocation_model)) { | args.getLastArg(clang::driver::options::OPT_mrelocation_model)) { | ||||
llvm::StringRef ModelName = A->getValue(); | llvm::StringRef ModelName = A->getValue(); | ||||
auto RM = llvm::StringSwitch<std::optional<llvm::Reloc::Model>>(ModelName) | auto RM = llvm::StringSwitch<std::optional<llvm::Reloc::Model>>(ModelName) | ||||
▲ Show 20 Lines • Show All 837 Lines • Show Last 20 Lines |