]> granicus.if.org Git - llvm/commit
[SDA] Don't stop divergence propagation at the IPD.
authorJay Foad <jay.foad@gmail.com>
Wed, 18 Sep 2019 13:40:22 +0000 (13:40 +0000)
committerJay Foad <jay.foad@gmail.com>
Wed, 18 Sep 2019 13:40:22 +0000 (13:40 +0000)
commit07b40ea39f09a7e050ebd67bccd6111761f94811
treec4f9fdf9bae6f24ff948f825c0bc6db8d1211624
parent901ea18f1d9ddec641c9aa88af779bf91e733456
[SDA] Don't stop divergence propagation at the IPD.

Summary:
This fixes B42473 and B42706.

This patch makes the SDA propagate branch divergence until the end of the RPO traversal. Before, the SyncDependenceAnalysis propagated divergence only until the IPD in rpo order. RPO is incompatible with post dominance in the presence of loops. This made the SDA crash because blocks were missed in the propagation.

Reviewers: foad, nhaehnle

Reviewed By: foad

Subscribers: jvesely, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@372223 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/SyncDependenceAnalysis.cpp
test/Analysis/DivergenceAnalysis/AMDGPU/b42473-r1-crash.ll [new file with mode: 0644]