Skip to content

[CodeGen] Do not pass MF into MachineRegisterInfo methods. NFC. #84770

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions llvm/include/llvm/CodeGen/MachineRegisterInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -244,14 +244,13 @@ class MachineRegisterInfo {
bool isUpdatedCSRsInitialized() const { return IsUpdatedCSRsInitialized; }

/// Returns true if a register can be used as an argument to a function.
bool isArgumentRegister(const MachineFunction &MF, MCRegister Reg) const;
bool isArgumentRegister(MCRegister Reg) const;

/// Returns true if a register is a fixed register.
bool isFixedRegister(const MachineFunction &MF, MCRegister Reg) const;
bool isFixedRegister(MCRegister Reg) const;

/// Returns true if a register is a general purpose register.
bool isGeneralPurposeRegister(const MachineFunction &MF,
MCRegister Reg) const;
bool isGeneralPurposeRegister(MCRegister Reg) const;
Comment on lines +247 to +253
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bwendling @nickdesaulniers these methods were added in https://reviews.llvm.org/D110869 but never used. Can we remove them instead?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Go for it!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Go for it!

Thanks - done in 575ca67.


/// Disables the register from the list of CSRs.
/// I.e. the register will not appear as part of the CSR mask.
Expand Down Expand Up @@ -930,7 +929,7 @@ class MachineRegisterInfo {

/// freezeReservedRegs - Called by the register allocator to freeze the set
/// of reserved registers before allocation begins.
void freezeReservedRegs(const MachineFunction&);
void freezeReservedRegs();

/// reserveReg -- Mark a register as reserved so checks like isAllocatable
/// will not suggest using it. This should not be used during the middle
Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/CodeGen/MIRParser/MIRParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -574,7 +574,7 @@ MIRParserImpl::initializeMachineFunction(const yaml::MachineFunction &YamlMF,
// FIXME: This is a temporary workaround until the reserved registers can be
// serialized.
MachineRegisterInfo &MRI = MF.getRegInfo();
MRI.freezeReservedRegs(MF);
MRI.freezeReservedRegs();

computeFunctionProperties(MF);

Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/CodeGen/MachineOutliner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -759,7 +759,7 @@ MachineFunction *MachineOutliner::createOutlinedFunction(
MF.getProperties().set(MachineFunctionProperties::Property::NoPHIs);
MF.getProperties().set(MachineFunctionProperties::Property::NoVRegs);
MF.getProperties().set(MachineFunctionProperties::Property::TracksLiveness);
MF.getRegInfo().freezeReservedRegs(MF);
MF.getRegInfo().freezeReservedRegs();

// Compute live-in set for outlined fn
const MachineRegisterInfo &MRI = MF.getRegInfo();
Expand Down
19 changes: 8 additions & 11 deletions llvm/lib/CodeGen/MachineRegisterInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -517,8 +517,8 @@ LLVM_DUMP_METHOD void MachineRegisterInfo::dumpUses(Register Reg) const {
}
#endif

void MachineRegisterInfo::freezeReservedRegs(const MachineFunction &MF) {
ReservedRegs = getTargetRegisterInfo()->getReservedRegs(MF);
void MachineRegisterInfo::freezeReservedRegs() {
ReservedRegs = getTargetRegisterInfo()->getReservedRegs(*MF);
assert(ReservedRegs.size() == getTargetRegisterInfo()->getNumRegs() &&
"Invalid ReservedRegs vector from target");
}
Expand Down Expand Up @@ -660,17 +660,14 @@ bool MachineRegisterInfo::isReservedRegUnit(unsigned Unit) const {
return false;
}

bool MachineRegisterInfo::isArgumentRegister(const MachineFunction &MF,
MCRegister Reg) const {
return getTargetRegisterInfo()->isArgumentRegister(MF, Reg);
bool MachineRegisterInfo::isArgumentRegister(MCRegister Reg) const {
return getTargetRegisterInfo()->isArgumentRegister(*MF, Reg);
}

bool MachineRegisterInfo::isFixedRegister(const MachineFunction &MF,
MCRegister Reg) const {
return getTargetRegisterInfo()->isFixedRegister(MF, Reg);
bool MachineRegisterInfo::isFixedRegister(MCRegister Reg) const {
return getTargetRegisterInfo()->isFixedRegister(*MF, Reg);
}

bool MachineRegisterInfo::isGeneralPurposeRegister(const MachineFunction &MF,
MCRegister Reg) const {
return getTargetRegisterInfo()->isGeneralPurposeRegister(MF, Reg);
bool MachineRegisterInfo::isGeneralPurposeRegister(MCRegister Reg) const {
return getTargetRegisterInfo()->isGeneralPurposeRegister(*MF, Reg);
}
2 changes: 1 addition & 1 deletion llvm/lib/CodeGen/RegAllocBase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ void RegAllocBase::init(VirtRegMap &vrm, LiveIntervals &lis,
VRM = &vrm;
LIS = &lis;
Matrix = &mat;
MRI->freezeReservedRegs(vrm.getMachineFunction());
MRI->freezeReservedRegs();
RegClassInfo.runOnMachineFunction(vrm.getMachineFunction());
}

Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/CodeGen/RegAllocFast.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1740,7 +1740,7 @@ bool RegAllocFast::runOnMachineFunction(MachineFunction &MF) {
TRI = STI.getRegisterInfo();
TII = STI.getInstrInfo();
MFI = &MF.getFrameInfo();
MRI->freezeReservedRegs(MF);
MRI->freezeReservedRegs();
RegClassInfo.runOnMachineFunction(MF);
unsigned NumRegUnits = TRI->getNumRegUnits();
UsedInInstr.clear();
Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/CodeGen/RegAllocPBQP.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -809,7 +809,7 @@ bool RegAllocPBQP::runOnMachineFunction(MachineFunction &MF) {
std::unique_ptr<Spiller> VRegSpiller(
createInlineSpiller(*this, MF, VRM, DefaultVRAI));

MF.getRegInfo().freezeReservedRegs(MF);
MF.getRegInfo().freezeReservedRegs();

LLVM_DEBUG(dbgs() << "PBQP Register Allocating for " << MF.getName() << "\n");

Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/CodeGen/TargetLoweringBase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2336,7 +2336,7 @@ bool TargetLoweringBase::isLoadBitCastBeneficial(
}

void TargetLoweringBase::finalizeLowering(MachineFunction &MF) const {
MF.getRegInfo().freezeReservedRegs(MF);
MF.getRegInfo().freezeReservedRegs();
}

MachineMemOperand::Flags TargetLoweringBase::getLoadMemOperandFlags(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ static MachineFunction &createFrameHelperMachineFunction(Module *M,
MF.getProperties().reset(MachineFunctionProperties::Property::TracksLiveness);
MF.getProperties().reset(MachineFunctionProperties::Property::IsSSA);
MF.getProperties().set(MachineFunctionProperties::Property::NoVRegs);
MF.getRegInfo().freezeReservedRegs(MF);
MF.getRegInfo().freezeReservedRegs();

// Create entry block.
BasicBlock *EntryBB = BasicBlock::Create(C, "entry", F);
Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ void SIPreAllocateWWMRegs::rewriteRegs(MachineFunction &MF) {
RegsToRewrite.clear();

// Update the set of reserved registers to include WWM ones.
MRI->freezeReservedRegs(MF);
MRI->freezeReservedRegs();
}

#ifndef NDEBUG
Expand Down
2 changes: 1 addition & 1 deletion llvm/tools/llvm-exegesis/lib/Assembler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ Error assembleToStream(const ExegesisTarget &ET,

// prologue/epilogue pass needs the reserved registers to be frozen, this
// is usually done by the SelectionDAGISel pass.
MF.getRegInfo().freezeReservedRegs(MF);
MF.getRegInfo().freezeReservedRegs();

// We create the pass manager, run the passes to populate AsmBuffer.
MCContext &MCContext = MMIWP->getMMI().getContext();
Expand Down
2 changes: 1 addition & 1 deletion llvm/tools/llvm-reduce/ReducerWorkItem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@ static std::unique_ptr<MachineFunction> cloneMF(MachineFunction *SrcMF,
if (!DstMF->cloneInfoFrom(*SrcMF, Src2DstMBB))
report_fatal_error("target does not implement MachineFunctionInfo cloning");

DstMRI->freezeReservedRegs(*DstMF);
DstMRI->freezeReservedRegs();

DstMF->verify(nullptr, "", /*AbortOnError=*/true);
return DstMF;
Expand Down