[clang] [flang] [flang] Add -f[no-]slp-vectorize flags (PR #132801)
Tarun Prabhu via cfe-commits
cfe-commits at lists.llvm.org
Mon Mar 24 11:45:33 PDT 2025
================
@@ -161,6 +161,14 @@ void Flang::addCodegenOptions(const ArgList &Args,
options::OPT_fno_vectorize, enableVec))
CmdArgs.push_back("-vectorize-loops");
+ // -fslp-vectorize is enabled based on the optimization level selected.
+ bool EnableSLPVec = shouldEnableVectorizerAtOLevel(Args, true);
+ OptSpecifier SLPVectAliasOption =
+ EnableSLPVec ? options::OPT_O_Group : options::OPT_fslp_vectorize;
+ if (Args.hasFlag(options::OPT_fslp_vectorize, SLPVectAliasOption,
+ options::OPT_fno_slp_vectorize, EnableSLPVec))
+ CmdArgs.push_back("-vectorize-slp");
+
----------------
tarunprabhu wrote:
I think this block and the one above it that adds the `-vectorize-loops` `-fc1` option can be shared between `clang` and `flang`. The corresponding code in clang is [here](https://github.com/llvm/llvm-project/blob/8d3dc1ed5656a3e69e4195d58684a7f4bf0ff5cc/clang/lib/Driver/ToolChains/Clang.cpp#L7600). Such code is typically moved to `clang/lib/Driver/ToolChains/CommonArgs.cpp`. It's probably better to share it rather than duplicate it. See, for example, [this](https://github.com/llvm/llvm-project/pull/109210/files)
https://github.com/llvm/llvm-project/pull/132801
More information about the cfe-commits
mailing list