[all-commits] [llvm/llvm-project] 05ae04: [DA][SDA] SyncDependenceAnalysis re-write

Simon Moll via All-commits all-commits at lists.llvm.org
Wed Sep 30 08:37:24 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 05ae04c396519cca9ef50d3b9cafb0cd9c87d1d7
      https://github.com/llvm/llvm-project/commit/05ae04c396519cca9ef50d3b9cafb0cd9c87d1d7
  Author: Simon Moll <simon.moll at emea.nec.com>
  Date:   2020-09-30 (Wed, 30 Sep 2020)

  Changed paths:
    M llvm/include/llvm/Analysis/DivergenceAnalysis.h
    M llvm/include/llvm/Analysis/SyncDependenceAnalysis.h
    M llvm/lib/Analysis/DivergenceAnalysis.cpp
    M llvm/lib/Analysis/SyncDependenceAnalysis.cpp
    M llvm/test/Analysis/DivergenceAnalysis/AMDGPU/hidden_loopdiverge.ll
    M llvm/test/Analysis/DivergenceAnalysis/AMDGPU/trivial-join-at-loop-exit.ll

  Log Message:
  -----------
  [DA][SDA] SyncDependenceAnalysis re-write

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.

Reviewed By: sameerds

Differential Revision: https://reviews.llvm.org/D84413




More information about the All-commits mailing list