[PATCH] D136277: [LoopInterchange] Simplify DepMatrix to a dependency vector.

Michael Kruse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 19 11:08:57 PDT 2022


Meinersbur created this revision.
Meinersbur added reviewers: bmahjour, LoopOptWG, fhahn, congzhe.
Herald added a subscriber: hiraditya.
Herald added a project: All.
Meinersbur requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

It is not necessary to store all pairwise dependencies when it is sufficient to know which kind of dependencies occured.

This might have some behavioral effects such as when two dependencies can be interchange on their own but combined into a single loop nest they can not. Example:
Dependence 1: [<,>] (carried by outer loop)
Dependence 2: [=,<] (carried by inner loop)
when combined:
[<=,<>]
which would not be considered interchangeable.

In any case, all of our current tests pass after this change and is significantly more efficient (still quadratic in the number of memory instructions, because we have to query DA for each pair)


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D136277

Files:
  llvm/lib/Transforms/Scalar/LoopInterchange.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D136277.468975.patch
Type: text/x-patch
Size: 9463 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221019/9c54e2c5/attachment.bin>


More information about the llvm-commits mailing list