Skip to content

Commit e2331f2

Browse files
committed
Add comment for DVU RAUW fn, remove Instruction *InsertBefore
1 parent a7674f1 commit e2331f2

File tree

3 files changed

+17
-18
lines changed

3 files changed

+17
-18
lines changed

llvm/include/llvm/IR/DebugProgramInstruction.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,11 @@ class DPValue : public ilist_node<DPValue>, private DebugValueUser {
129129
DIAssignID *AssignID, Metadata *Address,
130130
DIExpression *AddressExpression, const DILocation *DI);
131131

132-
static DPValue *createDPVAssign(Metadata *Value, DILocalVariable *Variable,
132+
static DPValue *createDPVAssign(Value *Val, DILocalVariable *Variable,
133133
DIExpression *Expression,
134-
DIAssignID *AssignID, Metadata *Address,
134+
DIAssignID *AssignID, Value *Address,
135135
DIExpression *AddressExpression,
136-
const DILocation *DI,
137-
Instruction *InsertBefore = nullptr);
136+
const DILocation *DI);
138137
static DPValue *createLinkedDPVAssign(Instruction *LinkedInstr, Value *Val,
139138
DILocalVariable *Variable,
140139
DIExpression *Expression,

llvm/include/llvm/IR/Metadata.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,12 @@ class DebugValueUser {
222222
public:
223223
DPValue *getUser();
224224
const DPValue *getUser() const;
225+
/// To be called by ReplaceableMetadataImpl::replaceAllUsesWith, where `Old`
226+
/// is a pointer to one of the pointers in `DebugValues` (so should be type
227+
/// Metadata**), and `NewDebugValue` is the new Metadata* that is replacing
228+
/// *Old.
229+
/// For manually replacing elements of DebugValues,
230+
/// `resetDebugValue(Idx, NewDebugValue)` should be used instead.
225231
void handleChangedValue(void *Old, Metadata *NewDebugValue);
226232
DebugValueUser() = default;
227233
explicit DebugValueUser(std::array<Metadata *, 3> DebugValues)

llvm/lib/IR/DebugProgramInstruction.cpp

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -87,19 +87,13 @@ DPValue *DPValue::createDPVDeclare(Value *Address, DILocalVariable *DV,
8787
return NewDPVDeclare;
8888
}
8989

90-
DPValue *DPValue::createDPVAssign(Metadata *Value, DILocalVariable *Variable,
90+
DPValue *DPValue::createDPVAssign(Value *Val, DILocalVariable *Variable,
9191
DIExpression *Expression,
92-
DIAssignID *AssignID, Metadata *Address,
92+
DIAssignID *AssignID, Value *Address,
9393
DIExpression *AddressExpression,
94-
const DILocation *DI,
95-
Instruction *InsertBefore) {
96-
auto *NewDPVAssign = new DPValue(Value, Variable, Expression, AssignID,
97-
Address, AddressExpression, DI);
98-
if (InsertBefore) {
99-
InsertBefore->getParent()->insertDPValueBefore(NewDPVAssign,
100-
InsertBefore->getIterator());
101-
}
102-
return NewDPVAssign;
94+
const DILocation *DI) {
95+
return new DPValue(ValueAsMetadata::get(Val), Variable, Expression, AssignID,
96+
ValueAsMetadata::get(Address), AddressExpression, DI);
10397
}
10498

10599
DPValue *DPValue::createLinkedDPVAssign(Instruction *LinkedInstr, Value *Val,
@@ -110,9 +104,9 @@ DPValue *DPValue::createLinkedDPVAssign(Instruction *LinkedInstr, Value *Val,
110104
const DILocation *DI) {
111105
auto *Link = LinkedInstr->getMetadata(LLVMContext::MD_DIAssignID);
112106
assert(Link && "Linked instruction must have DIAssign metadata attached");
113-
auto *NewDPVAssign = new DPValue(
114-
ValueAsMetadata::get(Val), Variable, Expression, cast<DIAssignID>(Link),
115-
ValueAsMetadata::get(Address), AddressExpression, DI);
107+
auto *NewDPVAssign = DPValue::createDPVAssign(Val, Variable, Expression,
108+
cast<DIAssignID>(Link), Address,
109+
AddressExpression, DI);
116110
LinkedInstr->getParent()->insertDPValueAfter(NewDPVAssign, LinkedInstr);
117111
return NewDPVAssign;
118112
}

0 commit comments

Comments
 (0)