[llvm-branch-commits] [llvm] [amdgpu-cfi: 9/9]: [AMDGPU][MC] Replace shifted registers in CFI instructions (PR #183147)
Matt Arsenault via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu May 14 03:50:47 PDT 2026
================
@@ -1302,6 +1302,39 @@ void MCGenDwarfLabelEntry::Make(MCSymbol *Symbol, MCStreamer *MCOS,
MCGenDwarfLabelEntry(Name, FileNumber, LineNumber, Label));
}
+void MCCFIInstruction::replaceRegister(unsigned FromReg, unsigned ToReg) {
+ auto ReplaceReg = [=](unsigned &Reg) {
+ if (Reg == FromReg)
+ Reg = ToReg;
+ };
+ auto Visitor = makeVisitor(
+ [=](CommonFields &F) {
+ ReplaceReg(F.Register);
+ ReplaceReg(F.Register2);
+ },
+ [](EscapeFields &) {}, [](LabelFields &) {},
+ [=](RegisterPairFields &F) {
+ ReplaceReg(F.Register);
+ ReplaceReg(F.Reg1);
+ ReplaceReg(F.Reg2);
+ },
+ [=](VectorRegistersFields &F) {
+ ReplaceReg(F.Register);
+ for (VectorRegisterWithLane &VRL : F.VectorRegisters)
+ ReplaceReg(VRL.Register);
+ },
+ [=](VectorOffsetFields &F) {
+ ReplaceReg(F.Register);
+ ReplaceReg(F.MaskRegister);
+ },
+ [=](VectorRegisterMaskFields &F) {
+ ReplaceReg(F.Register);
+ ReplaceReg(F.SpillRegister);
+ ReplaceReg(F.MaskRegister);
+ });
+ std::visit(Visitor, ExtraFields);
----------------
arsenm wrote:
The visitor pattern itself. It's not a real issue, but I'd go back to the previous version
https://github.com/llvm/llvm-project/pull/183147
More information about the llvm-branch-commits
mailing list