aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Bitcode')
-rw-r--r--llvm/lib/Bitcode/Reader/BitcodeReader.cpp20
-rw-r--r--llvm/lib/Bitcode/Reader/MetadataLoader.cpp6
-rw-r--r--llvm/lib/Bitcode/Writer/BitcodeWriter.cpp29
-rw-r--r--llvm/lib/Bitcode/Writer/ValueEnumerator.cpp48
4 files changed, 54 insertions, 49 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
index dd1b3d9..8261084 100644
--- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
@@ -6425,7 +6425,8 @@ Error BitcodeReader::parseFunctionBody(Function *F) {
case bitc::FUNC_CODE_DEBUG_RECORD_VALUE:
case bitc::FUNC_CODE_DEBUG_RECORD_DECLARE:
case bitc::FUNC_CODE_DEBUG_RECORD_ASSIGN: {
- // DPValues are placed after the Instructions that they are attached to.
+ // DbgVariableRecords are placed after the Instructions that they are
+ // attached to.
Instruction *Inst = getLastInstruction();
if (!Inst)
return error("Invalid dbg record: missing instruction");
@@ -6468,29 +6469,30 @@ Error BitcodeReader::parseFunctionBody(Function *F) {
RawLocation = getFnMetadataByID(Record[Slot++]);
}
- DPValue *DPV = nullptr;
+ DbgVariableRecord *DVR = nullptr;
switch (BitCode) {
case bitc::FUNC_CODE_DEBUG_RECORD_VALUE:
case bitc::FUNC_CODE_DEBUG_RECORD_VALUE_SIMPLE:
- DPV = new DPValue(RawLocation, Var, Expr, DIL,
- DPValue::LocationType::Value);
+ DVR = new DbgVariableRecord(RawLocation, Var, Expr, DIL,
+ DbgVariableRecord::LocationType::Value);
break;
case bitc::FUNC_CODE_DEBUG_RECORD_DECLARE:
- DPV = new DPValue(RawLocation, Var, Expr, DIL,
- DPValue::LocationType::Declare);
+ DVR = new DbgVariableRecord(RawLocation, Var, Expr, DIL,
+ DbgVariableRecord::LocationType::Declare);
break;
case bitc::FUNC_CODE_DEBUG_RECORD_ASSIGN: {
DIAssignID *ID = cast<DIAssignID>(getFnMetadataByID(Record[Slot++]));
DIExpression *AddrExpr =
cast<DIExpression>(getFnMetadataByID(Record[Slot++]));
Metadata *Addr = getFnMetadataByID(Record[Slot++]);
- DPV = new DPValue(RawLocation, Var, Expr, ID, Addr, AddrExpr, DIL);
+ DVR = new DbgVariableRecord(RawLocation, Var, Expr, ID, Addr, AddrExpr,
+ DIL);
break;
}
default:
- llvm_unreachable("Unknown DPValue bitcode");
+ llvm_unreachable("Unknown DbgVariableRecord bitcode");
}
- Inst->getParent()->insertDbgRecordBefore(DPV, Inst->getIterator());
+ Inst->getParent()->insertDbgRecordBefore(DVR, Inst->getIterator());
continue; // This isn't an instruction.
}
case bitc::FUNC_CODE_INST_CALL: {
diff --git a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
index fb005ee..9102f3a 100644
--- a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
+++ b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
@@ -621,9 +621,9 @@ class MetadataLoader::MetadataLoaderImpl {
for (auto &BB : F)
for (auto &I : BB) {
- for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange())) {
- if (DPV.isDbgDeclare())
- UpdateDeclareIfNeeded(&DPV);
+ for (DbgVariableRecord &DVR : filterDbgVars(I.getDbgRecordRange())) {
+ if (DVR.isDbgDeclare())
+ UpdateDeclareIfNeeded(&DVR);
}
if (auto *DDI = dyn_cast<DbgDeclareInst>(&I))
UpdateDeclareIfNeeded(DDI);
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
index 2e26e95..fd211f7 100644
--- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
+++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
@@ -3547,7 +3547,8 @@ void ModuleBitcodeWriter::writeFunction(
/// without the ValueAsMetadata wrapper.
auto PushValueOrMetadata = [&Vals, InstID,
this](Metadata *RawLocation) {
- assert(RawLocation && "RawLocation unexpectedly null in DPValue");
+ assert(RawLocation &&
+ "RawLocation unexpectedly null in DbgVariableRecord");
if (ValueAsMetadata *VAM = dyn_cast<ValueAsMetadata>(RawLocation)) {
SmallVector<unsigned, 2> ValAndType;
// If the value is a fwd-ref the type is also pushed. We don't
@@ -3586,25 +3587,25 @@ void ModuleBitcodeWriter::writeFunction(
// ..., LocationMetadata
// dbg_assign (FUNC_CODE_DEBUG_RECORD_ASSIGN)
// ..., LocationMetadata, DIAssignID, DIExpression, LocationMetadata
- DPValue &DPV = cast<DPValue>(DR);
- Vals.push_back(VE.getMetadataID(&*DPV.getDebugLoc()));
- Vals.push_back(VE.getMetadataID(DPV.getVariable()));
- Vals.push_back(VE.getMetadataID(DPV.getExpression()));
- if (DPV.isDbgValue()) {
- if (PushValueOrMetadata(DPV.getRawLocation()))
+ DbgVariableRecord &DVR = cast<DbgVariableRecord>(DR);
+ Vals.push_back(VE.getMetadataID(&*DVR.getDebugLoc()));
+ Vals.push_back(VE.getMetadataID(DVR.getVariable()));
+ Vals.push_back(VE.getMetadataID(DVR.getExpression()));
+ if (DVR.isDbgValue()) {
+ if (PushValueOrMetadata(DVR.getRawLocation()))
Stream.EmitRecord(bitc::FUNC_CODE_DEBUG_RECORD_VALUE_SIMPLE, Vals,
FUNCTION_DEBUG_RECORD_VALUE_ABBREV);
else
Stream.EmitRecord(bitc::FUNC_CODE_DEBUG_RECORD_VALUE, Vals);
- } else if (DPV.isDbgDeclare()) {
- Vals.push_back(VE.getMetadataID(DPV.getRawLocation()));
+ } else if (DVR.isDbgDeclare()) {
+ Vals.push_back(VE.getMetadataID(DVR.getRawLocation()));
Stream.EmitRecord(bitc::FUNC_CODE_DEBUG_RECORD_DECLARE, Vals);
} else {
- assert(DPV.isDbgAssign() && "Unexpected DbgRecord kind");
- Vals.push_back(VE.getMetadataID(DPV.getRawLocation()));
- Vals.push_back(VE.getMetadataID(DPV.getAssignID()));
- Vals.push_back(VE.getMetadataID(DPV.getAddressExpression()));
- Vals.push_back(VE.getMetadataID(DPV.getRawAddress()));
+ assert(DVR.isDbgAssign() && "Unexpected DbgRecord kind");
+ Vals.push_back(VE.getMetadataID(DVR.getRawLocation()));
+ Vals.push_back(VE.getMetadataID(DVR.getAssignID()));
+ Vals.push_back(VE.getMetadataID(DVR.getAddressExpression()));
+ Vals.push_back(VE.getMetadataID(DVR.getRawAddress()));
Stream.EmitRecord(bitc::FUNC_CODE_DEBUG_RECORD_ASSIGN, Vals);
}
Vals.clear();
diff --git a/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp b/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
index 1c439c9..3209dca 100644
--- a/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
+++ b/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
@@ -144,10 +144,10 @@ static OrderMap orderModule(const Module &M) {
}
};
- for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange())) {
- OrderConstantFromMetadata(DPV.getRawLocation());
- if (DPV.isDbgAssign())
- OrderConstantFromMetadata(DPV.getRawAddress());
+ for (DbgVariableRecord &DVR : filterDbgVars(I.getDbgRecordRange())) {
+ OrderConstantFromMetadata(DVR.getRawLocation());
+ if (DVR.isDbgAssign())
+ OrderConstantFromMetadata(DVR.getRawAddress());
}
for (const Value *V : I.operands()) {
@@ -285,10 +285,10 @@ static UseListOrderStack predictUseListOrder(const Module &M) {
predictValueUseListOrder(&A, &F, OM, Stack);
for (const BasicBlock &BB : F) {
for (const Instruction &I : BB) {
- for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange())) {
- PredictValueOrderFromMetadata(DPV.getRawLocation());
- if (DPV.isDbgAssign())
- PredictValueOrderFromMetadata(DPV.getRawAddress());
+ for (DbgVariableRecord &DVR : filterDbgVars(I.getDbgRecordRange())) {
+ PredictValueOrderFromMetadata(DVR.getRawLocation());
+ if (DVR.isDbgAssign())
+ PredictValueOrderFromMetadata(DVR.getRawAddress());
}
for (const Value *Op : I.operands()) {
if (isa<Constant>(*Op) || isa<InlineAsm>(*Op)) // Visit GlobalValues.
@@ -447,15 +447,15 @@ ValueEnumerator::ValueEnumerator(const Module &M,
continue;
}
// Enumerate non-local location metadata.
- DPValue &DPV = cast<DPValue>(DR);
- EnumerateNonLocalValuesFromMetadata(DPV.getRawLocation());
- EnumerateMetadata(&F, DPV.getExpression());
- EnumerateMetadata(&F, DPV.getVariable());
- EnumerateMetadata(&F, &*DPV.getDebugLoc());
- if (DPV.isDbgAssign()) {
- EnumerateNonLocalValuesFromMetadata(DPV.getRawAddress());
- EnumerateMetadata(&F, DPV.getAssignID());
- EnumerateMetadata(&F, DPV.getAddressExpression());
+ DbgVariableRecord &DVR = cast<DbgVariableRecord>(DR);
+ EnumerateNonLocalValuesFromMetadata(DVR.getRawLocation());
+ EnumerateMetadata(&F, DVR.getExpression());
+ EnumerateMetadata(&F, DVR.getVariable());
+ EnumerateMetadata(&F, &*DVR.getDebugLoc());
+ if (DVR.isDbgAssign()) {
+ EnumerateNonLocalValuesFromMetadata(DVR.getRawAddress());
+ EnumerateMetadata(&F, DVR.getAssignID());
+ EnumerateMetadata(&F, DVR.getAddressExpression());
}
}
for (const Use &Op : I.operands()) {
@@ -1128,12 +1128,14 @@ void ValueEnumerator::incorporateFunction(const Function &F) {
AddFnLocalMetadata(MD->getMetadata());
}
/// RemoveDIs: Add non-instruction function-local metadata uses.
- for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange())) {
- assert(DPV.getRawLocation() && "DPValue location unexpectedly null");
- AddFnLocalMetadata(DPV.getRawLocation());
- if (DPV.isDbgAssign()) {
- assert(DPV.getRawAddress() && "DPValue location unexpectedly null");
- AddFnLocalMetadata(DPV.getRawAddress());
+ for (DbgVariableRecord &DVR : filterDbgVars(I.getDbgRecordRange())) {
+ assert(DVR.getRawLocation() &&
+ "DbgVariableRecord location unexpectedly null");
+ AddFnLocalMetadata(DVR.getRawLocation());
+ if (DVR.isDbgAssign()) {
+ assert(DVR.getRawAddress() &&
+ "DbgVariableRecord location unexpectedly null");
+ AddFnLocalMetadata(DVR.getRawAddress());
}
}
if (!I.getType()->isVoidTy())