[PATCH] D76132: [LoopUnrollAndJam] Changed safety checks to consider more than 2-levels loop nest.
Whitney Tsang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 26 08:38:57 PDT 2020
Whitney updated this revision to Diff 252851.
Whitney added a comment.
Thanks @Meinersbur ! I mostly used your code directly, except
for (unsigned d = 1; d < UnrollLevel; ++d) {
// Check if dependence is carried by an outer loop.
// That is, changing
// (0,>,>,*,*)
// to
// (0,>,>=,*,*)
// will still not violate the dependency.
if (D->getDirection(d) == Dependence::DVEntry::GT)
return true;
}
which I think should be safe as long as the one dependence is not EQ then should be safe.
for i
for j <= unroll loop
for k
A[i][j][k]
A[i-1][j+1][k]
Loop-j should be safe to unroll and jam. Am I right?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D76132/new/
https://reviews.llvm.org/D76132
Files:
llvm/include/llvm/Transforms/Utils/UnrollLoop.h
llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp
llvm/test/Transforms/LoopUnrollAndJam/dependencies.ll
llvm/test/Transforms/LoopUnrollAndJam/dependencies_multidims.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D76132.252851.patch
Type: text/x-patch
Size: 29532 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200326/b7acf3ac/attachment-0001.bin>
More information about the llvm-commits
mailing list