Michael J. Spencer
4260657fab
[ELF] Make AtomLayout more accessible.
...
This is needed to allow constant time access to the final layout of atoms.
llvm-svn: 173874
2013-01-30 01:25:06 +00:00
Michael J. Spencer
e68f90355c
[ELF] Chop the ELF prefix off of most things.
...
llvm-svn: 173838
2013-01-29 22:03:39 +00:00
Shankar Easwaran
185e8a076d
remove targetInfo and layout from ELFTargetLayout
...
llvm-svn: 173824
2013-01-29 20:13:16 +00:00
Michael J. Spencer
43ecac5a2c
[ELF] Fix header sort order.
...
llvm-svn: 173822
2013-01-29 19:53:41 +00:00
Michael J. Spencer
289dcedea5
[ELF] Add support for IFUNC.
...
This sadly doesn't have a test for the final
output because llvm-objdump can't dump relocations
that don't belong to a section :(
llvm-svn: 173808
2013-01-29 16:38:03 +00:00
Michael J. Spencer
bf77be3ba5
[ELF] Give Chunk a ELFTargetInfo.
...
llvm-svn: 173743
2013-01-29 01:07:47 +00:00
Michael J. Spencer
adfb7eb211
[ELF] Remove OwningPtr from the Chunk::write interface.
...
llvm-svn: 173741
2013-01-29 01:00:21 +00:00
Michael J. Spencer
bdf8bc8315
[ELF] Clean up doxygen comments.
...
llvm-svn: 173740
2013-01-29 01:00:04 +00:00
Shankar Easwaran
072fb1a403
add register section, remove contentType from sectionKey
...
llvm-svn: 173709
2013-01-28 19:21:04 +00:00
Michael J. Spencer
d269a3e281
[ELF] Use correct regex in test.
...
llvm-svn: 173665
2013-01-28 06:11:39 +00:00
Michael J. Spencer
990ec2b223
[ELF] Use entry point from LinkerOptions.
...
Patch by Ahmed Bougacha!
llvm-svn: 173655
2013-01-28 04:15:44 +00:00
Benjamin Kramer
ac49d37a63
lldX86_64ELFTarget depends on lldCore.
...
llvm-svn: 173573
2013-01-26 13:49:19 +00:00
Michael J. Spencer
20231f1275
Use proper delete.
...
llvm-svn: 173570
2013-01-26 12:26:56 +00:00
Michael J. Spencer
5ba1a96a10
[ELF][x86-64] Add relocation string<->kind.
...
llvm-svn: 173533
2013-01-25 23:48:58 +00:00
Michael J. Spencer
866e0f8a8c
[ELF][X86-64] Use the correct base address.
...
llvm-svn: 173527
2013-01-25 23:23:24 +00:00
Michael J. Spencer
385f312686
[CMake] Setup include dirs properly.
...
llvm-svn: 173488
2013-01-25 20:50:01 +00:00
Shankar Easwaran
4277c2d6bf
change all occurences of File to FileELF
...
llvm-svn: 173449
2013-01-25 15:19:02 +00:00
Shankar Easwaran
3256d4ff62
add elf targethandler
...
llvm-svn: 173430
2013-01-25 07:39:18 +00:00
Michael J. Spencer
88f4d24e4a
[Driver] Run the pass manager.
...
llvm-svn: 173381
2013-01-24 22:52:42 +00:00
Michael J. Spencer
19c4756ff2
Move SimpleAtoms.h to ReaderWriter.
...
llvm-svn: 173380
2013-01-24 22:52:25 +00:00
Nick Kledzik
36293f6512
Add SectionPosition and OrderPass
...
llvm-svn: 173300
2013-01-23 22:32:56 +00:00
Michael J. Spencer
563d33a6f1
[ELF] Read IFUNC symbols correctly as typeResolver.
...
llvm-svn: 173299
2013-01-23 22:08:46 +00:00
Michael J. Spencer
c0d3c4efe6
Add PassManager.
...
It owns and manages passes.
llvm-svn: 173287
2013-01-23 20:03:10 +00:00
Shankar Easwaran
c142874c9c
change from using 2 bits to 4 bits, as 2 bits arent enough to hold the enumeration OutputKind
...
llvm-svn: 173266
2013-01-23 15:11:22 +00:00
Michael J. Spencer
64afcb4c6b
Move everything over to TargetInfo.
...
I really would have liked to split this patch up, but it would greatly
complicate the lld-core and lld drivers having to deal with both
{Reader,Writer}Option and TargetInfo.
llvm-svn: 173217
2013-01-23 01:18:43 +00:00
Michael J. Spencer
4586fbcbad
[Core] Move Resolver and SymbolTable over to TargetInfo.
...
No functionality change.
llvm-svn: 173192
2013-01-22 20:49:42 +00:00
Shankar Easwaran
58ad41b563
change enum class to enum, as g++ doesnot support bitfields with enumerated classes with c++11 flag set
...
llvm-svn: 173166
2013-01-22 14:58:51 +00:00
Shankar Easwaran
c7176430dc
it looks like g++ 4.7.2 doesnot like bit fields when the type is a enumeration (Throws an error as bit-field with non integral type)
...
llvm-svn: 173125
2013-01-22 04:12:03 +00:00
Michael J. Spencer
d68d6196af
Add {,ELF,MachO}TargetInfo.
...
llvm-svn: 173117
2013-01-22 02:15:30 +00:00
Shankar Easwaran
6d9921fc53
no functionality changes(split WriterELF into multiple files)
...
llvm-svn: 173082
2013-01-21 20:09:55 +00:00
Michael J. Spencer
8af48f3864
[Core] Use LLVM's ErrorOr<T>.
...
llvm-svn: 172993
2013-01-20 21:27:05 +00:00
Michael J. Spencer
359e09d4f5
[docs] Document lld's usage of C++11 features.
...
llvm-svn: 172972
2013-01-20 10:39:17 +00:00
Chandler Carruth
b5f3bd956c
Replace the 'final' keyword with 'LLVM_FINAL' as GCC 4.6 doesn't support
...
the keyword.
If anyone cares deeply about the final optimizations with GCC, we might
want to add a version test to the LLVM definition, but I'm perfectly
happy with this just only firing under Clang and modern MSVC builds.
llvm-svn: 172898
2013-01-19 09:57:51 +00:00
Chandler Carruth
8b95c03fca
Allow the LLD CMake build to work with -std=gnu++0x and -std=gnu++11 as
...
well as c++0x and c++11. This can be especially useful when building
with GCC in C++11 mode.
llvm-svn: 172897
2013-01-19 09:41:42 +00:00
Chandler Carruth
058761266d
Fix the build with libstdc++ v4.6 on Linux by supplying an explicit move
...
assignment operator. There is an issue where classes with deleted copy
constructors and user defined move constructors end up with an
implicitly deleted copy constructor that is selected instead of the
implicit move constructor. This is a bit of a hack, but it allows me to
build LLD in a bootstrap with libstdc++ which is my primary goal.
llvm-svn: 172896
2013-01-19 09:38:14 +00:00
Michael J. Spencer
a17b72e7cf
[Core] Fix passing an rvalue reference of ErrorOr.
...
llvm-svn: 172850
2013-01-18 21:42:01 +00:00
Michael J. Spencer
71c00f42bd
[ELF] Use operator new(std::size_t, BumpPtrAllocator).
...
llvm-svn: 172675
2013-01-16 23:34:45 +00:00
Michael J. Spencer
84d3b01fb5
[ELF] clang-format ReaderELF.cpp
...
llvm-svn: 172674
2013-01-16 23:34:32 +00:00
Michael J. Spencer
fe71a50494
Trailing whitespace.
...
llvm-svn: 172554
2013-01-15 21:13:14 +00:00
Michael J. Spencer
8b3898af26
[ELF] Never allocate content to weak symbols as they may be merged away.
...
This is done by creating a new non-weak anonymous symbol and creating
an atom with content for that symbol. This is added after the weak symbol
so that they have the same address.
llvm-svn: 172553
2013-01-15 21:13:02 +00:00
Michael J. Spencer
842885e06e
[ELF] Refactoring and style cleanup. No functionality change.
...
llvm-svn: 172552
2013-01-15 21:12:45 +00:00
Michael J. Spencer
b03f6c489a
[ELF] Update for LLVM Object/ELF changes.
...
llvm-svn: 172516
2013-01-15 07:53:22 +00:00
Michael J. Spencer
bb78a04088
[ELF] Replace [...] x_{begin,end}() with range<[...]> x().
...
llvm-svn: 172513
2013-01-15 06:55:37 +00:00
Michael J. Spencer
aa3aa570dc
[Core] Add iterator ranges.
...
This is based on code by Jeffrey Yasskin. It has been modified to compile
with MSVC and reformated to LLVM style.
llvm-svn: 172512
2013-01-15 06:55:25 +00:00
Michael J. Spencer
7fe77f8c61
[ELF] Fix use of LLVM RTTI.
...
llvm-svn: 172511
2013-01-15 06:55:11 +00:00
Shankar Easwaran
f6dc082f91
remove const from FindByName
...
llvm-svn: 172507
2013-01-15 03:02:33 +00:00
Michael J. Spencer
ed1950719b
[docs] Add driver documentation.
...
This gives an overview of the driver and explains how to add options and driver flavors.
llvm-svn: 172502
2013-01-15 02:00:59 +00:00
Michael J. Spencer
31dffbb659
[docs] Update status.
...
llvm-svn: 172501
2013-01-15 02:00:48 +00:00
Nick Kledzik
233f537799
Add new merge-by-content Merge attribute for use by anonymous
...
constants and string literals which the linker should coalesce.
llvm-svn: 172495
2013-01-15 00:17:57 +00:00
Nick Kledzik
343ecbd6ba
Fix shadowed variable warning
...
llvm-svn: 172482
2013-01-14 22:10:22 +00:00