[llvm] [CodeGen] Add another method to CFIInstBuilder (PR #136270)
Sergei Barannikov via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 17 23:56:21 PDT 2025
https://github.com/s-barannikov created https://github.com/llvm/llvm-project/pull/136270
Mainly for use by downstream targets, but it can find applications in upstream code as well. Use it in MSP430 so that it doesn't look dead.
>From 8b37e7a00cf5e3c401de37fb2c69cea483c0caeb Mon Sep 17 00:00:00 2001
From: Sergei Barannikov <barannikov88 at gmail.com>
Date: Fri, 18 Apr 2025 09:33:26 +0300
Subject: [PATCH] [CodeGen] Add another method to CFIInstBuilder
Mainly for use by downstream target, but it can find applications in
upstream code as well. Use it in MSP430 so that it doesn't look dead.
---
llvm/include/llvm/CodeGen/CFIInstBuilder.h | 4 ++++
llvm/lib/Target/MSP430/MSP430FrameLowering.cpp | 6 +++---
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/llvm/include/llvm/CodeGen/CFIInstBuilder.h b/llvm/include/llvm/CodeGen/CFIInstBuilder.h
index bf7102eeea497..86e125f11e0c6 100644
--- a/llvm/include/llvm/CodeGen/CFIInstBuilder.h
+++ b/llvm/include/llvm/CodeGen/CFIInstBuilder.h
@@ -71,6 +71,10 @@ class CFIInstBuilder {
insertCFIInst(MCCFIInstruction::cfiDefCfaOffset(nullptr, Offset));
}
+ void buildAdjustCFAOffset(int64_t Adjustment) const {
+ insertCFIInst(MCCFIInstruction::createAdjustCfaOffset(nullptr, Adjustment));
+ }
+
void buildOffset(MCRegister Reg, int64_t Offset) const {
insertCFIInst(MCCFIInstruction::createOffset(
nullptr, TRI.getDwarfRegNum(Reg, IsEH), Offset));
diff --git a/llvm/lib/Target/MSP430/MSP430FrameLowering.cpp b/llvm/lib/Target/MSP430/MSP430FrameLowering.cpp
index 39f4324286efd..bc24b3239b43a 100644
--- a/llvm/lib/Target/MSP430/MSP430FrameLowering.cpp
+++ b/llvm/lib/Target/MSP430/MSP430FrameLowering.cpp
@@ -14,6 +14,7 @@
#include "MSP430InstrInfo.h"
#include "MSP430MachineFunctionInfo.h"
#include "MSP430Subtarget.h"
+#include "llvm/CodeGen/CFIInstBuilder.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
@@ -406,9 +407,8 @@ MachineBasicBlock::iterator MSP430FrameLowering::eliminateCallFramePseudoInstr(
.addReg(MSP430::SP)
.addImm(CalleeAmt);
if (!hasFP(MF)) {
- DebugLoc DL = I->getDebugLoc();
- BuildCFI(MBB, I, DL,
- MCCFIInstruction::createAdjustCfaOffset(nullptr, CalleeAmt));
+ CFIInstBuilder(MBB, I, MachineInstr::NoFlags)
+ .buildAdjustCFAOffset(CalleeAmt);
}
// The SRW implicit def is dead.
New->getOperand(3).setIsDead();
More information about the llvm-commits
mailing list