Skip to content

Commit bdb4012

Browse files
committed
[CodeGen] Remove parameter from LiveRangeEdit::canRematerializeAt [NFC]
Only one caller cares about the true case of this parameter, so move the check to that single caller. Note that RegisterCoalescer seems like it should care, but it already duplicates the check several lines above.
1 parent befb52d commit bdb4012

File tree

5 files changed

+6
-14
lines changed

5 files changed

+6
-14
lines changed

llvm/include/llvm/CodeGen/LiveRangeEdit.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,9 +200,7 @@ class LiveRangeEdit : private MachineRegisterInfo::Delegate {
200200

201201
/// canRematerializeAt - Determine if ParentVNI can be rematerialized at
202202
/// UseIdx. It is assumed that parent_.getVNINfoAt(UseIdx) == ParentVNI.
203-
/// When cheapAsAMove is set, only cheap remats are allowed.
204-
bool canRematerializeAt(Remat &RM, VNInfo *OrigVNI, SlotIndex UseIdx,
205-
bool cheapAsAMove);
203+
bool canRematerializeAt(Remat &RM, VNInfo *OrigVNI, SlotIndex UseIdx);
206204

207205
/// rematerializeAt - Rematerialize RM.ParentVNI into DestReg by inserting an
208206
/// instruction into MBB before MI. The new instruction is mapped, but

llvm/lib/CodeGen/InlineSpiller.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ bool InlineSpiller::reMaterializeFor(LiveInterval &VirtReg, MachineInstr &MI) {
644644
LiveRangeEdit::Remat RM(ParentVNI);
645645
RM.OrigMI = LIS.getInstructionFromIndex(OrigVNI->def);
646646

647-
if (!Edit->canRematerializeAt(RM, OrigVNI, UseIdx, false)) {
647+
if (!Edit->canRematerializeAt(RM, OrigVNI, UseIdx)) {
648648
markValueUsed(&VirtReg, ParentVNI);
649649
LLVM_DEBUG(dbgs() << "\tcannot remat for " << UseIdx << '\t' << MI);
650650
return false;

llvm/lib/CodeGen/LiveRangeEdit.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ bool LiveRangeEdit::allUsesAvailableAt(const MachineInstr *OrigMI,
156156
}
157157

158158
bool LiveRangeEdit::canRematerializeAt(Remat &RM, VNInfo *OrigVNI,
159-
SlotIndex UseIdx, bool cheapAsAMove) {
159+
SlotIndex UseIdx) {
160160
assert(ScannedRemattable && "Call anyRematerializable first");
161161

162162
// Use scanRemattable info.
@@ -168,10 +168,6 @@ bool LiveRangeEdit::canRematerializeAt(Remat &RM, VNInfo *OrigVNI,
168168
assert(RM.OrigMI && "No defining instruction for remattable value");
169169
DefIdx = LIS.getInstructionIndex(*RM.OrigMI);
170170

171-
// If only cheap remats were requested, bail out early.
172-
if (cheapAsAMove && !TII.isAsCheapAsAMove(*RM.OrigMI))
173-
return false;
174-
175171
// Verify that all used registers are available with the same values.
176172
if (!allUsesAvailableAt(RM.OrigMI, DefIdx, UseIdx))
177173
return false;

llvm/lib/CodeGen/RegisterCoalescer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1398,7 +1398,7 @@ bool RegisterCoalescer::reMaterializeTrivialDef(const CoalescerPair &CP,
13981398

13991399
LiveRangeEdit::Remat RM(ValNo);
14001400
RM.OrigMI = DefMI;
1401-
if (!Edit.canRematerializeAt(RM, ValNo, CopyIdx, true))
1401+
if (!Edit.canRematerializeAt(RM, ValNo, CopyIdx))
14021402
return false;
14031403

14041404
DebugLoc DL = CopyMI->getDebugLoc();

llvm/lib/CodeGen/SplitKit.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -591,9 +591,6 @@ SlotIndex SplitEditor::buildCopy(Register FromReg, Register ToReg,
591591
bool SplitEditor::rematWillIncreaseRestriction(const MachineInstr *DefMI,
592592
MachineBasicBlock &MBB,
593593
SlotIndex UseIdx) const {
594-
if (!DefMI)
595-
return false;
596-
597594
const MachineInstr *UseMI = LIS.getInstructionFromIndex(UseIdx);
598595
if (!UseMI)
599596
return false;
@@ -640,7 +637,8 @@ VNInfo *SplitEditor::defFromParent(unsigned RegIdx, const VNInfo *ParentVNI,
640637
if (OrigVNI) {
641638
LiveRangeEdit::Remat RM(ParentVNI);
642639
RM.OrigMI = LIS.getInstructionFromIndex(OrigVNI->def);
643-
if (Edit->canRematerializeAt(RM, OrigVNI, UseIdx, true)) {
640+
if (RM.OrigMI && TII.isAsCheapAsAMove(*RM.OrigMI) &&
641+
Edit->canRematerializeAt(RM, OrigVNI, UseIdx)) {
644642
if (!rematWillIncreaseRestriction(RM.OrigMI, MBB, UseIdx)) {
645643
SlotIndex Def = Edit->rematerializeAt(MBB, I, Reg, RM, TRI, Late);
646644
++NumRemats;

0 commit comments

Comments
 (0)