[llvm] [MC][Dwarf] Add custom CFI pseudo-ops for use in AMDGPU (PR #164721)
Scott Linder via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 20 12:10:44 PST 2026
================
@@ -694,6 +733,57 @@ class MCCFIInstruction {
return {OpLabel, L, LabelFields{CfiLabel}, Loc};
}
+ /// .cfi_llvm_register_pair Previous value of Register is saved in R1:R2.
+ static MCCFIInstruction
+ createLLVMRegisterPair(MCSymbol *L, unsigned Register, unsigned R1,
+ unsigned R1SizeInBits, unsigned R2,
+ unsigned R2SizeInBits, SMLoc Loc = {}) {
+ RegisterPairFields Extra{Register, R1, R2, R1SizeInBits, R2SizeInBits};
+ return {OpLLVMRegisterPair, L, Extra, Loc};
+ }
+
+ /// .cfi_llvm_vector_registers Previous value of Register is saved in lanes of
+ /// vector registers.
+ static MCCFIInstruction
+ createLLVMVectorRegisters(MCSymbol *L, unsigned Register,
+ std::vector<VectorRegisterWithLane> VectorRegisters,
+ SMLoc Loc = {}) {
+ VectorRegistersFields Extra{Register, std::move(VectorRegisters)};
+ return {OpLLVMVectorRegisters, L, std::move(Extra), Loc};
+ }
+
+ /// .cfi_llvm_vector_offset Previous value of Register is saved at Offset from
+ /// CFA. MaskRegister specifies the active lanes of register.
+ static MCCFIInstruction
+ createLLVMVectorOffset(MCSymbol *L, unsigned Register,
+ unsigned RegisterSizeInBits, unsigned MaskRegister,
+ unsigned MaskRegisterSizeInBits, int64_t Offset,
+ SMLoc Loc = {}) {
+ VectorOffsetFields Extra{Register, RegisterSizeInBits, Offset, MaskRegister,
+ MaskRegisterSizeInBits};
+ return MCCFIInstruction(OpLLVMVectorOffset, L, Extra, Loc);
+ }
+
+ /// .cfi_llvm_vector_register_mask Previous value of Register is saved in
+ /// SpillRegister, predicated on the value of MaskRegister.
+ static MCCFIInstruction createLLVMVectorRegisterMask(
+ MCSymbol *L, unsigned Register, unsigned SpillRegister,
----------------
slinder1 wrote:
No, these are already DWARF-encoded, but the helpers in `SIFrameLowering` in later patches should, I will update those
https://github.com/llvm/llvm-project/pull/164721
More information about the llvm-commits
mailing list