[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 21:51:02 PDT 2020
sameerds added a comment.
@simoll, I've been staring at the code for some time now, and I am no longer sure that I have a proper grasp on the problem. It seems my fix works, but not for the reasons that I thought it should. Running the unmodified analysis on "join-at-loop-exit.ll" shows the following debug output:
propBranchDiv bb1
propJoinDiv bb3
propLoopDiv bb1
bb3 is a joindivergent exit for the [bb1, bb2] loop, but it seems that propLoopDiv does not visit it at all. That would imply that bb3 is not present in the call to join_blocks() on the loop. Is that expected behaviour in the current implementation? When does join_blocks() return the correct set of blocks for a loop?
My fix seems like a really big hammer that works because propBranchDiv gets called on bb1. But that was not my intention when I created the fix.
Do you still think that we should go ahead with this blunt fix? What is the ETA for the proper fix?
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