mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-21 21:29:41 +00:00
Disable MDNode uniquing.
- Hopefully this unbreaks some llvm-gcc bootstraps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81141 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
53a99f9cda
commit
d34b0b1cda
@ -90,11 +90,16 @@ MDNode *MDNode::get(LLVMContext &Context, Value*const* Vals, unsigned NumVals) {
|
|||||||
for (unsigned i = 0; i != NumVals; ++i)
|
for (unsigned i = 0; i != NumVals; ++i)
|
||||||
ID.AddPointer(Vals[i]);
|
ID.AddPointer(Vals[i]);
|
||||||
|
|
||||||
|
// FIXME: MDNode uniquing disabled temporarily.
|
||||||
|
#ifndef ENABLE_MDNODE_UNIQUING
|
||||||
|
return new MDNode(Context, Vals, NumVals);
|
||||||
|
#endif
|
||||||
|
|
||||||
pImpl->ConstantsLock.reader_acquire();
|
pImpl->ConstantsLock.reader_acquire();
|
||||||
void *InsertPoint;
|
void *InsertPoint;
|
||||||
MDNode *N = pImpl->MDNodeSet.FindNodeOrInsertPos(ID, InsertPoint);
|
MDNode *N = pImpl->MDNodeSet.FindNodeOrInsertPos(ID, InsertPoint);
|
||||||
pImpl->ConstantsLock.reader_release();
|
pImpl->ConstantsLock.reader_release();
|
||||||
|
|
||||||
if (!N) {
|
if (!N) {
|
||||||
sys::SmartScopedWriter<true> Writer(pImpl->ConstantsLock);
|
sys::SmartScopedWriter<true> Writer(pImpl->ConstantsLock);
|
||||||
N = pImpl->MDNodeSet.FindNodeOrInsertPos(ID, InsertPoint);
|
N = pImpl->MDNodeSet.FindNodeOrInsertPos(ID, InsertPoint);
|
||||||
@ -115,12 +120,27 @@ void MDNode::dropAllReferences() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MDNode::~MDNode() {
|
MDNode::~MDNode() {
|
||||||
|
// FIXME: MDNode uniquing disabled temporarily.
|
||||||
|
#ifdef ENABLE_MDNODE_UNIQUING
|
||||||
getType()->getContext().pImpl->MDNodeSet.RemoveNode(this);
|
getType()->getContext().pImpl->MDNodeSet.RemoveNode(this);
|
||||||
|
#endif
|
||||||
dropAllReferences();
|
dropAllReferences();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Replace value from this node's element list.
|
// Replace value from this node's element list.
|
||||||
void MDNode::replaceElement(Value *From, Value *To) {
|
void MDNode::replaceElement(Value *From, Value *To) {
|
||||||
|
// FIXME: MDNode uniquing disabled temporarily.
|
||||||
|
#ifndef ENABLE_MDNODE_UNIQUING
|
||||||
|
if (From == To || !getType())
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (SmallVector<ElementVH, 4>::iterator I = Node.begin(),
|
||||||
|
E = Node.end(); I != E; ++I)
|
||||||
|
if (*I && *I == From)
|
||||||
|
*I = ElementVH(To, this);
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (From == To || !getType())
|
if (From == To || !getType())
|
||||||
return;
|
return;
|
||||||
LLVMContext &Context = getType()->getContext();
|
LLVMContext &Context = getType()->getContext();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user