[flang-commits] [clang] [flang] [llvm] [Flang][LoopUnroll][Transforms] Add LoopUnrollForVectorization pass (PR #202444)
Nikita Popov via flang-commits
flang-commits at lists.llvm.org
Tue Jun 16 03:49:04 PDT 2026
================
@@ -1247,6 +1241,32 @@ void Flang::ConstructJob(Compilation &C, const JobAction &JA,
assert(FPKeepKindStr && "unknown FramePointerKind");
CmdArgs.push_back(FPKeepKindStr);
+ bool IsO3OrHigher = false;
+ if (const Arg *A = Args.getLastArg(options::OPT_O_Group)) {
+ if (A->getOption().matches(options::OPT_O4)) {
+ CmdArgs.push_back("-O3");
+ D.Diag(diag::warn_O4_is_O3);
+ IsO3OrHigher = true;
+ } else if (A->getOption().matches(options::OPT_Ofast)) {
+ CmdArgs.push_back("-O3");
+ D.Diag(diag::warn_drv_deprecated_arg_ofast_for_flang);
+ IsO3OrHigher = true;
+ } else if (A->getOption().matches(options::OPT_O)) {
+ StringRef S(A->getValue());
+ unsigned OptLevel = 0;
+ if (!S.getAsInteger(10, OptLevel) && OptLevel >= 3)
+ IsO3OrHigher = true;
+ A->render(Args, CmdArgs);
+ } else {
+ A->render(Args, CmdArgs);
+ }
+ }
+
+ if (IsO3OrHigher) {
+ CmdArgs.push_back("-mllvm");
+ CmdArgs.push_back("-enable-outer-loop-vectorization-prep");
----------------
nikic wrote:
Why is this a Fortran-specific pass?
https://github.com/llvm/llvm-project/pull/202444
More information about the flang-commits
mailing list