[llvm] 8bd0c97 - [PowerPC][AIX] Adds support for writing the data section in object files

via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 30 11:44:48 PDT 2019


Author: jasonliu
Date: 2019-10-30T18:44:35Z
New Revision: 8bd0c9781001f66e86e77ee076b20522efb92c9d

URL: https://github.com/llvm/llvm-project/commit/8bd0c9781001f66e86e77ee076b20522efb92c9d
DIFF: https://github.com/llvm/llvm-project/commit/8bd0c9781001f66e86e77ee076b20522efb92c9d.diff

LOG: [PowerPC][AIX] Adds support for writing the data section in object files

Adds support for generating the XCOFF data section in object files for global variables with initialization.

Merged aix-xcoff-common.ll into aix-xcoff-data.ll.

Changed variable name charr to chrarray in the test case to test if readobj works with 8-character names.

Authored by: xingxue

Reviewers: hubert.reinterptrtcast, sfertile, jasonliu, daltenty, Xiangling_L.

Reviewed by: hubert.reinterpretcast, sfertile, daltenty.

Subscribers: DiggerLin, Wuzish, nemanjai, hiraditya, MaskRay, jsji, shchenz, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D67125

Added: 
    

Modified: 
    llvm/lib/MC/XCOFFObjectWriter.cpp
    llvm/test/CodeGen/PowerPC/aix-xcoff-data.ll

Removed: 
    llvm/test/CodeGen/PowerPC/aix-xcoff-common.ll


################################################################################
diff  --git a/llvm/lib/MC/XCOFFObjectWriter.cpp b/llvm/lib/MC/XCOFFObjectWriter.cpp
index 05f3f769e5b1..d8f9e0b593bf 100644
--- a/llvm/lib/MC/XCOFFObjectWriter.cpp
+++ b/llvm/lib/MC/XCOFFObjectWriter.cpp
@@ -158,15 +158,17 @@ class XCOFFObjectWriter : public MCObjectWriter {
   // the sections. Should have one for each set of csects that get mapped into
   // the same section and get handled in a 'similar' way.
   CsectGroup ProgramCodeCsects{CsectGroup::LabelDefSupported, {}};
+  CsectGroup DataCsects{CsectGroup::LabelDefSupported, {}};
   CsectGroup BSSCsects{CsectGroup::LabelDefUnsupported, {}};
 
   // The Predefined sections.
   Section Text;
+  Section Data;
   Section BSS;
 
   // All the XCOFF sections, in the order they will appear in the section header
   // table.
-  std::array<Section *const, 2> Sections{{&Text, &BSS}};
+  std::array<Section *const, 3> Sections{{&Text, &Data, &BSS}};
 
   CsectGroup &getCsectGroup(const MCSectionXCOFF *MCSec);
 
@@ -224,6 +226,8 @@ XCOFFObjectWriter::XCOFFObjectWriter(
       Strings(StringTableBuilder::XCOFF),
       Text(".text", XCOFF::STYP_TEXT, /* IsVirtual */ false,
            CsectGroups{&ProgramCodeCsects}),
+      Data(".data", XCOFF::STYP_DATA, /* IsVirtual */ false,
+           CsectGroups{&DataCsects}),
       BSS(".bss", XCOFF::STYP_BSS, /* IsVirtual */ true,
           CsectGroups{&BSSCsects}) {}
 
@@ -251,6 +255,9 @@ CsectGroup &XCOFFObjectWriter::getCsectGroup(const MCSectionXCOFF *MCSec) {
     if (XCOFF::XTY_CM == MCSec->getCSectType())
       return BSSCsects;
 
+    if (XCOFF::XTY_SD == MCSec->getCSectType())
+      return DataCsects;
+
     report_fatal_error("Unhandled mapping of read-write csect to section.");
   case XCOFF::XMC_BS:
     assert(XCOFF::XTY_CM == MCSec->getCSectType() &&

diff  --git a/llvm/test/CodeGen/PowerPC/aix-xcoff-common.ll b/llvm/test/CodeGen/PowerPC/aix-xcoff-common.ll
deleted file mode 100644
index 726c1e74b9d4..000000000000
--- a/llvm/test/CodeGen/PowerPC/aix-xcoff-common.ll
+++ /dev/null
@@ -1,221 +0,0 @@
-; RUN: llc -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck %s
-
-; RUN: llc -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s
-; RUN: llvm-readobj --section-headers --file-header %t.o | \
-; RUN: FileCheck --check-prefix=OBJ %s
-; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefix=SYMS %s
-
-; RUN: not llc -mtriple powerpc64-ibm-aix-xcoff -filetype=obj -o %t.o 2>&1 \
-; RUN: < %s | FileCheck --check-prefix=XCOFF64 %s
-
-; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
-
- at a = common global i32 0, align 4
- at b = common global i64 0, align 8
- at c = common global i16 0, align 2
-
- at d = common local_unnamed_addr global double 0.000000e+00, align 8
- at f = common local_unnamed_addr global float 0.000000e+00, align 4
-
- at over_aligned = common local_unnamed_addr global double 0.000000e+00, align 32
-
- at array = common local_unnamed_addr global [33 x i8] zeroinitializer, align 1
-
-; CHECK-NOT: .toc
-
-; CHECK:      .csect .text[PR]
-; CHECK-NEXT:  .file
-; CHECK-NEXT: .comm   a,4,2
-; CHECK-NEXT: .comm   b,8,3
-; CHECK-NEXT: .comm   c,2,1
-; CHECK-NEXT: .comm   d,8,3
-; CHECK-NEXT: .comm   f,4,2
-; CHECK-NEXT: .comm   over_aligned,8,5
-; CHECK-NEXT: .comm   array,33,0
-
-; OBJ:      File: {{.*}}aix-xcoff-common.ll.tmp.o
-; OBJ-NEXT: Format: aixcoff-rs6000
-; OBJ-NEXT: Arch: powerpc
-; OBJ-NEXT: AddressSize: 32bit
-; OBJ-NEXT: FileHeader {
-; OBJ-NEXT:   Magic: 0x1DF
-; OBJ-NEXT:   NumberOfSections: 2
-; OBJ-NEXT:   TimeStamp:
-; OBJ-NEXT:   SymbolTableOffset: 0x64
-; OBJ-NEXT:   SymbolTableEntries: 16
-; OBJ-NEXT:   OptionalHeaderSize: 0x0
-; OBJ-NEXT:   Flags: 0x0
-; OBJ-NEXT: }
-; OBJ-NEXT: Sections [
-; OBJ-NEXT:   Section {
-; OBJ-NEXT:     Index: 1
-; OBJ-NEXT:     Name: .text
-; OBJ-NEXT:     PhysicalAddress: 0x0
-; OBJ-NEXT:     VirtualAddress: 0x0
-; OBJ-NEXT:     Size: 0x0
-; OBJ-NEXT:     RawDataOffset: 0x64
-; OBJ-NEXT:     RelocationPointer: 0x0
-; OBJ-NEXT:     LineNumberPointer: 0x0
-; OBJ-NEXT:     NumberOfRelocations: 0
-; OBJ-NEXT:     NumberOfLineNumbers: 0
-; OBJ-NEXT:     Type: STYP_TEXT (0x20)
-; OBJ-NEXT:   }
-; OBJ-NEXT:   Section {
-; OBJ-NEXT:     Index: 2
-; OBJ-NEXT:     Name: .bss
-; OBJ-NEXT:     PhysicalAddress: 0x0
-; OBJ-NEXT:     VirtualAddress: 0x0
-; OBJ-NEXT:     Size: 0x6C
-; OBJ-NEXT:     RawDataOffset: 0x0
-; OBJ-NEXT:     RelocationPointer: 0x0
-; OBJ-NEXT:     LineNumberPointer: 0x0
-; OBJ-NEXT:     NumberOfRelocations: 0
-; OBJ-NEXT:     NumberOfLineNumbers: 0
-; OBJ-NEXT:     Type: STYP_BSS (0x80)
-; OBJ-NEXT:   }
-; OBJ-NEXT: ]
-
-; SYMS:      File: {{.*}}aix-xcoff-common.ll.tmp.o
-; SYMS-NEXT: Format: aixcoff-rs6000
-; SYMS-NEXT: Arch: powerpc
-; SYMS-NEXT: AddressSize: 32bit
-; SYMS-NEXT: Symbols [
-; SYMS:        Symbol {{[{][[:space:]] *}}Index: [[#Index:]]{{[[:space:]] *}}Name: a
-; SYMS-NEXT:     Value (RelocatableAddress): 0x0
-; SYMS-NEXT:     Section: .bss
-; SYMS-NEXT:     Type: 0x0
-; SYMS-NEXT:     StorageClass: C_EXT (0x2)
-; SYMS-NEXT:     NumberOfAuxEntries: 1
-; SYMS-NEXT:     CSECT Auxiliary Entry {
-; SYMS-NEXT:       Index: [[#Index + 1]]
-; SYMS-NEXT:       SectionLen: 4
-; SYMS-NEXT:       ParameterHashIndex: 0x0
-; SYMS-NEXT:       TypeChkSectNum: 0x0
-; SYMS-NEXT:       SymbolAlignmentLog2: 2
-; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
-; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
-; SYMS-NEXT:       StabInfoIndex: 0x0
-; SYMS-NEXT:       StabSectNum: 0x0
-; SYMS-NEXT:     }
-; SYMS-NEXT:   }
-; SYMS-NEXT:   Symbol {
-; SYMS-NEXT:     Index: [[#Index + 2]]
-; SYMS-NEXT:     Name: b
-; SYMS-NEXT:     Value (RelocatableAddress): 0x8
-; SYMS-NEXT:     Section: .bss
-; SYMS-NEXT:     Type: 0x0
-; SYMS-NEXT:     StorageClass: C_EXT (0x2)
-; SYMS-NEXT:     NumberOfAuxEntries: 1
-; SYMS-NEXT:     CSECT Auxiliary Entry {
-; SYMS-NEXT:       Index: [[#Index + 3]]
-; SYMS-NEXT:       SectionLen: 8
-; SYMS-NEXT:       ParameterHashIndex: 0x0
-; SYMS-NEXT:       TypeChkSectNum: 0x0
-; SYMS-NEXT:       SymbolAlignmentLog2: 3
-; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
-; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
-; SYMS-NEXT:       StabInfoIndex: 0x0
-; SYMS-NEXT:       StabSectNum: 0x0
-; SYMS-NEXT:     }
-; SYMS-NEXT:   }
-; SYMS-NEXT:   Symbol {
-; SYMS-NEXT:     Index: [[#Index + 4]]
-; SYMS-NEXT:     Name: c
-; SYMS-NEXT:     Value (RelocatableAddress): 0x10
-; SYMS-NEXT:     Section: .bss
-; SYMS-NEXT:     Type: 0x0
-; SYMS-NEXT:     StorageClass: C_EXT (0x2)
-; SYMS-NEXT:     NumberOfAuxEntries: 1
-; SYMS-NEXT:     CSECT Auxiliary Entry {
-; SYMS-NEXT:       Index: [[#Index + 5]]
-; SYMS-NEXT:       SectionLen: 2
-; SYMS-NEXT:       ParameterHashIndex: 0x0
-; SYMS-NEXT:       TypeChkSectNum: 0x0
-; SYMS-NEXT:       SymbolAlignmentLog2: 1
-; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
-; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
-; SYMS-NEXT:       StabInfoIndex: 0x0
-; SYMS-NEXT:       StabSectNum: 0x0
-; SYMS-NEXT:     }
-; SYMS-NEXT:   }
-; SYMS-NEXT:   Symbol {
-; SYMS-NEXT:     Index: [[#Index + 6]]
-; SYMS-NEXT:     Name: d
-; SYMS-NEXT:     Value (RelocatableAddress): 0x18
-; SYMS-NEXT:     Section: .bss
-; SYMS-NEXT:     Type: 0x0
-; SYMS-NEXT:     StorageClass: C_EXT (0x2)
-; SYMS-NEXT:     NumberOfAuxEntries: 1
-; SYMS-NEXT:     CSECT Auxiliary Entry {
-; SYMS-NEXT:       Index: [[#Index + 7]]
-; SYMS-NEXT:       SectionLen: 8
-; SYMS-NEXT:       ParameterHashIndex: 0x0
-; SYMS-NEXT:       TypeChkSectNum: 0x0
-; SYMS-NEXT:       SymbolAlignmentLog2: 3
-; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
-; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
-; SYMS-NEXT:       StabInfoIndex: 0x0
-; SYMS-NEXT:       StabSectNum: 0x0
-; SYMS-NEXT:     }
-; SYMS-NEXT:   }
-; SYMS-NEXT:   Symbol {
-; SYMS-NEXT:     Index: [[#Index + 8]]
-; SYMS-NEXT:     Name: f
-; SYMS-NEXT:     Value (RelocatableAddress): 0x20
-; SYMS-NEXT:     Section: .bss
-; SYMS-NEXT:     Type: 0x0
-; SYMS-NEXT:     StorageClass: C_EXT (0x2)
-; SYMS-NEXT:     NumberOfAuxEntries: 1
-; SYMS-NEXT:     CSECT Auxiliary Entry {
-; SYMS-NEXT:       Index: [[#Index + 9]]
-; SYMS-NEXT:       SectionLen: 4
-; SYMS-NEXT:       ParameterHashIndex: 0x0
-; SYMS-NEXT:       TypeChkSectNum: 0x0
-; SYMS-NEXT:       SymbolAlignmentLog2: 2
-; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
-; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
-; SYMS-NEXT:       StabInfoIndex: 0x0
-; SYMS-NEXT:       StabSectNum: 0x0
-; SYMS-NEXT:     }
-; SYMS-NEXT:   }
-; SYMS-NEXT:   Symbol {
-; SYMS-NEXT:     Index: [[#Index + 10]]
-; SYMS-NEXT:     Name: over_aligned
-; SYMS-NEXT:     Value (RelocatableAddress): 0x40
-; SYMS-NEXT:     Section: .bss
-; SYMS-NEXT:     Type: 0x0
-; SYMS-NEXT:     StorageClass: C_EXT (0x2)
-; SYMS-NEXT:     NumberOfAuxEntries: 1
-; SYMS-NEXT:     CSECT Auxiliary Entry {
-; SYMS-NEXT:       Index: [[#Index + 11]]
-; SYMS-NEXT:       SectionLen: 8
-; SYMS-NEXT:       ParameterHashIndex: 0x0
-; SYMS-NEXT:       TypeChkSectNum: 0x0
-; SYMS-NEXT:       SymbolAlignmentLog2: 5
-; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
-; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
-; SYMS-NEXT:       StabInfoIndex: 0x0
-; SYMS-NEXT:       StabSectNum: 0x0
-; SYMS-NEXT:     }
-; SYMS-NEXT:   }
-; SYMS-NEXT:   Symbol {
-; SYMS-NEXT:     Index: [[#Index + 12]]
-; SYMS-NEXT:     Name: array
-; SYMS-NEXT:     Value (RelocatableAddress): 0x48
-; SYMS-NEXT:     Section: .bss
-; SYMS-NEXT:     Type: 0x0
-; SYMS-NEXT:     StorageClass: C_EXT (0x2)
-; SYMS-NEXT:     NumberOfAuxEntries: 1
-; SYMS-NEXT:     CSECT Auxiliary Entry {
-; SYMS-NEXT:       Index: [[#Index + 13]]
-; SYMS-NEXT:       SectionLen: 33
-; SYMS-NEXT:       ParameterHashIndex: 0x0
-; SYMS-NEXT:       TypeChkSectNum: 0x0
-; SYMS-NEXT:       SymbolAlignmentLog2: 0
-; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
-; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
-; SYMS-NEXT:       StabInfoIndex: 0x0
-; SYMS-NEXT:       StabSectNum: 0x0
-; SYMS-NEXT:     }
-; SYMS-NEXT:   }
-; SYMS-NEXT: ]

diff  --git a/llvm/test/CodeGen/PowerPC/aix-xcoff-data.ll b/llvm/test/CodeGen/PowerPC/aix-xcoff-data.ll
index fa1b70d18306..3e69a586edce 100644
--- a/llvm/test/CodeGen/PowerPC/aix-xcoff-data.ll
+++ b/llvm/test/CodeGen/PowerPC/aix-xcoff-data.ll
@@ -1,15 +1,43 @@
+; This file tests the codegen of initialized and common variables in AIX
+; assembly and XCOFF object files.
+
 ; RUN: llc -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck %s
 ; RUN: llc -mtriple powerpc64-ibm-aix-xcoff < %s | FileCheck %s
 
+; RUN: llc -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s
+; RUN: llvm-readobj --section-headers --file-header %t.o | \
+; RUN: FileCheck --check-prefix=OBJ %s
+; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefix=SYMS %s
+
+; RUN: not llc -mtriple powerpc64-ibm-aix-xcoff -filetype=obj < %s 2>&1 | \
+; RUN: FileCheck --check-prefix=XCOFF64 %s
+; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
+
 @ivar = local_unnamed_addr global i32 35, align 4
 @llvar = local_unnamed_addr global i64 36, align 8
 @svar = local_unnamed_addr global i16 37, align 2
 @fvar = local_unnamed_addr global float 8.000000e+02, align 4
 @dvar = local_unnamed_addr global double 9.000000e+02, align 8
 @over_aligned = local_unnamed_addr global double 9.000000e+02, align 32
- at charr = local_unnamed_addr global [4 x i8] c"abcd", align 1
+ at chrarray = local_unnamed_addr global [4 x i8] c"abcd", align 1
 @dblarr = local_unnamed_addr global [4 x double] [double 1.000000e+00, double 2.000000e+00, double 3.000000e+00, double 4.000000e+00], align 8
 
+ at a = common global i32 0, align 4
+ at b = common global i64 0, align 8
+ at c = common global i16 0, align 2
+
+ at d = common local_unnamed_addr global double 0.000000e+00, align 8
+ at f = common local_unnamed_addr global float 0.000000e+00, align 4
+
+ at over_aligned_comm = common local_unnamed_addr global double 0.000000e+00, align 32
+
+ at array = common local_unnamed_addr global [33 x i8] zeroinitializer, align 1
+
+; CHECK-NOT: .toc
+
+; CHECK:      .csect .text[PR]
+; CHECK-NEXT:  .file
+
 ; CHECK:      .csect .data[RW]
 ; CHECK-NEXT: .globl  ivar
 ; CHECK-NEXT: .align  2
@@ -41,8 +69,8 @@
 ; CHECK-NEXT: over_aligned:
 ; CHECK-NEXT: .llong  4651127699538968576
 
-; CHECK:      .globl  charr
-; CHECK-NEXT: charr:
+; CHECK:      .globl  chrarray
+; CHECK-NEXT: chrarray:
 ; CHECK-NEXT: .byte   97
 ; CHECK-NEXT: .byte   98
 ; CHECK-NEXT: .byte   99
@@ -55,3 +83,432 @@
 ; CHECK-NEXT: .llong  4611686018427387904
 ; CHECK-NEXT: .llong  4613937818241073152
 ; CHECK-NEXT: .llong  4616189618054758400
+
+; CHECK-NEXT: .comm   a,4,2
+; CHECK-NEXT: .comm   b,8,3
+; CHECK-NEXT: .comm   c,2,1
+; CHECK-NEXT: .comm   d,8,3
+; CHECK-NEXT: .comm   f,4,2
+; CHECK-NEXT: .comm   over_aligned_comm,8,5
+; CHECK-NEXT: .comm   array,33,0
+
+; OBJ:      File: {{.*}}aix-xcoff-data.ll.tmp.o
+; OBJ-NEXT: Format: aixcoff-rs6000
+; OBJ-NEXT: Arch: powerpc
+; OBJ-NEXT: AddressSize: 32bit
+; OBJ-NEXT: FileHeader {
+; OBJ-NEXT:   Magic: 0x1DF
+; OBJ-NEXT:   NumberOfSections: 3
+; OBJ-NEXT:   TimeStamp:
+; OBJ-NEXT:   SymbolTableOffset: 0xDC
+; OBJ-NEXT:   SymbolTableEntries: 34
+; OBJ-NEXT:   OptionalHeaderSize: 0x0
+; OBJ-NEXT:   Flags: 0x0
+; OBJ-NEXT: }
+
+; OBJ:      Sections [
+; OBJ:        Section {
+; OBJ-NEXT:     Index: 1
+; OBJ-NEXT:     Name: .text
+; OBJ-NEXT:     PhysicalAddress: 0x0
+; OBJ-NEXT:     VirtualAddress: 0x0
+; OBJ-NEXT:     Size: 0x0
+; OBJ-NEXT:     RawDataOffset: 0x8C
+; OBJ-NEXT:     RelocationPointer: 0x0
+; OBJ-NEXT:     LineNumberPointer: 0x0
+; OBJ-NEXT:     NumberOfRelocations: 0
+; OBJ-NEXT:     NumberOfLineNumbers: 0
+; OBJ-NEXT:     Type: STYP_TEXT (0x20)
+; OBJ-NEXT:   }
+
+; OBJ:        Section {
+; OBJ-NEXT:     Index: 2
+; OBJ-NEXT:     Name: .data
+; OBJ-NEXT:     PhysicalAddress: 0x0
+; OBJ-NEXT:     VirtualAddress: 0x0
+; OBJ-NEXT:     Size: 0x50
+; OBJ-NEXT:     RawDataOffset: 0x8C
+; OBJ-NEXT:     RelocationPointer: 0x0
+; OBJ-NEXT:     LineNumberPointer: 0x0
+; OBJ-NEXT:     NumberOfRelocations: 0
+; OBJ-NEXT:     NumberOfLineNumbers: 0
+; OBJ-NEXT:     Type: STYP_DATA (0x40)
+; OBJ-NEXT:   }
+
+; OBJ:        Section {
+; OBJ-NEXT:     Index: 3
+; OBJ-NEXT:     Name: .bss
+; OBJ-NEXT:     PhysicalAddress: 0x50
+; OBJ-NEXT:     VirtualAddress: 0x50
+; OBJ-NEXT:     Size: 0x5C
+; OBJ-NEXT:     RawDataOffset: 0x0
+; OBJ-NEXT:     RelocationPointer: 0x0
+; OBJ-NEXT:     LineNumberPointer: 0x0
+; OBJ-NEXT:     NumberOfRelocations: 0
+; OBJ-NEXT:     NumberOfLineNumbers: 0
+; OBJ-NEXT:     Type: STYP_BSS (0x80)
+; OBJ-NEXT:   }
+; OBJ:      ]
+
+; SYMS:      File: {{.*}}aix-xcoff-data.ll.tmp.o
+; SYMS-NEXT: Format: aixcoff-rs6000
+; SYMS-NEXT: Arch: powerpc
+; SYMS-NEXT: AddressSize: 32bit
+; SYMS:      Symbols [
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX:]]
+; SYMS-NEXT:     Name: .text
+; SYMS-NEXT:     Value (RelocatableAddress): 0x0
+; SYMS-NEXT:     Section: .text
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_HIDEXT (0x6B)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+1]]
+; SYMS-NEXT:       SectionLen: 0
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 0
+; SYMS-NEXT:       SymbolType: XTY_SD (0x1)
+; SYMS-NEXT:       StorageMappingClass: XMC_PR (0x0)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+2]]
+; SYMS-NEXT:     Name: .data
+; SYMS-NEXT:     Value (RelocatableAddress): 0x0
+; SYMS-NEXT:     Section: .data
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_HIDEXT (0x6B)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+3]]
+; SYMS-NEXT:       SectionLen: 80
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 5
+; SYMS-NEXT:       SymbolType: XTY_SD (0x1)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+4]]
+; SYMS-NEXT:     Name: ivar
+; SYMS-NEXT:     Value (RelocatableAddress): 0x0
+; SYMS-NEXT:     Section: .data
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+5]]
+; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 0
+; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+6]]
+; SYMS-NEXT:     Name: llvar
+; SYMS-NEXT:     Value (RelocatableAddress): 0x8
+; SYMS-NEXT:     Section: .data
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+7]]
+; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 0
+; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+8]]
+; SYMS-NEXT:     Name: svar
+; SYMS-NEXT:     Value (RelocatableAddress): 0x10
+; SYMS-NEXT:     Section: .data
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+9]]
+; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 0
+; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+10]]
+; SYMS-NEXT:     Name: fvar
+; SYMS-NEXT:     Value (RelocatableAddress): 0x14
+; SYMS-NEXT:     Section: .data
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+11]]
+; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 0
+; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+12]]
+; SYMS-NEXT:     Name: dvar
+; SYMS-NEXT:     Value (RelocatableAddress): 0x18
+; SYMS-NEXT:     Section: .data
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+13]]
+; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 0
+; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+14]]
+; SYMS-NEXT:     Name: over_aligned
+; SYMS-NEXT:     Value (RelocatableAddress): 0x20
+; SYMS-NEXT:     Section: .data
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+15]]
+; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 0
+; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+16]]
+; SYMS-NEXT:     Name: chrarray
+; SYMS-NEXT:     Value (RelocatableAddress): 0x28
+; SYMS-NEXT:     Section: .data
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+17]]
+; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 0
+; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+18]]
+; SYMS-NEXT:     Name: dblarr
+; SYMS-NEXT:     Value (RelocatableAddress): 0x30
+; SYMS-NEXT:     Section: .data
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+19]]
+; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 0
+; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+20]]
+; SYMS-NEXT:     Name: a
+; SYMS-NEXT:     Value (RelocatableAddress): 0x50
+; SYMS-NEXT:     Section: .bss
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+21]]
+; SYMS-NEXT:       SectionLen: 4
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 2
+; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+22]]
+; SYMS-NEXT:     Name: b
+; SYMS-NEXT:     Value (RelocatableAddress): 0x58
+; SYMS-NEXT:     Section: .bss
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+23]]
+; SYMS-NEXT:       SectionLen: 8
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 3
+; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+24]]
+; SYMS-NEXT:     Name: c
+; SYMS-NEXT:     Value (RelocatableAddress): 0x60
+; SYMS-NEXT:     Section: .bss
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+25]]
+; SYMS-NEXT:       SectionLen: 2
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 1
+; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+26]]
+; SYMS-NEXT:     Name: d
+; SYMS-NEXT:     Value (RelocatableAddress): 0x68
+; SYMS-NEXT:     Section: .bss
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+27]]
+; SYMS-NEXT:       SectionLen: 8
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 3
+; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+28]]
+; SYMS-NEXT:     Name: f
+; SYMS-NEXT:     Value (RelocatableAddress): 0x70
+; SYMS-NEXT:     Section: .bss
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+29]]
+; SYMS-NEXT:       SectionLen: 4
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 2
+; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+30]]
+; SYMS-NEXT:     Name: over_aligned_comm
+; SYMS-NEXT:     Value (RelocatableAddress): 0x80
+; SYMS-NEXT:     Section: .bss
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+31]]
+; SYMS-NEXT:       SectionLen: 8
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 5
+; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+
+; SYMS:        Symbol {
+; SYMS-NEXT:     Index: [[#INDX+32]]
+; SYMS-NEXT:     Name: array
+; SYMS-NEXT:     Value (RelocatableAddress): 0x88
+; SYMS-NEXT:     Section: .bss
+; SYMS-NEXT:     Type: 0x0
+; SYMS-NEXT:     StorageClass: C_EXT (0x2)
+; SYMS-NEXT:     NumberOfAuxEntries: 1
+; SYMS-NEXT:     CSECT Auxiliary Entry {
+; SYMS-NEXT:       Index: [[#INDX+33]]
+; SYMS-NEXT:       SectionLen: 33
+; SYMS-NEXT:       ParameterHashIndex: 0x0
+; SYMS-NEXT:       TypeChkSectNum: 0x0
+; SYMS-NEXT:       SymbolAlignmentLog2: 0
+; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
+; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
+; SYMS-NEXT:       StabInfoIndex: 0x0
+; SYMS-NEXT:       StabSectNum: 0x0
+; SYMS-NEXT:     }
+; SYMS-NEXT:   }
+; SYMS:      ]


        


More information about the llvm-commits mailing list