aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/llvm/lib/IR/AsmWriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm-project/llvm/lib/IR/AsmWriter.cpp')
-rw-r--r--contrib/llvm-project/llvm/lib/IR/AsmWriter.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/contrib/llvm-project/llvm/lib/IR/AsmWriter.cpp b/contrib/llvm-project/llvm/lib/IR/AsmWriter.cpp
index 95cdec722062..278cdfce4110 100644
--- a/contrib/llvm-project/llvm/lib/IR/AsmWriter.cpp
+++ b/contrib/llvm-project/llvm/lib/IR/AsmWriter.cpp
@@ -859,6 +859,9 @@ private:
/// Add all of the metadata from an instruction.
void processInstructionMetadata(const Instruction &I);
+
+ /// Add all of the metadata from an instruction.
+ void processDPValueMetadata(const DPValue &DPV);
};
} // end namespace llvm
@@ -1126,11 +1129,19 @@ void SlotTracker::processGlobalObjectMetadata(const GlobalObject &GO) {
void SlotTracker::processFunctionMetadata(const Function &F) {
processGlobalObjectMetadata(F);
for (auto &BB : F) {
- for (auto &I : BB)
+ for (auto &I : BB) {
+ for (const DPValue &DPV : I.getDbgValueRange())
+ processDPValueMetadata(DPV);
processInstructionMetadata(I);
+ }
}
}
+void SlotTracker::processDPValueMetadata(const DPValue &DPV) {
+ CreateMetadataSlot(DPV.getVariable());
+ CreateMetadataSlot(DPV.getDebugLoc());
+}
+
void SlotTracker::processInstructionMetadata(const Instruction &I) {
// Process metadata used directly by intrinsics.
if (const CallInst *CI = dyn_cast<CallInst>(&I))