================
@@ -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
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits