[lld] r245863 - Read the alignment only when used.
Rafael Espindola via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 24 12:28:31 PDT 2015
Author: rafael
Date: Mon Aug 24 14:28:31 2015
New Revision: 245863
URL: http://llvm.org/viewvc/llvm-project?rev=245863&view=rev
Log:
Read the alignment only when used.
The rest of the header was already read lazily, no point in having align be
special.
Modified:
lld/trunk/ELF/Chunks.cpp
lld/trunk/ELF/Chunks.h
Modified: lld/trunk/ELF/Chunks.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Chunks.cpp?rev=245863&r1=245862&r2=245863&view=diff
==============================================================================
--- lld/trunk/ELF/Chunks.cpp (original)
+++ lld/trunk/ELF/Chunks.cpp Mon Aug 24 14:28:31 2015
@@ -20,7 +20,6 @@ template <class ELFT>
SectionChunk<ELFT>::SectionChunk(object::ELFFile<ELFT> *Obj,
const Elf_Shdr *Header)
: Obj(Obj), Header(Header) {
- Align = Header->sh_addralign;
}
template <class ELFT> void SectionChunk<ELFT>::writeTo(uint8_t *Buf) {
Modified: lld/trunk/ELF/Chunks.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Chunks.h?rev=245863&r1=245862&r2=245863&view=diff
==============================================================================
--- lld/trunk/ELF/Chunks.h (original)
+++ lld/trunk/ELF/Chunks.h Mon Aug 24 14:28:31 2015
@@ -23,6 +23,7 @@ template <class ELFT> class SectionChunk
typedef llvm::object::Elf_Shdr_Impl<ELFT> Elf_Shdr;
typedef llvm::object::Elf_Rel_Impl<ELFT, true> Elf_Rela;
typedef llvm::object::Elf_Rel_Impl<ELFT, false> Elf_Rel;
+ typedef typename llvm::object::ELFFile<ELFT>::uintX_t uintX_t;
public:
SectionChunk(llvm::object::ELFFile<ELFT> *Obj, const Elf_Shdr *Header);
@@ -39,7 +40,7 @@ public:
// The writer sets and uses the addresses.
uint64_t getOutputSectionOff() { return OutputSectionOff; }
- uint32_t getAlign() { return Align; }
+ uintX_t getAlign() { return Header->sh_addralign; }
void setOutputSectionOff(uint64_t V) { OutputSectionOff = V; }
private:
@@ -47,9 +48,6 @@ private:
// to. The writer sets a value.
uint64_t OutputSectionOff = 0;
- // The alignment of this chunk. The writer uses the value.
- uint32_t Align = 1;
-
// A file this chunk was created from.
llvm::object::ELFFile<ELFT> *Obj;
More information about the llvm-commits
mailing list