Skip to content

Commit 30cdcde

Browse files
committed
fixup! Add setMemRefs to the end of the existing BuildMI calls.
1 parent 394b417 commit 30cdcde

File tree

1 file changed

+32
-31
lines changed

1 file changed

+32
-31
lines changed

llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -312,36 +312,37 @@ bool RISCVExpandPseudo::expandRV32ZdinxStore(MachineBasicBlock &MBB,
312312
TRI->getSubReg(MBBI->getOperand(0).getReg(), RISCV::sub_gpr_even);
313313
Register Hi =
314314
TRI->getSubReg(MBBI->getOperand(0).getReg(), RISCV::sub_gpr_odd);
315-
auto MIBLo = BuildMI(MBB, MBBI, DL, TII->get(RISCV::SW))
316-
.addReg(Lo, getKillRegState(MBBI->getOperand(0).isKill()))
317-
.addReg(MBBI->getOperand(1).getReg())
318-
.add(MBBI->getOperand(2));
319315

320316
assert(MBBI->hasOneMemOperand() && "Expected mem operand");
321317
MachineMemOperand *OldMMO = MBBI->memoperands().front();
322318
MachineFunction *MF = MBB.getParent();
323319
MachineMemOperand *MMOLo = MF->getMachineMemOperand(OldMMO, 0, 4);
324320
MachineMemOperand *MMOHi = MF->getMachineMemOperand(OldMMO, 4, 4);
325-
MIBLo.setMemRefs(MMOLo);
321+
322+
BuildMI(MBB, MBBI, DL, TII->get(RISCV::SW))
323+
.addReg(Lo, getKillRegState(MBBI->getOperand(0).isKill()))
324+
.addReg(MBBI->getOperand(1).getReg())
325+
.add(MBBI->getOperand(2))
326+
.setMemRefs(MMOLo);
326327

327328
if (MBBI->getOperand(2).isGlobal() || MBBI->getOperand(2).isCPI()) {
328329
// FIXME: Zdinx RV32 can not work on unaligned memory.
329330
assert(!STI->hasFastUnalignedAccess());
330331

331332
assert(MBBI->getOperand(2).getOffset() % 8 == 0);
332333
MBBI->getOperand(2).setOffset(MBBI->getOperand(2).getOffset() + 4);
333-
auto MIBHi = BuildMI(MBB, MBBI, DL, TII->get(RISCV::SW))
334-
.addReg(Hi, getKillRegState(MBBI->getOperand(0).isKill()))
335-
.add(MBBI->getOperand(1))
336-
.add(MBBI->getOperand(2));
337-
MIBHi.setMemRefs(MMOHi);
334+
BuildMI(MBB, MBBI, DL, TII->get(RISCV::SW))
335+
.addReg(Hi, getKillRegState(MBBI->getOperand(0).isKill()))
336+
.add(MBBI->getOperand(1))
337+
.add(MBBI->getOperand(2))
338+
.setMemRefs(MMOHi);
338339
} else {
339340
assert(isInt<12>(MBBI->getOperand(2).getImm() + 4));
340-
auto MIBHi = BuildMI(MBB, MBBI, DL, TII->get(RISCV::SW))
341-
.addReg(Hi, getKillRegState(MBBI->getOperand(0).isKill()))
342-
.add(MBBI->getOperand(1))
343-
.addImm(MBBI->getOperand(2).getImm() + 4);
344-
MIBHi.setMemRefs(MMOHi);
341+
BuildMI(MBB, MBBI, DL, TII->get(RISCV::SW))
342+
.addReg(Hi, getKillRegState(MBBI->getOperand(0).isKill()))
343+
.add(MBBI->getOperand(1))
344+
.addImm(MBBI->getOperand(2).getImm() + 4)
345+
.setMemRefs(MMOHi);
345346
}
346347
MBBI->eraseFromParent();
347348
return true;
@@ -370,35 +371,35 @@ bool RISCVExpandPseudo::expandRV32ZdinxLoad(MachineBasicBlock &MBB,
370371
bool IsOp1EqualToLo = Lo == MBBI->getOperand(1).getReg();
371372
// Order: Lo, Hi
372373
if (!IsOp1EqualToLo) {
373-
auto MIBLo = BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Lo)
374-
.addReg(MBBI->getOperand(1).getReg())
375-
.add(MBBI->getOperand(2));
376-
MIBLo.setMemRefs(MMOLo);
374+
BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Lo)
375+
.addReg(MBBI->getOperand(1).getReg())
376+
.add(MBBI->getOperand(2))
377+
.setMemRefs(MMOLo);
377378
}
378379

379380
if (MBBI->getOperand(2).isGlobal() || MBBI->getOperand(2).isCPI()) {
380381
auto Offset = MBBI->getOperand(2).getOffset();
381382
assert(MBBI->getOperand(2).getOffset() % 8 == 0);
382383
MBBI->getOperand(2).setOffset(Offset + 4);
383-
auto MIBHi = BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Hi)
384-
.addReg(MBBI->getOperand(1).getReg())
385-
.add(MBBI->getOperand(2));
384+
BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Hi)
385+
.addReg(MBBI->getOperand(1).getReg())
386+
.add(MBBI->getOperand(2))
387+
.setMemRefs(MMOHi);
386388
MBBI->getOperand(2).setOffset(Offset);
387-
MIBHi.setMemRefs(MMOHi);
388389
} else {
389390
assert(isInt<12>(MBBI->getOperand(2).getImm() + 4));
390-
auto MIBHi = BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Hi)
391-
.addReg(MBBI->getOperand(1).getReg())
392-
.addImm(MBBI->getOperand(2).getImm() + 4);
393-
MIBHi.setMemRefs(MMOHi);
391+
BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Hi)
392+
.addReg(MBBI->getOperand(1).getReg())
393+
.addImm(MBBI->getOperand(2).getImm() + 4)
394+
.setMemRefs(MMOHi);
394395
}
395396

396397
// Order: Hi, Lo
397398
if (IsOp1EqualToLo) {
398-
auto MIBLo = BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Lo)
399-
.addReg(MBBI->getOperand(1).getReg())
400-
.add(MBBI->getOperand(2));
401-
MIBLo.setMemRefs(MMOLo);
399+
BuildMI(MBB, MBBI, DL, TII->get(RISCV::LW), Lo)
400+
.addReg(MBBI->getOperand(1).getReg())
401+
.add(MBBI->getOperand(2))
402+
.setMemRefs(MMOLo);
402403
}
403404

404405
MBBI->eraseFromParent();

0 commit comments

Comments
 (0)