[clang] [flang] [flang] Enable alias tags pass by default (PR #73111)
Kiran Chandramohan via cfe-commits
cfe-commits at lists.llvm.org
Mon Nov 27 05:58:48 PST 2023
================
@@ -142,6 +142,26 @@ void Flang::addCodegenOptions(const ArgList &Args,
if (shouldLoopVersion(Args))
CmdArgs.push_back("-fversion-loops-for-stride");
+ Arg *aliasAnalysis = Args.getLastArg(options::OPT_falias_analysis,
+ options::OPT_fno_alias_analysis);
+ Arg *optLevel =
+ Args.getLastArg(options::OPT_Ofast, options::OPT_O, options::OPT_O4);
----------------
kiranchandramohan wrote:
> That's fine, but then one has to decide whether -f{no}-alias-analysis overrides -O{n} or not? I think that "explicit" request from a user should always take precedence. This leads to (pseudo code):
>
> opts.AliasAnalysis = 0;
> if (opt level requiring alias analysis)
> opts.AliasAnalysis = 1;
>
> / / User request takes precedence when it comes to alias analysis.
> if (-falias-analysis or -fno-alias-analysis) then
> "do whatever the user requested"
>Separately, could you check what Clang does and make sure that that would be consistent?
@banach-space This is exactly the handling in the front-end driver as given below (and in `lib/Frontend/CompilerInvocation`). The flang driver is only deciding whether to forward or not.
```
opts.AliasAnalysis = opts.OptimizationLevel > 0;
if (auto *arg =
args.getLastArg(clang::driver::options::OPT_falias_analysis,
clang::driver::options::OPT_fno_alias_analysis))
opts.AliasAnalysis =
arg->getOption().matches(clang::driver::options::OPT_falias_analysis);
```
https://github.com/llvm/llvm-project/pull/73111
More information about the cfe-commits
mailing list