diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2018-02-21 20:12:18 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2018-02-21 20:12:18 +0000 |
commit | 9a2bf413a01958766d445687767699362c84b2c9 (patch) | |
tree | 13b8f184cf00a4609c3292d0020d40392d185f09 /llvm/lib/Linker | |
parent | 9060b57e707b3e9231394a617a391f2dff1f6293 (diff) | |
download | bcm5719-llvm-9a2bf413a01958766d445687767699362c84b2c9.tar.gz bcm5719-llvm-9a2bf413a01958766d445687767699362c84b2c9.zip |
Revert "[IRMover] Implement name based structure type mapping"
This reverts commit r325686.
There was a misunderstanding and this has not been approved yet.
llvm-svn: 325715
Diffstat (limited to 'llvm/lib/Linker')
-rw-r--r-- | llvm/lib/Linker/IRMover.cpp | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/llvm/lib/Linker/IRMover.cpp b/llvm/lib/Linker/IRMover.cpp index 03539f393cb..42081442db7 100644 --- a/llvm/lib/Linker/IRMover.cpp +++ b/llvm/lib/Linker/IRMover.cpp @@ -318,8 +318,8 @@ Type *TypeMapTy::get(Type *Ty, SmallPtrSet<StructType *, 8> &Visited) { return *Entry = Ty; } - if (StructType *OldT = DstStructTypesSet.findNonOpaque( - ElementTypes, IsPacked, STy->getName())) { + if (StructType *OldT = + DstStructTypesSet.findNonOpaque(ElementTypes, IsPacked)) { STy->setName(""); return *Entry = OldT; } @@ -906,6 +906,7 @@ bool IRLinker::shouldLink(GlobalValue *DGV, GlobalValue &SGV) { Expected<Constant *> IRLinker::linkGlobalValueProto(GlobalValue *SGV, bool ForAlias) { GlobalValue *DGV = getLinkedToGlobal(SGV); + bool ShouldLink = shouldLink(DGV, *SGV); // just missing from map @@ -1409,14 +1410,12 @@ bool IRMover::StructTypeKeyInfo::isEqual(const StructType *LHS, void IRMover::IdentifiedStructTypeSet::addNonOpaque(StructType *Ty) { assert(!Ty->isOpaque()); - if (Ty->hasName()) - NonOpaqueStructNameMap.insert({getTypeNamePrefix(Ty->getName()), Ty}); - NonOpaqueStructTypes.insert(Ty); } void IRMover::IdentifiedStructTypeSet::switchToNonOpaque(StructType *Ty) { - addNonOpaque(Ty); + assert(!Ty->isOpaque()); + NonOpaqueStructTypes.insert(Ty); bool Removed = OpaqueStructTypes.erase(Ty); (void)Removed; assert(Removed); @@ -1429,16 +1428,10 @@ void IRMover::IdentifiedStructTypeSet::addOpaque(StructType *Ty) { StructType * IRMover::IdentifiedStructTypeSet::findNonOpaque(ArrayRef<Type *> ETypes, - bool IsPacked, StringRef Name) { + bool IsPacked) { IRMover::StructTypeKeyInfo::KeyTy Key(ETypes, IsPacked); auto I = NonOpaqueStructTypes.find_as(Key); - if (I == NonOpaqueStructTypes.end()) - return nullptr; - auto NI = NonOpaqueStructNameMap.find(getTypeNamePrefix(Name)); - if (NI != NonOpaqueStructNameMap.end() && - IRMover::StructTypeKeyInfo::KeyTy((*NI).second) == Key) - return (*NI).second; - return *I; + return I == NonOpaqueStructTypes.end() ? nullptr : *I; } bool IRMover::IdentifiedStructTypeSet::hasType(StructType *Ty) { |