aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorRyotaro Kasuga <kasuga.ryotaro@fujitsu.com>2025-07-04 20:06:53 +0900
committerGitHub <noreply@github.com>2025-07-04 20:06:53 +0900
commit3099b7eb5da7605995ab89695353866189e06ac3 (patch)
tree62fa6e89846dd319e4027ee60f38e492faf19283 /flang/lib/Frontend/CompilerInvocation.cpp
parent03cfba484fffe97becaeee5a42bf2d0d84a9555c (diff)
downloadllvm-3099b7eb5da7605995ab89695353866189e06ac3.zip
llvm-3099b7eb5da7605995ab89695353866189e06ac3.tar.gz
llvm-3099b7eb5da7605995ab89695353866189e06ac3.tar.bz2
[Passes] Move LoopInterchange into optimization pipeline (#145503)
As mentioned in https://github.com/llvm/llvm-project/pull/145071, LoopInterchange should be part of the optimization pipeline rather than the simplification pipeline. This patch moves LoopInterchange into the optimization pipeline. More contexts: - By default, LoopInterchange attempts to improve data locality, however, it also takes increasing vectorization opportunities into account. Given that, it is reasonable to run it as close to vectorization as possible. - I looked into previous changes related to the placement of LoopInterchange, but couldn’t find any strong motivation suggesting that it benefits other simplifications. - As far as I tried some tests (including llvm-test-suite), removing LoopInterchange from the simplification pipeline does not affect other simplifications. Therefore, there doesn't seem to be much value in keeping it there. - The new position reduces compile-time for ThinLTO, probably because it only runs once per function in post-link optimization, rather than both in pre-link and post-link optimization. I haven't encountered any cases where the positional difference affects optimization results, so please feel free to revert if you run into any issues.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions