[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