[LLVM][Uniformity] Propagate temporal divergence explicitly
At a cycle C with divergent exits, UA was using a naive traversal of the exiting edges to locate blocks that may use values defined inside C. But this traversal fails when it encounters a cycle. This is now replaced with a much simpler propagation that iterates over every instruction in C and checks any uses that are outside C. But such an iteration can be expensive when C is very large; the original strategy may need to be reconsidered if there is a regression in compilation times. Also fixed lit tests that should have originally caught the missed propagation of temporal divergence. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D149646
Loading
Please sign in to comment