[lld] r200369 - [ELF][Hexagon] typeZeroFillQuick is not associated with bss section.

Shankar Easwaran shankare at codeaurora.org
Tue Jan 28 20:04:27 PST 2014


Author: shankare
Date: Tue Jan 28 22:04:27 2014
New Revision: 200369

URL: http://llvm.org/viewvc/llvm-project?rev=200369&view=rev
Log:
[ELF][Hexagon] typeZeroFillQuick is not associated with bss section.

We need to increase the memory and the filesize when we add a typeZeroFillQuick
atom.

Added:
    lld/trunk/test/elf/Hexagon/Inputs/sdata1.c
    lld/trunk/test/elf/Hexagon/Inputs/sdata1.o
    lld/trunk/test/elf/Hexagon/Inputs/sdata2.c
    lld/trunk/test/elf/Hexagon/Inputs/sdata2.o
    lld/trunk/test/elf/Hexagon/zerofillquick-sdata.test
Modified:
    lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h

Modified: lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h?rev=200369&r1=200368&r2=200369&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h Tue Jan 28 22:04:27 2014
@@ -288,6 +288,7 @@ const lld::AtomLayout &AtomSection<ELFT>
     case DefinedAtom::typeConstant:
     case DefinedAtom::typeData:
     case DefinedAtom::typeDataFast:
+    case DefinedAtom::typeZeroFillFast:
     case DefinedAtom::typeGOT:
     case DefinedAtom::typeStub:
     case DefinedAtom::typeResolver:
@@ -312,7 +313,6 @@ const lld::AtomLayout &AtomSection<ELFT>
       break;
     case DefinedAtom::typeThreadZeroFill:
     case DefinedAtom::typeZeroFill:
-    case DefinedAtom::typeZeroFillFast:
       _atoms.push_back(new (_alloc) lld::AtomLayout(atom, mOffset, 0));
       this->_msize = mOffset + definedAtom->size();
       break;

Added: lld/trunk/test/elf/Hexagon/Inputs/sdata1.c
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/Hexagon/Inputs/sdata1.c?rev=200369&view=auto
==============================================================================
--- lld/trunk/test/elf/Hexagon/Inputs/sdata1.c (added)
+++ lld/trunk/test/elf/Hexagon/Inputs/sdata1.c Tue Jan 28 22:04:27 2014
@@ -0,0 +1,3 @@
+static int a = 0;
+
+int b = 10;

Added: lld/trunk/test/elf/Hexagon/Inputs/sdata1.o
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/Hexagon/Inputs/sdata1.o?rev=200369&view=auto
==============================================================================
Binary files lld/trunk/test/elf/Hexagon/Inputs/sdata1.o (added) and lld/trunk/test/elf/Hexagon/Inputs/sdata1.o Tue Jan 28 22:04:27 2014 differ

Added: lld/trunk/test/elf/Hexagon/Inputs/sdata2.c
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/Hexagon/Inputs/sdata2.c?rev=200369&view=auto
==============================================================================
--- lld/trunk/test/elf/Hexagon/Inputs/sdata2.c (added)
+++ lld/trunk/test/elf/Hexagon/Inputs/sdata2.c Tue Jan 28 22:04:27 2014
@@ -0,0 +1,6 @@
+int sdata1 = 10;
+int sdata2 = 20;
+int sdata3 = 30;
+
+int sbss1 = 0;
+

Added: lld/trunk/test/elf/Hexagon/Inputs/sdata2.o
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/Hexagon/Inputs/sdata2.o?rev=200369&view=auto
==============================================================================
Binary files lld/trunk/test/elf/Hexagon/Inputs/sdata2.o (added) and lld/trunk/test/elf/Hexagon/Inputs/sdata2.o Tue Jan 28 22:04:27 2014 differ

Added: lld/trunk/test/elf/Hexagon/zerofillquick-sdata.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/Hexagon/zerofillquick-sdata.test?rev=200369&view=auto
==============================================================================
--- lld/trunk/test/elf/Hexagon/zerofillquick-sdata.test (added)
+++ lld/trunk/test/elf/Hexagon/zerofillquick-sdata.test Tue Jan 28 22:04:27 2014
@@ -0,0 +1,18 @@
+# This tests that a typeZeroFillFast atom is associated with a section that has
+# the correct memory size. 
+
+RUN: lld -flavor gnu -target hexagon %p/Inputs/sdata1.o %p/Inputs/sdata2.o \
+RUN:    -o %t --noinhibit-exec -static
+RUN: llvm-readobj -sections %t | FileCheck -check-prefix=CHECKSECTIONSANDSIZE %s
+
+CHECKSECTIONSANDSIZE:  Section {
+CHECKSECTIONSANDSIZE:    Name: .sdata (13)
+CHECKSECTIONSANDSIZE:    Address: 0x1000
+CHECKSECTIONSANDSIZE:    Offset: 0x1000
+CHECKSECTIONSANDSIZE:    Size: 20
+CHECKSECTIONSANDSIZE:  }
+CHECKSECTIONSANDSIZE:  Section {
+CHECKSECTIONSANDSIZE:    Name: .bss (20)
+CHECKSECTIONSANDSIZE:    Address: 0x1018
+CHECKSECTIONSANDSIZE:    Offset: 0x1018
+CHECKSECTIONSANDSIZE:  }





More information about the llvm-commits mailing list