[PATCH] D84413: [DA][SDA] SyncDependenceAnalysis re-write
Simon Moll via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 23 07:45:12 PDT 2020
simoll created this revision.
simoll added reviewers: arsenm, sameerds, nhaehnle, foad, rampitec.
Herald added subscribers: llvm-commits, kerbowa, bmahjour, hiraditya, tpr, wdng, jvesely.
Herald added a project: LLVM.
This patch achieves two things:
1. It breaks up the `join_blocks` interface between the SDA to the DA to return two separate sets for divergent loops exits and divergent, disjoint path joins.
2. It updates the SDA algorithm to run in O(n) time and improves the precision on divergent loop exits.
This fixes `https://bugs.llvm.org/show_bug.cgi?id=46372` (by virtue of the improved `join_blocks` interface) and revealed an imprecise expected result in the `Analysis/DivergenceAnalysis/AMDGPU/hidden_loopdiverge.ll` test.
This should work as is (feedback on any issues welcome). I'll clean up the code as we proceed with the review.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D84413
Files:
llvm/include/llvm/Analysis/DivergenceAnalysis.h
llvm/include/llvm/Analysis/SyncDependenceAnalysis.h
llvm/lib/Analysis/DivergenceAnalysis.cpp
llvm/lib/Analysis/SyncDependenceAnalysis.cpp
llvm/test/Analysis/DivergenceAnalysis/AMDGPU/hidden_loopdiverge.ll
llvm/test/Analysis/DivergenceAnalysis/AMDGPU/trivial-join-at-loop-exit.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D84413.280112.patch
Type: text/x-patch
Size: 45689 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200723/1c424556/attachment-0001.bin>
More information about the llvm-commits
mailing list