Skip to content

Commit 1cfae92

Browse files
committed
[AArch64][GISel] Use Register instead of MCRegister for markPhysRegUsed in CallLowering.
For "returned" attribute arguments, the physical register is a virtual register which shouldn't be stored in MCRegister. This moves the conversion from Register to MCRegister into the derived classes of IncomingArgHandler. The derived class ReturnedArgCallReturnHandler does not use the register so no MCRegister is created in that case.
1 parent 1908c41 commit 1cfae92

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -207,14 +207,14 @@ struct IncomingArgHandler : public CallLowering::IncomingValueHandler {
207207
/// How the physical register gets marked varies between formal
208208
/// parameters (it's a basic-block live-in), and a call instruction
209209
/// (it's an implicit-def of the BL).
210-
virtual void markPhysRegUsed(MCRegister PhysReg) = 0;
210+
virtual void markPhysRegUsed(Register PhysReg) = 0;
211211
};
212212

213213
struct FormalArgHandler : public IncomingArgHandler {
214214
FormalArgHandler(MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI)
215215
: IncomingArgHandler(MIRBuilder, MRI) {}
216216

217-
void markPhysRegUsed(MCRegister PhysReg) override {
217+
void markPhysRegUsed(Register PhysReg) override {
218218
MIRBuilder.getMRI()->addLiveIn(PhysReg);
219219
MIRBuilder.getMBB().addLiveIn(PhysReg);
220220
}
@@ -225,7 +225,7 @@ struct CallReturnHandler : public IncomingArgHandler {
225225
MachineInstrBuilder MIB)
226226
: IncomingArgHandler(MIRBuilder, MRI), MIB(MIB) {}
227227

228-
void markPhysRegUsed(MCRegister PhysReg) override {
228+
void markPhysRegUsed(Register PhysReg) override {
229229
MIB.addDef(PhysReg, RegState::Implicit);
230230
}
231231

@@ -239,7 +239,7 @@ struct ReturnedArgCallReturnHandler : public CallReturnHandler {
239239
MachineInstrBuilder MIB)
240240
: CallReturnHandler(MIRBuilder, MRI, MIB) {}
241241

242-
void markPhysRegUsed(MCRegister PhysReg) override {}
242+
void markPhysRegUsed(Register PhysReg) override {}
243243
};
244244

245245
struct OutgoingArgHandler : public CallLowering::OutgoingValueHandler {

0 commit comments

Comments
 (0)