aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorSlava Zakharin <szakharin@nvidia.com>2025-04-03 10:43:28 -0700
committerGitHub <noreply@github.com>2025-04-03 10:43:28 -0700
commit3f6ae3f0a81ac32aee7633b7c240ce8eb25192ff (patch)
treed341f046f7a1c4d075937e43f120c2b742e1fd39 /flang/lib/Frontend/CompilerInvocation.cpp
parent3e59ff27e5d4506086dfe02ec600adf0baa9543e (diff)
downloadllvm-3f6ae3f0a81ac32aee7633b7c240ce8eb25192ff.zip
llvm-3f6ae3f0a81ac32aee7633b7c240ce8eb25192ff.tar.gz
llvm-3f6ae3f0a81ac32aee7633b7c240ce8eb25192ff.tar.bz2
[flang] Added driver options for arrays repacking. (#134002)
Added options: * -f[no-]repack-arrays * -f[no-]stack-repack-arrays * -frepack-arrays-contiguity=whole/innermost
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r--flang/lib/Frontend/CompilerInvocation.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp
index 466d939..6f87a18 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -1476,6 +1476,19 @@ bool CompilerInvocation::createFromArgs(
clang::driver::options::OPT_fno_realloc_lhs, true))
invoc.loweringOpts.setReallocateLHS(false);
+ invoc.loweringOpts.setRepackArrays(
+ args.hasFlag(clang::driver::options::OPT_frepack_arrays,
+ clang::driver::options::OPT_fno_repack_arrays,
+ /*default=*/false));
+ invoc.loweringOpts.setStackRepackArrays(
+ args.hasFlag(clang::driver::options::OPT_fstack_repack_arrays,
+ clang::driver::options::OPT_fno_stack_repack_arrays,
+ /*default=*/false));
+ if (auto *arg = args.getLastArg(
+ clang::driver::options::OPT_frepack_arrays_contiguity_EQ))
+ invoc.loweringOpts.setRepackArraysWhole(arg->getValue() ==
+ llvm::StringRef{"whole"});
+
success &= parseFrontendArgs(invoc.getFrontendOpts(), args, diags);
parseTargetArgs(invoc.getTargetOpts(), args);
parsePreprocessorArgs(invoc.getPreprocessorOpts(), args);