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>
4.1 KiB
4.1 KiB