diff options
| author | Sameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com> | 2023-03-10 12:44:20 +0530 |
|---|---|---|
| committer | Sameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com> | 2023-03-10 14:23:40 +0530 |
| commit | fd98416d378062d1e37349f91a121651fe11c24e (patch) | |
| tree | ed3151c86066321bf9b0a78f89b021c2ab18055b /llvm/lib/CodeGen/MachineUniformityAnalysis.cpp | |
| parent | 9470169fcbe93ccf9f97b56bfb23c636e32133d8 (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.cpp | 2 |
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); } |
