mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
[IRMover] Add comment and fix test case
llvm-svn: 323407
This commit is contained in:
parent
ce1999a1e1
commit
449a2735e1
@ -95,6 +95,12 @@ void TypeMapTy::addTypeMapping(Type *DstTy, Type *SrcTy) {
|
||||
for (StructType *Ty : SpeculativeDstOpaqueTypes)
|
||||
DstResolvedOpaqueTypes.erase(Ty);
|
||||
} else {
|
||||
// SrcTy and DstTy are recursively ismorphic. We clear names of SrcTy
|
||||
// and all its descendants to lower amount of renaming in LLVM context
|
||||
// Renaming occurs because we load all source modules to the same context
|
||||
// and declaration with existing name gets renamed (i.e Foo -> Foo.42).
|
||||
// As a result we may get several different types in the destination
|
||||
// module, which are in fact the same.
|
||||
for (Type *Ty : SpeculativeTypes)
|
||||
if (auto *STy = dyn_cast<StructType>(Ty))
|
||||
if (STy->hasName())
|
||||
|
@ -1,6 +1,8 @@
|
||||
; RUN: llvm-link %p/type-unique-dst-types.ll \
|
||||
; RUN: %p/Inputs/type-unique-dst-types2.ll \
|
||||
; RUN: %p/Inputs/type-unique-dst-types3.ll -S -o - | FileCheck %s
|
||||
; RUN: %p/Inputs/type-unique-dst-types3.ll -S -o %t1.ll
|
||||
; RUN: cat %t1.ll | FileCheck %s
|
||||
; RUN: cat %t1.ll | FileCheck --check-prefix=RENAMED %s
|
||||
|
||||
; This tests the importance of keeping track of which types are part of the
|
||||
; destination module.
|
||||
@ -14,6 +16,8 @@
|
||||
; CHECK: @g1 = external global %A
|
||||
; CHECK: @g2 = external global %A
|
||||
|
||||
; RENAMED-NOT: A.11
|
||||
|
||||
%A = type { %B }
|
||||
%B = type { i8 }
|
||||
@g3 = external global %A
|
||||
|
Loading…
Reference in New Issue
Block a user