[llvm] [X86] Use Register in X86InstrBuilder.h. NFC (PR #130514)
Phoebe Wang via llvm-commits
llvm-commits at lists.llvm.org
Sun Mar 9 23:28:53 PDT 2025
================
@@ -121,54 +114,58 @@ static inline X86AddressMode getAddressFromInstr(const MachineInstr *MI,
/// with no scale, index or displacement. An example is: DWORD PTR [EAX].
///
static inline const MachineInstrBuilder &
-addDirectMem(const MachineInstrBuilder &MIB, unsigned Reg) {
+addDirectMem(const MachineInstrBuilder &MIB, Register Reg) {
// Because memory references are always represented with five
// values, this adds: Reg, 1, NoReg, 0, NoReg to the instruction.
- return MIB.addReg(Reg).addImm(1).addReg(0).addImm(0).addReg(0);
+ return MIB.addReg(Reg)
+ .addImm(1)
+ .addReg(Register())
+ .addImm(0)
+ .addReg(Register());
}
/// Replace the address used in the instruction with the direct memory
/// reference.
static inline void setDirectAddressInInstr(MachineInstr *MI, unsigned Operand,
- unsigned Reg) {
+ Register Reg) {
// Direct memory address is in a form of: Reg/FI, 1 (Scale), NoReg, 0, NoReg.
MI->getOperand(Operand).ChangeToRegister(Reg, /*isDef=*/false);
MI->getOperand(Operand + 1).setImm(1);
- MI->getOperand(Operand + 2).setReg(0);
+ MI->getOperand(Operand + 2).setReg(Register());
----------------
phoebewang wrote:
That's only a personal feeling. We have used `0` as no register for a long time. `setReg(Register())` doesn't look intuitive to me.
In the future, if setReg only accepts Register, I'd like it has a default value, so that we can use `setReg()` for the purpose. Or define `constexpr Register NoRegister` and use `NoRegister` everywhere?
https://github.com/llvm/llvm-project/pull/130514
More information about the llvm-commits
mailing list