summaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
diff options
context:
space:
mode:
authorSameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com>2023-03-10 12:44:20 +0530
committerSameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com>2023-03-10 14:23:40 +0530
commitfd98416d378062d1e37349f91a121651fe11c24e (patch)
treeed3151c86066321bf9b0a78f89b021c2ab18055b /llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
parent9470169fcbe93ccf9f97b56bfb23c636e32133d8 (diff)
[llvm][Uniformity] consistently handle always-uniform instructions
An instruction that is "always uniform" is so even if it occurs in an irreducible cycle. The output produced by such an instruction may depend on the implementation defined cycle hierarchy, but that does not affect the uniformity of the output. In other words, an "always uniform" instruction is uniform even if it is not m-converged. Reviewed By: ruiling, ronlieb Differential Revision: https://reviews.llvm.org/D145572
Diffstat (limited to 'llvm/lib/CodeGen/MachineUniformityAnalysis.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineUniformityAnalysis.cpp2
1 files changed, 0 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/MachineUniformityAnalysis.cpp b/llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
index 2aa09f73ed2c..0c44cd433650 100644
--- a/llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
+++ b/llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
@@ -75,8 +75,6 @@ void llvm::GenericUniformityAnalysisImpl<MachineSSAContext>::pushUsers(
Register Reg) {
const auto &RegInfo = F.getRegInfo();
for (MachineInstr &UserInstr : RegInfo.use_instructions(Reg)) {
- if (isAlwaysUniform(UserInstr))
- continue;
if (markDivergent(UserInstr))
Worklist.push_back(&UserInstr);
}