aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2011-12-17 22:19:53 +0000
committerChad Rosier <mcrosier@apple.com>2011-12-17 22:19:53 +0000
commit2e6119429fc521cddd7dde4f8f237ab0ec5ceb06 (patch)
treee7ef83296346a32fe84cd43fec6bf807e202144b
parent67005b311c357abb5dd9d8e66d6521c0c63afbb4 (diff)
downloadexternal_llvm-2e6119429fc521cddd7dde4f8f237ab0ec5ceb06.zip
external_llvm-2e6119429fc521cddd7dde4f8f237ab0ec5ceb06.tar.gz
external_llvm-2e6119429fc521cddd7dde4f8f237ab0ec5ceb06.tar.bz2
Revert 146728 as it's causing failures on some of the external bots as well as
internal nightly testers. Original commit message: By popular demand, link up types by name if they are isomorphic and one is an autorenamed version of the other. This makes the IR easier to read, because we don't end up with random renamed versions of the types after LTO'ing a large app. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146838 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Linker/LinkModules.cpp25
-rw-r--r--test/Linker/link-type-names.ll9
2 files changed, 0 insertions, 34 deletions
diff --git a/lib/Linker/LinkModules.cpp b/lib/Linker/LinkModules.cpp
index c53b206..ab099bb 100644
--- a/lib/Linker/LinkModules.cpp
+++ b/lib/Linker/LinkModules.cpp
@@ -543,31 +543,6 @@ void ModuleLinker::computeTypeMapping() {
TypeMap.addTypeMapping(DGV->getType(), I->getType());
}
- // Incorporate types by name, scanning all the types in the source module.
- // At this point, the destination module may have a type "%foo = { i32 }" for
- // example. When the source module got loaded into the same LLVMContext, if
- // it had the same type, it would have been renamed to "%foo.42 = { i32 }".
- // Though it isn't required for correctness, attempt to link these up to clean
- // up the IR.
- std::vector<StructType*> SrcStructTypes;
- SrcM->findUsedStructTypes(SrcStructTypes);
-
- for (unsigned i = 0, e = SrcStructTypes.size(); i != e; ++i) {
- StructType *ST = SrcStructTypes[i];
- if (!ST->hasName()) continue;
-
- // Check to see if there is a dot in the name followed by a digit.
- size_t DotPos = ST->getName().rfind('.');
- if (DotPos == 0 || DotPos == StringRef::npos ||
- ST->getName().back() == '.' || !isdigit(ST->getName()[DotPos+1]))
- continue;
-
- // Check to see if the destination module has a struct with the prefix name.
- if (StructType *DST = DstM->getTypeByName(ST->getName().substr(0, DotPos)))
- TypeMap.addTypeMapping(DST, ST);
- }
-
-
// Don't bother incorporating aliases, they aren't generally typed well.
// Now that we have discovered all of the type equivalences, get a body for
diff --git a/test/Linker/link-type-names.ll b/test/Linker/link-type-names.ll
deleted file mode 100644
index b54c9db..0000000
--- a/test/Linker/link-type-names.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: echo "%X = type { i32 } @G2 = global %X { i32 4 }" > %t.ll
-; RUN: llvm-link %s %t.ll -S | FileCheck %s
-
-%X = type { i32 }
-@G = global %X { i32 4 }
-
-
-; CHECK: @G = global %X { i32 4 }
-; CHECK: @G2 = global %X { i32 4 }