[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