Rui Ueyama
5d2939302a
ELF: Make findAbsoluteAtom return AtomLayout* instead of an iterator.
...
All calls of findAbsoluteAtoms seem a bit awkward because of the type
of the function. It semantically returns a pointer to an AtomLayout or
nothing, so I made the function return AtomLayout*.
In this patch, I also expanded some "auto"s because their actual type
were not obvious in their contexts.
llvm-svn: 233769
2015-03-31 22:37:59 +00:00
Rui Ueyama
6a75d842c9
ELF: Fix dereferencing end() iterator.
...
findAbsoluteAtom() returns absoluteAtom().end() if no atom is found.
Dereferencing end() value results an undefined behavior.
llvm-svn: 233765
2015-03-31 22:08:43 +00:00
Rui Ueyama
1490b3512e
ELF: Remove TargetHandler::getTargetLayout.
...
Only MIPS used that member function, and by removing the use of the
function, I removed a static_cast. Seems like it's a win.
llvm-svn: 233748
2015-03-31 20:31:48 +00:00
Rui Ueyama
b99d9a0a81
Remove "_hexagon" prefix from some member variables.
...
At least in Mips we don't have a prefix for member variables.
Repeating the architecture is verbose.
llvm-svn: 233746
2015-03-31 20:29:08 +00:00
Rui Ueyama
d3eee4c95c
Replace *(uniqueptr.get()) with *uniqueptr.
...
Apparently they are copy-pastes. They need to be merged, or otherwise
they will diverge needlessly as I did in r233723...
llvm-svn: 233741
2015-03-31 19:55:39 +00:00
Rui Ueyama
73ee010d2d
Use C++ non-static member initialization.
...
llvm-svn: 233739
2015-03-31 19:37:33 +00:00
Rui Ueyama
1f0cd04df9
Rename _AArch64TargetLayout.
...
This change should have been done in r233737, but I made a mistake to
not include into that.
llvm-svn: 233738
2015-03-31 19:35:35 +00:00
Rui Ueyama
efaf6a77d1
Rename identifiers starting with an underscore and a uppercase letter.
...
Identifiers starting with _[A-Z] is reserved for the language.
User programs shouldn't use such identifiers.
llvm-svn: 233737
2015-03-31 19:33:25 +00:00
Rui Ueyama
537287041b
Remove virtual and add override.
...
llvm-svn: 233735
2015-03-31 19:21:43 +00:00
Simon Atanasyan
f00d85a809
[Mips] Use llvm::make_unique
...
No functional changes.
llvm-svn: 233727
2015-03-31 19:00:54 +00:00
Rui Ueyama
2b28b59311
If x is a unique_ptr, *x.get() is equivalent to *x.
...
llvm-svn: 233723
2015-03-31 18:26:31 +00:00
Rui Ueyama
07269cc91d
Use llvm::make_unique.
...
llvm-svn: 233721
2015-03-31 18:19:06 +00:00
Rui Ueyama
6814d4f52d
ELF: Replace a macro with an inlined function.
...
FINDV4BITMASK macro is defined as a macro so that the macro body is inlined.
We should use inlined functions instead of macros.
llvm-svn: 233719
2015-03-31 18:15:05 +00:00
Rui Ueyama
ace9717a9b
ELF: Do not use multiple inheritance.
...
Multiple inheritance is casually used here. Rewriting to not
using multiple inheritance reduces the complexity of the code
and also makes it shorter.
llvm-svn: 233718
2015-03-31 18:10:24 +00:00
Rui Ueyama
c351f9563a
Use DEBUG_TYPE and DEBUG instead of DEBUG_WITH_TYPE.
...
llvm-svn: 233710
2015-03-31 16:48:57 +00:00
Simon Atanasyan
1b2a089951
[Mips] Remove redundant #include
...
No functional changes.
llvm-svn: 233692
2015-03-31 13:04:08 +00:00
Simon Atanasyan
0d26edab09
[Mips] Do not use MIPS assembler and disassembler in the tests
...
No functional changes.
llvm-svn: 233691
2015-03-31 13:04:01 +00:00
Simon Atanasyan
cb576ef415
[Mips] Move the `Elf_RegInfo` structure declaration to the separate file
...
No functional changes.
llvm-svn: 233618
2015-03-30 22:36:07 +00:00
Simon Atanasyan
2693b5a36c
[ELF] Change type of `OutputSection::setType()` argument to int64_t
...
Type of `OutputSection::_type` field is int64_t. This change makes
the field's and the argument's types consistent and allows to assign
full range of values to the `OutputSection::_type` field.
llvm-svn: 233617
2015-03-30 22:36:01 +00:00
Simon Atanasyan
d484653fed
[Mips] clang-format the code
...
No functional changes.
llvm-svn: 233616
2015-03-30 22:35:56 +00:00
Simon Atanasyan
8d08bb2154
[ELF] Use override keyword instead of virtual
...
No functional changes.
llvm-svn: 233550
2015-03-30 15:07:16 +00:00
Simon Atanasyan
6dec97f2c3
[Mips] Do not use llvm::Optional for GP0 value and TLS section address
...
Use of llvm::Optional is redundant here. Initializing by default value 0
is enough.
No functional changes.
llvm-svn: 233549
2015-03-30 15:07:11 +00:00
Simon Atanasyan
a341e38e39
[Mips] Rename class method merge => mergeHeaderFlags
...
No functional changes.
llvm-svn: 233548
2015-03-30 15:07:05 +00:00
Denis Protivensky
48906062df
[ARM] Remove whitespace in rel-ifunc test
...
llvm-svn: 233538
2015-03-30 13:31:05 +00:00
Simon Atanasyan
f9db164355
[Mips] Fix writing R_MIPS_REL32 relocation addendum
...
If input relocation records have RELA format while output dynamic
relocations have REL format the only way to transfer a dynamic
relocation addendum is to save it into the location modified by
the dynamic relocation.
llvm-svn: 233532
2015-03-30 11:39:02 +00:00
Rui Ueyama
4757f3210c
ELF: Use C++11 non-member initialization.
...
Setting _alignment member varaible to 0 look suspicious since
the minimum alignment value is 1. I'm not going to change that
number in this patch, though.
llvm-svn: 233472
2015-03-28 04:17:41 +00:00
Leny Kholodov
4ba377561f
[ARM] Fix group relocations test.
...
The fix is for r233277. This makes tests work.
On some build bots the test failed due to different llvm-objdump behaviour for target detection.
Now test checks .text section with etalon and illustrates correctness of generated
code without using of -disassemble llvm-objdump option.
llvm-svn: 233463
2015-03-28 01:18:10 +00:00
Rui Ueyama
aedd1117e9
ELF: Add a comment about the sysroot path.
...
llvm-svn: 233461
2015-03-28 00:59:37 +00:00
Rui Ueyama
483f05f49b
ELF: Do less if HAVE_CXXABI_H is not defined.
...
If HAVE_CXXABI_H is not defined, this function is the identity function.
Because HAVE_CXXABI_H did not protect the entire function, it did
extra stuffs before returning the argument.
The new code calls fewer functions. This should help developers understand
this piece of code.
llvm-svn: 233460
2015-03-28 00:47:13 +00:00
Rui Ueyama
fa3e8979a5
ELF: make code concise using "using".
...
llvm-svn: 233458
2015-03-28 00:34:09 +00:00
Rui Ueyama
034f627838
Use cast instead of dyn_cast in combination with llvm_unreachable.
...
llvm-svn: 233456
2015-03-28 00:09:26 +00:00
Rui Ueyama
6fab3c73b8
Use lambda for std::find_if.
...
llvm-svn: 233454
2015-03-28 00:00:09 +00:00
Rui Ueyama
286494717f
Remove else after return.
...
llvm-svn: 233453
2015-03-27 23:50:09 +00:00
Rui Ueyama
ccaaa21bc9
Use lambda instead of defining a class with operator().
...
llvm-svn: 233452
2015-03-27 23:47:01 +00:00
Rui Ueyama
cefe5d678d
ELF: make scopes of error code varaibles narrower.
...
llvm-svn: 233450
2015-03-27 23:30:38 +00:00
Rui Ueyama
5332ba8bea
ELF: Simplify SymbolFile.
...
llvm-svn: 233449
2015-03-27 23:26:39 +00:00
Rui Ueyama
49147e30f8
Remove unused forward declaration.
...
llvm-svn: 233444
2015-03-27 22:59:26 +00:00
Rui Ueyama
d5c60d032f
ELF: Use llvm::Optional<StringRef> instead of a bool and a StringRef.
...
llvm-svn: 233442
2015-03-27 22:51:50 +00:00
Rui Ueyama
a57f619133
Remove virtual from some ELFLinkingContext member functions.
...
I expected that these functions are overridden somewhere in the LLD
code base, but they are actually not. Removing virtual for readability
(and performance).
llvm-svn: 233441
2015-03-27 22:47:44 +00:00
Rui Ueyama
0de4ab513f
Reorder ELFLinkingContext member functions and run clang-format.
...
So that they look to be following the same style as other functions
around them.
llvm-svn: 233440
2015-03-27 22:47:42 +00:00
Rui Ueyama
a2ddf07f25
ELF: Do not use llvm::Optional for _maxPageSize.
...
Use of llvm::Optional seems useless here because we can set the
default value 0x1000 as an initial value to the varaible.
This patch also de-virtualize the accessor functions.
llvm-svn: 233438
2015-03-27 22:28:35 +00:00
Rui Ueyama
c470444837
Fix comment style to follow more common style.
...
llvm-svn: 233437
2015-03-27 22:28:33 +00:00
Rui Ueyama
e555684115
ELF: Make addSearchPath return void instead of bool.
...
No one uses return value of the member function, and return value
is always true. Returning a value doesn't make sense.
This patch also de-virtualize the fucntion.
llvm-svn: 233436
2015-03-27 22:20:21 +00:00
Rui Ueyama
9cced88c7a
ELF: Remove redundant =delete.
...
Since we have a (protected) constructor having two parameters,
the default constructor is not defined even if we don't do =delete.
llvm-svn: 233435
2015-03-27 22:13:29 +00:00
Rui Ueyama
b531fe33d5
ELF: Use C++11 non-member initialization.
...
llvm-svn: 233434
2015-03-27 22:10:29 +00:00
Rui Ueyama
adef19778c
Remove unused varaible.
...
llvm-svn: 233433
2015-03-27 22:06:37 +00:00
Rui Ueyama
2d6d7efb00
PECOFF: Use C++11 non-static member initialization.
...
llvm-svn: 233431
2015-03-27 21:59:23 +00:00
Rui Ueyama
89616adb0c
Use override keyword instead of virtual.
...
llvm-svn: 233424
2015-03-27 21:39:15 +00:00
Rui Ueyama
988355c3ae
Remove empty constructors.
...
llvm-svn: 233423
2015-03-27 21:39:13 +00:00
Rui Ueyama
96278ff759
Fix formatting.
...
llvm-svn: 233418
2015-03-27 20:50:56 +00:00