Commit Graph

6 Commits

Author SHA1 Message Date
Eugene Leviant ee8dcfbdf7 [ELF] Set max page size to 64K for AArch64
Differential revision: https://reviews.llvm.org/D25079

llvm-svn: 283200
2016-10-04 08:58:55 +00:00
Peter Collingbourne dbcf5b99d0 Remove unnecessary function type directives for ifuncs.
llvm-svn: 267569
2016-04-26 16:50:02 +00:00
Mandeep Singh Grang 01ae1daafe [LLD] Remove unwanted --check-prefix=CHECK from unit tests. NFC.
Summary:
Removed unwanted --check-prefix=CHECK from the following unit tests:
      ELF/aarch64-gnu-ifunc.s
      ELF/gnu-ifunc-i386.s
      ELF/gnu-ifunc.s
      ELF/plt-i686.s

Patch by: Mandeep Singh Grang (mgrang)

Reviewers: rafael

Subscribers: aemerson

Projects: #lld

Differential Revision: http://reviews.llvm.org/D19149

llvm-svn: 266453
2016-04-15 17:21:29 +00:00
Rafael Espindola 03ef404e97 Simplify the creation of __rel[a]_iplt_{start,end}.
They can be regular DefinedSynthetic.

llvm-svn: 265981
2016-04-11 19:14:59 +00:00
Rafael Espindola ccfe3cb3d6 Don't store an Elf_Sym for most symbols.
Our symbol representation was redundant, and some times would get out of
sync. It had an Elf_Sym, but some fields were copied to SymbolBody.

Different parts of the code were checking the bits in SymbolBody and
others were checking Elf_Sym.

There are two general approaches to fix this:
* Copy the required information and don't store and Elf_Sym.
* Don't copy the information and always use the Elf_Smy.

The second way sounds tempting, but has a big problem: we would have to
template SymbolBody. I started doing it, but it requires templeting
*everything* and creates a bit chicken and egg problem at the driver
where we have to find ELFT before we can create an ArchiveFile for
example.

As much as possible I compared the test differences with what gold and
bfd produce to make sure they are still valid. In most cases we are just
adding hidden visibility to a local symbol, which is harmless.

In most tests this is a small speedup. The only slowdown was scylla
(1.006X). The largest speedup was clang with no --build-id, -O3 or
--gc-sections (i.e.: focus on the relocations): 1.019X.

llvm-svn: 265293
2016-04-04 14:04:16 +00:00
George Rimar a48043521f [ELF/AARCH64] - Implemented R_AARCH64_IRELATIVE relocation.
Implemented in the same way as was already done for x86/x64 targets (http://reviews.llvm.org/D15235).

Differential revision: http://reviews.llvm.org/D15806

llvm-svn: 257332
2016-01-11 14:15:17 +00:00