[llvm] Revert "[CodeGen] Temporary disable the unreachable" (PR #194720)

Lucas Chollet via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 29 02:28:48 PDT 2026


LucasChollet wrote:

Here are the matches:
```bash
$ rg buildClearRegister
llvm/include/llvm/CodeGen/TargetInstrInfo.h
2286:  virtual void buildClearRegister(Register Reg, MachineBasicBlock &MBB,
2291:        "Target didn't implement TargetInstrInfo::buildClearRegister!");

llvm/lib/Target/X86/X86InstrInfo.cpp
10645:void X86InstrInfo::buildClearRegister(Register Reg, MachineBasicBlock &MBB,

llvm/lib/Target/X86/X86FrameLowering.cpp
631:    TII.buildClearRegister(Reg, MBB, MBBI, DL);
635:    TII.buildClearRegister(Reg, MBB, MBBI, DL);

llvm/lib/Target/X86/X86InstrInfo.h
649:  void buildClearRegister(Register Reg, MachineBasicBlock &MBB,

llvm/lib/Target/AArch64/AArch64InstrInfo.h
524:  void buildClearRegister(Register Reg, MachineBasicBlock &MBB,

llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
11041:void AArch64InstrInfo::buildClearRegister(Register Reg, MachineBasicBlock &MBB,

llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
860:    TII.buildClearRegister(Reg, MBB, MBBI, DL);
864:    TII.buildClearRegister(Reg, MBB, MBBI, DL);
```

So, it's only declarations/definitions except for the usages in `{AArch64,X86}FrameLowering.cpp` where it is used in `emitZeroCallUsedRegs()` (and `buildClearRegister` is implemented for these platforms).

Moving forward, I think it’s safer to have the base virtual function include a safeguard rather than remain a silent no-op. This would also align it with other backend-specific methods in the class.

That being said, now that I’ve been bitten once, it won’t bother me again. And since I don’t have write permissions, I’ll leave it up to you (or other maintainers).

https://github.com/llvm/llvm-project/pull/194720


More information about the llvm-commits mailing list