Skip to content

Commit 4569b82

Browse files
[IRGenDebugInfo] Replace llvm.dbg.coroframe_entry with dbg.declare_value
We had introduced coroframe_entry downstream while the upstream proposal was discussed. It has since been merged upstream, so this commit changes the code to use the upstream intrisic, avoiding a binary incompatibility in the IR w.r.t. upstream.
1 parent 508bd4f commit 4569b82

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

lib/IRGen/IRGenDebugInfo.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3747,7 +3747,7 @@ struct DbgIntrinsicEmitter {
37473747
PointerUnion<llvm::BasicBlock *, llvm::Instruction *> InsertPt;
37483748
irgen::IRBuilder &IRBuilder;
37493749
llvm::DIBuilder &DIBuilder;
3750-
AddrDbgInstrKind ForceDbgDeclareOrCoro;
3750+
AddrDbgInstrKind ForceDbgDeclareOrDeclareValue;
37513751

37523752
/// Initialize the emitter and initialize the emitter to assume that it is
37533753
/// going to insert an llvm.dbg.declare or an llvm.dbg.addr either at the
@@ -3756,7 +3756,7 @@ struct DbgIntrinsicEmitter {
37563756
DbgIntrinsicEmitter(irgen::IRBuilder &IRBuilder, llvm::DIBuilder &DIBuilder,
37573757
AddrDbgInstrKind AddrDInstrKind)
37583758
: InsertPt(), IRBuilder(IRBuilder), DIBuilder(DIBuilder),
3759-
ForceDbgDeclareOrCoro(AddrDInstrKind) {
3759+
ForceDbgDeclareOrDeclareValue(AddrDInstrKind) {
37603760
auto *ParentBB = IRBuilder.GetInsertBlock();
37613761
auto InsertBefore = IRBuilder.GetInsertPoint();
37623762

@@ -3783,13 +3783,13 @@ struct DbgIntrinsicEmitter {
37833783
llvm::DIExpression *Expr,
37843784
const llvm::DILocation *DL,
37853785
llvm::Instruction *InsertBefore) {
3786-
if (ForceDbgDeclareOrCoro == AddrDbgInstrKind::DbgDeclare)
3786+
if (ForceDbgDeclareOrDeclareValue == AddrDbgInstrKind::DbgDeclare)
37873787
return DIBuilder.insertDeclare(Addr, VarInfo, Expr, DL,
37883788
InsertBefore->getIterator());
37893789

3790-
if (ForceDbgDeclareOrCoro == AddrDbgInstrKind::DbgCoroFrameEntry)
3791-
return DIBuilder.insertCoroFrameEntry(Addr, VarInfo, Expr, DL,
3792-
InsertBefore->getIterator());
3790+
if (ForceDbgDeclareOrDeclareValue == AddrDbgInstrKind::DbgDeclareValue)
3791+
return DIBuilder.insertDeclareValue(Addr, VarInfo, Expr, DL,
3792+
InsertBefore->getIterator());
37933793

37943794
Expr = llvm::DIExpression::append(Expr, llvm::dwarf::DW_OP_deref);
37953795
return DIBuilder.insertDbgValueIntrinsic(Addr, VarInfo, Expr, DL,
@@ -3800,11 +3800,11 @@ struct DbgIntrinsicEmitter {
38003800
llvm::DIExpression *Expr,
38013801
const llvm::DILocation *DL,
38023802
llvm::BasicBlock *Block) {
3803-
if (ForceDbgDeclareOrCoro == AddrDbgInstrKind::DbgDeclare)
3803+
if (ForceDbgDeclareOrDeclareValue == AddrDbgInstrKind::DbgDeclare)
38043804
return DIBuilder.insertDeclare(Addr, VarInfo, Expr, DL, Block);
38053805

3806-
if (ForceDbgDeclareOrCoro == AddrDbgInstrKind::DbgCoroFrameEntry)
3807-
return DIBuilder.insertCoroFrameEntry(Addr, VarInfo, Expr, DL, Block);
3806+
if (ForceDbgDeclareOrDeclareValue == AddrDbgInstrKind::DbgDeclareValue)
3807+
return DIBuilder.insertDeclareValue(Addr, VarInfo, Expr, DL, Block);
38083808

38093809
Expr = llvm::DIExpression::append(Expr, llvm::dwarf::DW_OP_deref);
38103810
return DIBuilder.insertDbgValueIntrinsic(Addr, VarInfo, Expr, DL, Block);
@@ -3866,7 +3866,7 @@ void IRGenDebugInfoImpl::emitDbgIntrinsic(
38663866
AddrDInstKind = AddrDbgInstrKind::DbgValueDeref;
38673867

38683868
if (InCoroContext && AddrDInstKind != AddrDbgInstrKind::DbgValueDeref)
3869-
AddrDInstKind = AddrDbgInstrKind::DbgCoroFrameEntry;
3869+
AddrDInstKind = AddrDbgInstrKind::DbgDeclareValue;
38703870

38713871
DbgIntrinsicEmitter inserter{Builder, DBuilder, AddrDInstKind};
38723872

@@ -3875,7 +3875,7 @@ void IRGenDebugInfoImpl::emitDbgIntrinsic(
38753875
auto InsertBefore = Builder.GetInsertPoint();
38763876

38773877
if (AddrDInstKind == AddrDbgInstrKind::DbgDeclare ||
3878-
AddrDInstKind == AddrDbgInstrKind::DbgCoroFrameEntry) {
3878+
AddrDInstKind == AddrDbgInstrKind::DbgDeclareValue) {
38793879
ParentBlock = Alloca->getParent();
38803880
InsertBefore = std::next(Alloca->getIterator());
38813881
}
@@ -3903,7 +3903,7 @@ void IRGenDebugInfoImpl::emitDbgIntrinsic(
39033903
// in the coroutine context by creating a llvm.dbg.declare for the variable
39043904
// in the entry block of each funclet.
39053905
if (AddrDInstKind == AddrDbgInstrKind::DbgDeclare ||
3906-
AddrDInstKind == AddrDbgInstrKind::DbgCoroFrameEntry) {
3906+
AddrDInstKind == AddrDbgInstrKind::DbgDeclareValue) {
39073907
// Function arguments in async functions are emitted without a shadow copy
39083908
// (that would interfere with coroutine splitting) but with a
39093909
// llvm.dbg.declare to give CoroSplit.cpp license to emit a shadow copy

lib/IRGen/IRGenDebugInfo.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ enum ArtificialKind : bool { RealValue = false, ArtificialValue = true };
5353
enum class AddrDbgInstrKind : uint8_t {
5454
DbgDeclare,
5555
DbgValueDeref,
56-
DbgCoroFrameEntry,
56+
DbgDeclareValue,
5757
};
5858

5959
/// Helper object that keeps track of the current CompileUnit, File,

0 commit comments

Comments
 (0)