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
diff --git a/llvm/lib/Linker/IRMover.cpp b/llvm/lib/Linker/IRMover.cpp
index 03539f3..42081442 100644
--- a/llvm/lib/Linker/IRMover.cpp
+++ b/llvm/lib/Linker/IRMover.cpp
@@ -318,8 +318,8 @@
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 @@
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 @@
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 @@
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) {