[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