diff options
author | Sameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com> | 2023-05-15 17:06:06 +0530 |
---|---|---|
committer | Sameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com> | 2023-05-15 20:17:43 +0530 |
commit | b0f0dd2554c726e5192ad8c98fb7a2f08c37994c (patch) | |
tree | 1806fd3fce3fab489729d763bc1c3ec8f00f175a /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 8c3a8d17c8a154894895c48a304a04df9ece4328 (diff) | |
download | llvm-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