Files
llvm-project/llvm/lib/CodeGen/MachineSSAContext.cpp
Pankaj Dwivedi f8416c8643 [UniformityAnalysis] Replace DivergentValues with UniformValues for conservative divergence queries (#180509)
This patch replaces DivergentValues with UniformValues as the single
source of truth for tracking divergence in UniformityInfo.

Old model: DivergentValues starts empty; values are added as divergence
is propagated. isDivergent(V) returns DivergentValues.count(V).

New model: UniformValues starts fully populated (all
instructions/arguments for IR, all register defs for MIR) during
initialize(). Values are removed as divergence is propagated.
isDivergent(V) returns !UniformValues.contains(V), so any value not
present in the set (e.g., a newly created instruction that was not
present during analysis) is conservatively treated as divergent. This
avoids silent miscompilations when transformation passes introduce new
values and query their uniformity.

---------

Co-authored-by: padivedi <padivedi@amd.com>
2026-03-27 12:57:17 +05:30

4.1 KiB