[llvm] [Uniformity] Implement per-output machine uniformity analysis (PR #179275)
Pankaj Dwivedi via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 12 01:34:42 PST 2026
================
@@ -2367,10 +2367,11 @@ class LLVM_ABI TargetInstrInfo : public MCInstrInfo {
llvm_unreachable("impossible call instruction");
}
- /// Return the uniformity behavior of the given instruction.
- virtual InstructionUniformity
- getInstructionUniformity(const MachineInstr &MI) const {
- return InstructionUniformity::Default;
+ /// Return the uniformity behavior of the given value (def operand).
+ /// \p DefIdx specifies which output to query (for multi-output instructions).
+ virtual ValueUniformity getValueUniformity(const MachineInstr &MI,
+ unsigned DefIdx = 0) const {
+ return ValueUniformity::Default;
----------------
PankajDwivedi-25 wrote:
I agree, right now if you see getValueUniformity function, it's single function responsible for handling everything, and if you see defIdx is only used by `isIntrinsicSourceOfDivergence`. There is no clear separation inside getValueUniformity, which makes it complex.
https://github.com/llvm/llvm-project/pull/179275
More information about the llvm-commits
mailing list