diff options
author | David Truby <david.truby@arm.com> | 2025-01-16 06:43:32 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-16 06:43:32 +0000 |
commit | 0195ec452e16a0ff4b4f4ff2e2ea5a1dd5a20563 (patch) | |
tree | fad6be286d32be76d5743a2876437d0363773edc /flang/lib/Frontend | |
parent | 1797fb6b233c548817008b9c39c6af06d12cae99 (diff) | |
download | llvm-0195ec452e16a0ff4b4f4ff2e2ea5a1dd5a20563.zip llvm-0195ec452e16a0ff4b4f4ff2e2ea5a1dd5a20563.tar.gz llvm-0195ec452e16a0ff4b4f4ff2e2ea5a1dd5a20563.tar.bz2 |
[flang] Add -f[no-]unroll-loops flag (#122906)
Diffstat (limited to 'flang/lib/Frontend')
-rw-r--r-- | flang/lib/Frontend/CompilerInvocation.cpp | 4 | ||||
-rw-r--r-- | flang/lib/Frontend/FrontendActions.cpp | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp index 5e71273..15b1e1e 100644 --- a/flang/lib/Frontend/CompilerInvocation.cpp +++ b/flang/lib/Frontend/CompilerInvocation.cpp @@ -246,6 +246,10 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts, clang::driver::options::OPT_fno_loop_versioning, false)) opts.LoopVersioning = 1; + opts.UnrollLoops = args.hasFlag(clang::driver::options::OPT_funroll_loops, + clang::driver::options::OPT_fno_unroll_loops, + (opts.OptimizationLevel > 1)); + opts.AliasAnalysis = opts.OptimizationLevel > 0; // -mframe-pointer=none/non-leaf/all option. diff --git a/flang/lib/Frontend/FrontendActions.cpp b/flang/lib/Frontend/FrontendActions.cpp index 52a18d5..b0545a7 100644 --- a/flang/lib/Frontend/FrontendActions.cpp +++ b/flang/lib/Frontend/FrontendActions.cpp @@ -1028,6 +1028,8 @@ void CodeGenAction::runOptimizationPipeline(llvm::raw_pwrite_stream &os) { si.registerCallbacks(pic, &mam); if (ci.isTimingEnabled()) si.getTimePasses().setOutStream(ci.getTimingStreamLLVM()); + pto.LoopUnrolling = opts.UnrollLoops; + pto.LoopInterleaving = opts.UnrollLoops; llvm::PassBuilder pb(targetMachine, pto, pgoOpt, &pic); // Attempt to load pass plugins and register their callbacks with PB. |