[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