diff options
author | Ryotaro Kasuga <kasuga.ryotaro@fujitsu.com> | 2025-07-04 20:06:53 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-04 20:06:53 +0900 |
commit | 3099b7eb5da7605995ab89695353866189e06ac3 (patch) | |
tree | 62fa6e89846dd319e4027ee60f38e492faf19283 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | 03cfba484fffe97becaeee5a42bf2d0d84a9555c (diff) | |
download | llvm-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