Revert "Make global aliases have symbol size equal to their type"
authorJohn Brawn <john.brawn@arm.com>
Fri, 7 Aug 2015 10:56:21 +0000 (10:56 +0000)
committerJohn Brawn <john.brawn@arm.com>
Fri, 7 Aug 2015 10:56:21 +0000 (10:56 +0000)
This reverts r242520, as it caused pr24379. Also removes part of the test added
by r243874 that checks the size of alias symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@244313 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/AsmPrinter.cpp
test/CodeGen/AArch64/global-merge-2.ll
test/CodeGen/AArch64/global-merge-3.ll
test/CodeGen/ARM/aliases.ll
test/CodeGen/ARM/global-merge-external.ll

index f736f023c986d1aae9d02813a43d897c683f18e9..0ea2c66757a5a1597086d1195269f2442027d78a 100644 (file)
@@ -1184,16 +1184,6 @@ bool AsmPrinter::doFinalization(Module &M) {
 
     // Emit the directives as assignments aka .set:
     OutStreamer->EmitAssignment(Name, lowerConstant(Alias.getAliasee()));
-
-    // Set the size of the alias symbol if we can, as otherwise the alias gets
-    // the size of the aliasee which may not be correct e.g. if the alias is of
-    // a member of a struct.
-    if (MAI->hasDotTypeDotSizeDirective() && Alias.getValueType()->isSized()) {
-      const DataLayout &DL = M.getDataLayout();
-      uint64_t Size = DL.getTypeAllocSize(Alias.getValueType());
-      OutStreamer->emitELFSize(cast<MCSymbolELF>(Name),
-                               MCConstantExpr::create(Size, OutContext));
-    }
   }
 
   GCModuleInfo *MI = getAnalysisIfAvailable<GCModuleInfo>();
index cdbdb8aed2efa59e047cb3cd255522280bd1564a..af684039bf10fab3f1156361d5d47e340dc5ca94 100644 (file)
@@ -35,13 +35,10 @@ define void @g1(i32 %a1, i32 %a2) {
 
 ;CHECK:        .globl  x
 ;CHECK: x = _MergedGlobals_x
-;CHECK: .size x, 4
 ;CHECK:        .globl  y
 ;CHECK: y = _MergedGlobals_x+4
-;CHECK: .size y, 4
 ;CHECK:        .globl  z
 ;CHECK: z = _MergedGlobals_x+8
-;CHECK: .size z, 4
 
 ;CHECK-APPLE-IOS: .globl       __MergedGlobals_x       ; @_MergedGlobals_x
 ;CHECK-APPLE-IOS: .zerofill __DATA,__common,__MergedGlobals_x,12,3
index 2e459a069bbb02c025a8f76056d9302c99cb7253..925108308e56332631afbae7ac8bfddba260b4fe 100644 (file)
@@ -42,10 +42,8 @@ define void @f1(i32 %a1, i32 %a2, i32 %a3) {
 
 ;CHECK:        .globl  x
 ;CHECK: x = _MergedGlobals_x+4
-;CHECK: .size x, 4000
 ;CHECK:        .globl  y
 ;CHECK: y = _MergedGlobals_y
-;CHECK: .size y, 4000
 
 ;CHECK-APPLE-IOS:.globl        _x
 ;CHECK-APPLE-IOS: _x = __MergedGlobals_x+4
index 8d0d57db44b1fb0876d0e507f2c7cf8ae3b4d968..04ca3e875487ed3447c9b1a4c8ef534d6dcaaa17 100644 (file)
@@ -2,34 +2,19 @@
 
 ; CHECK: .globl        test
 
-; CHECK: .globl structvar
-; CHECK: .size structvar, 8
-
 ; CHECK: .globl        foo1
 ; CHECK: foo1 = bar
-; CHECK: .size foo1, 4
 
 ; CHECK: .globl        foo2
 ; CHECK: foo2 = bar
-; CHECK: .size foo2, 4
 
 ; CHECK: .weak bar_f
 ; CHECK: bar_f = foo_f
 
 ; CHECK: bar_i = bar
-; CHECK: .size bar_i, 4
 
 ; CHECK: .globl        A
 ; CHECK: A = bar
-; CHECK: .size A, 8
-
-; CHECK: .globl elem0
-; CHECK: elem0 = structvar
-; CHECK: .size elem0, 4
-
-; CHECK: .globl elem1
-; CHECK: elem1 = structvar+4
-; CHECK: .size elem1, 4
 
 @bar = global i32 42
 @foo1 = alias i32* @bar
@@ -46,10 +31,6 @@ define i32 @foo_f() {
 
 @A = alias bitcast (i32* @bar to i64*)
 
-@structvar = global {i32, i32} {i32 1, i32 2}
-@elem0 = alias getelementptr({i32, i32}, {i32, i32}*  @structvar, i32 0, i32 0)
-@elem1 = alias getelementptr({i32, i32}, {i32, i32}*  @structvar, i32 0, i32 1)
-
 define i32 @test() {
 entry:
    %tmp = load i32, i32* @foo1
index acc778999a8a45fb7fd6ae1b5f1d3972796e9eea..0dd3f477e9b39d0b3dba3f96043fbe7d051b9913 100644 (file)
@@ -39,10 +39,7 @@ define void @g1(i32 %a1, i32 %a2) {
 
 ;CHECK-MERGE:  .globl  x
 ;CHECK-MERGE: x = _MergedGlobals_x
-;CHECK-MERGE: .size x, 4
 ;CHECK-MERGE:  .globl  y
 ;CHECK-MERGE: y = _MergedGlobals_x+4
-;CHECK-MERGE: .size y, 4
 ;CHECK-MERGE:  .globl  z
 ;CHECK-MERGE: z = _MergedGlobals_x+8
-;CHECK-MERGE: .size z, 4