mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 04:38:24 +00:00
Derive MDNode from MetadataBase instead of Constant. Emit MDNodes into METADATA_BLOCK in bitcode file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76834 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -201,24 +201,26 @@ void ValueEnumerator::EnumerateValue(const Value *V) {
|
||||
|
||||
// Finally, add the value. Doing this could make the ValueID reference be
|
||||
// dangling, don't reuse it.
|
||||
Values.push_back(std::make_pair(V, 1U));
|
||||
ValueMap[V] = Values.size();
|
||||
return;
|
||||
} else if (const MDNode *N = dyn_cast<MDNode>(C)) {
|
||||
for (MDNode::const_elem_iterator I = N->elem_begin(), E = N->elem_end();
|
||||
I != E; ++I) {
|
||||
if (*I)
|
||||
EnumerateValue(*I);
|
||||
else
|
||||
EnumerateType(Type::VoidTy);
|
||||
}
|
||||
|
||||
Values.push_back(std::make_pair(V, 1U));
|
||||
ValueMap[V] = Values.size();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (const MDNode *N = dyn_cast<MDNode>(V)) {
|
||||
Values.push_back(std::make_pair(V, 1U));
|
||||
ValueMap[V] = Values.size();
|
||||
ValueID = Values.size();
|
||||
for (MDNode::const_elem_iterator I = N->elem_begin(), E = N->elem_end();
|
||||
I != E; ++I) {
|
||||
if (*I)
|
||||
EnumerateValue(*I);
|
||||
else
|
||||
EnumerateType(Type::VoidTy);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Add the value.
|
||||
Values.push_back(std::make_pair(V, 1U));
|
||||
ValueID = Values.size();
|
||||
@ -265,7 +267,7 @@ void ValueEnumerator::EnumerateOperandType(const Value *V) {
|
||||
EnumerateOperandType(Elem);
|
||||
}
|
||||
}
|
||||
} else if (isa<MDString>(V))
|
||||
} else if (isa<MDString>(V) || isa<MDNode>(V))
|
||||
EnumerateValue(V);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user