[PATCH] D141307: Add -f[no-]loop-versioning option
Andrzej Warzynski via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Apr 7 06:30:07 PDT 2023
awarzynski added a comment.
Mats, thanks for working on this! Just a few minor suggestions from me.
================
Comment at: clang/lib/Driver/ToolChains/Flang.cpp:55
+static bool shouldLoopVersion(const ArgList &Args) {
+ if (Arg *A = Args.getLastArg(options::OPT_Ofast, options::OPT_O,
----------------
Could you add a short Docstring, pls? In particular, is the logic implemented by this method consistent with GFortran? Are there any external docs that could be referred to here?
================
Comment at: clang/lib/Driver/ToolChains/Flang.cpp:56
+static bool shouldLoopVersion(const ArgList &Args) {
+ if (Arg *A = Args.getLastArg(options::OPT_Ofast, options::OPT_O,
+ options::OPT_O4, options::OPT_floop_versioning,
----------------
Please rewrite this to use [[ https://llvm.org/docs/CodingStandards.html#use-early-exits-and-continue-to-simplify-code | early exit ]], e.g.:
```
Arg *LoopVersionOption = Args.getLastArg(options::OPT_Ofast, options::OPT_O,
options::OPT_O4, options::OPT_floop_versioning,
options::OPT_fno_loop_versioning)
if !(LoopVersionOption)
return false;
// The remaining logic HERE
```
================
Comment at: clang/lib/Driver/ToolChains/Flang.cpp:109-110
addDebugInfoKind(CmdArgs, DebugInfoKind);
+ if (shouldLoopVersion(Args))
+ CmdArgs.push_back("-fversion-loops-for-stride");
}
----------------
Would you classify this as a code-gen option? Alongside `-fstack-arrays` and `-flang-experimental-hlfir`? It sound like we could introduce another hook here, `adddCodeGenOptions`?
================
Comment at: flang/test/Driver/version-loops.f90:2
+! Test that flang-new forwards the -f{no-,}version-loops-for-stride
+! options corredly to flang-new -fc1 for different variants of optimisation
+! and explicit flags.
----------------
================
Comment at: flang/test/Driver/version-loops.f90:5
+
+! RUN: %flang -fsyntax-only -### %s -o %t 2>&1 \
+! RUN: -O3 \
----------------
[nit] If you are using `-###`, then you can just skip `-fsyntax-only` (it doesn't really matter what "action" is requested from the frontend driver).
================
Comment at: flang/test/Driver/version-loops.f90:33-34
+
+! CHECK: "-fversion-loops-for-stride"
+! CHECK: "-O3"
+
----------------
Similar suggestion for other `CHECK` lines - this will make the test a bit more explicit about the expected output.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141307/new/
https://reviews.llvm.org/D141307
More information about the cfe-commits
mailing list