[llvm] [RISCV] Sink instructions so AVL dominates in RISCVVLOptimizer (PR #184155)
Luke Lau via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 3 19:40:21 PST 2026
================
@@ -1271,10 +1271,24 @@ bool RISCVVLOptimizer::tryReduceVL(MachineInstr &MI,
VLOp.ChangeToImmediate(CommonVL.getImm());
return true;
}
- const MachineInstr *VLMI = MRI->getVRegDef(CommonVL.getReg());
- if (!MDT->dominates(VLMI, &MI)) {
- LLVM_DEBUG(dbgs() << " Abort due to VL not dominating.\n");
- return false;
+ MachineInstr *VLMI = MRI->getVRegDef(CommonVL.getReg());
+ auto VLDominates = [this, &VLMI](MachineInstr &MI) {
+ return MDT->dominates(VLMI, &MI);
+ };
+ if (!VLDominates(MI)) {
+ assert(MI.getNumExplicitDefs() == 1);
+ auto Uses = MRI->use_instructions(MI.getOperand(0).getReg());
+ auto UsesSameBB = make_filter_range(Uses, [&MI](MachineInstr &Use) {
----------------
lukel97 wrote:
Done in 61a24ad4cf9a
https://github.com/llvm/llvm-project/pull/184155
More information about the llvm-commits
mailing list