Uniformity analysis is mainly concerned with the uniformity of values. But it is
sometimes useful to ask if an instruction is uniform, for example, if the
instruction is a terminator. On LLVM IR, every Instruction is a Value, so the
queries like isUniform() need to be overloaded so that the most derived class
always wins.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
I'm fine with the patch but I don't particularly like the fact that DA has an isDivergent(Instruction *) in the first place, because it's really unclear what it means - for non-void instructions I guess it's the same as isDivergent(Value *), and for conditional branches it means something specific, and for other instructions...? I'd much prefer for have a more specific isDivergentBranch(BranchInst *).