[all-commits] [llvm/llvm-project] b0f0dd: [LLVM][Uniformity] Propagate temporal divergence e...
Sameer Sahasrabuddhe via All-commits
all-commits at lists.llvm.org
Mon May 15 07:48:53 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: b0f0dd2554c726e5192ad8c98fb7a2f08c37994c
https://github.com/llvm/llvm-project/commit/b0f0dd2554c726e5192ad8c98fb7a2f08c37994c
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2023-05-15 (Mon, 15 May 2023)
Changed paths:
M llvm/include/llvm/ADT/GenericUniformityImpl.h
M llvm/lib/Analysis/UniformityAnalysis.cpp
M llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/temporal_diverge.ll
Log Message:
-----------
[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
More information about the All-commits
mailing list