aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorSameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com>2023-05-15 17:06:06 +0530
committerSameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com>2023-05-15 20:17:43 +0530
commitb0f0dd2554c726e5192ad8c98fb7a2f08c37994c (patch)
tree1806fd3fce3fab489729d763bc1c3ec8f00f175a /clang/lib/Frontend/CompilerInvocation.cpp
parent8c3a8d17c8a154894895c48a304a04df9ece4328 (diff)
downloadllvm-b0f0dd2554c726e5192ad8c98fb7a2f08c37994c.zip
llvm-b0f0dd2554c726e5192ad8c98fb7a2f08c37994c.tar.gz
llvm-b0f0dd2554c726e5192ad8c98fb7a2f08c37994c.tar.bz2
[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
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions