[PATCH] D81806: [DivergenceAnalysis] mark join of divergent loop exits
Sameer Sahasrabuddhe via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 16 01:36:56 PDT 2020
sameerds added a comment.
In D81806#2094869 <https://reviews.llvm.org/D81806#2094869>, @simoll wrote:
> I am a bit surprised this is necessary. Actually, join divergence in `bb3` should come about as a result of `propagateLoopDivergence` for the `[bb1, bb2]` loop and not immediately because it is a divergent exit.
I am not sure what you mean here. propagateLoopDivergence is calling propagateJoinDivergence ... so doesn't that count as a result of the former?
> Also, a divergent loop exit does not automatically become join divergent, eg:
>
> bb1:
> %m.uni = <uni>
> %n.uni = <uni>
> br <uni>, %bb2, %bb3
>
> bb2: [..]
> br <div>, %bb2, %bb3
>
> bb3:
> %x.uni = phi [%m.uni, %bb2], [%n.uni %bb1] <-- divergent loop exit that is not join divergent
But here, bb3 is not a join block for the bb2 loop, since there is only one path from the loop exit reaching bb3.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D81806/new/
https://reviews.llvm.org/D81806
More information about the llvm-commits
mailing list