aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorTom Eccles <tom.eccles@arm.com>2023-01-04 13:03:31 +0000
committerTom Eccles <tom.eccles@arm.com>2023-02-07 10:27:52 +0000
commitbf81ba37262880a8391f63c1747d61e4851344c4 (patch)
treec261dd1295cb41e91d2b6c27de025b5786b1b609 /flang/lib/Frontend/CompilerInvocation.cpp
parentcc14bf22bddf7abb1f13099c2d6ace5cdb8b7a5f (diff)
downloadllvm-bf81ba37262880a8391f63c1747d61e4851344c4.zip
llvm-bf81ba37262880a8391f63c1747d61e4851344c4.tar.gz
llvm-bf81ba37262880a8391f63c1747d61e4851344c4.tar.bz2
[flang] add -fstack-arrays flag
The implementation of -fstack-arrays was added in https://reviews.llvm.org/D140415 The new macro BoolOptionWithoutMarshalling in Options.td avoids generating code to store the flags in clang data structures. For example, writing something like defm stack_arrays : BoolOption<"f", "stack-arrays", CodeGenOpts<"StackArrays">, [...] Would generate code referring to `clang::CodeGenOpts::StackArrays`, which does not exist. Differential Revision: https://reviews.llvm.org/D140972
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r--flang/lib/Frontend/CompilerInvocation.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp
index 9ab7030..8bcc3f6 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -126,6 +126,11 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
clang::driver::options::OPT_fno_debug_pass_manager, false))
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))
opts.LLVMPassPlugins.push_back(a->getValue());