| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
If a linker script is given with -l, LLD failed to read the file.
The bug was introduced in 227341.
llvm-svn: 227610
|
|
|
|
| |
llvm-svn: 227590
|
|
|
|
|
|
|
| |
We have a DEBUG_TYPE macro for the same debug string already
at the beginning of the file.
llvm-svn: 227551
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SimpleFileWrapper was a class to wrap an existing (possibly non-mutable)
file as a mutable file. We used instances of the class in RoundTrip*
passes, because the passes convert mutable files to non-mutable files,
and we needed to convert them back to mutable.
That feature can be implemented without defining a new class. Generally
speaking, if we can implement a feature without defining a class and
using only public interface of exsiting classes, that's preferred way
to do that. And this is the case.
llvm-svn: 227549
|
|
|
|
| |
llvm-svn: 227536
|
|
|
|
| |
llvm-svn: 227534
|
|
|
|
| |
llvm-svn: 227526
|
|
|
|
|
|
|
| |
getAsInteger may partially update its result argument. We need to
check function return value to handle errors reliably.
llvm-svn: 227510
|
|
|
|
|
|
|
| |
No two atoms are allowed to have the same file and atom ordinals.
If there's such atoms, there's a bug in the reader.
llvm-svn: 227504
|
|
|
|
|
|
|
| |
_runLayoutPass is always true. No way to set a new value to the
member variable.
llvm-svn: 227501
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The LayoutPass is one of the slowest pass. This change is to skip
that pass. This change not only improve performance but also improve
maintainability of the code because the LayoutPass is pretty complex.
Previously we used the LayoutPass to sort all atoms in a specific way,
and reorder them again for PE/COFF in GroupedSectionPass.
I spent time on improving and fixing bugs in the LayoutPass (e.g.
r193029), but the pass is still hard to understand and hard to use.
It's better not to depend on that if we don't need. For PE/COFF, we
just wanted to sort atoms in the same order as the file order in the
command line.
The feature we used in the LayoutPass is now simplified to
compareByPosition function in OrderPass.cpp. The function is just 5
lines.
This patch changes the order of final output because it changes the
sort order a bit. The output is still correct, though.
llvm-svn: 227500
|
|
|
|
| |
llvm-svn: 227410
|
|
|
|
|
|
|
| |
We use a variable name "diag" in many other places and I think
it's preferred because of its length.
llvm-svn: 227369
|
|
|
|
| |
llvm-svn: 227367
|
|
|
|
| |
llvm-svn: 227341
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D7225
llvm-svn: 227320
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 227297
|
|
|
|
|
|
|
|
|
|
|
|
| |
That kind of reference was used only in ELFFile, and the use of
that reference there didn't seem to make sense. All test still
pass (after adjusting symbol names) without that code. LLD is
still be able to link LLD and Clang. Looks like we just don't
need this.
http://reviews.llvm.org/D7189
llvm-svn: 227259
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 227245
|
|
|
|
| |
llvm-svn: 227244
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 227233
|
|
|
|
| |
llvm-svn: 227184
|
|
|
|
|
|
|
|
|
|
|
| |
Misread buildbot's log.
Both gcc and clang compile this fine.
Original fix reason:
gcc allows template specializations only in the same namespace
where template has been declared.
llvm-svn: 227183
|
|
|
|
|
|
| |
The buildbot reported build failures for clang.
llvm-svn: 227179
|
|
|
|
|
|
|
| |
gcc allows template specializations only in the same namespace
where template has been declared.
llvm-svn: 227177
|
|
|
|
|
|
|
|
|
|
|
|
| |
Symbols addressing Thumb code have zero bit set in st_value to distinguish them from ARM instructions.
This caused wrong atoms' forming because of offset of one byte brought in by that corrected st_value.
Fixed reading of st_value & st_value-related things in ARMELFFile while forming atoms.
Symbol table generation is also fixed for Thumb atoms.
Differential Revision: http://reviews.llvm.org/D7161
llvm-svn: 227174
|
|
|
|
|
|
|
|
| |
Anonymous atoms created there were getting wrong atom ordinal.
LayoutAfter references take precedence over atom ordinals, so
the bug was not visible, though.
llvm-svn: 227168
|
|
|
|
| |
llvm-svn: 227147
|
|
|
|
|
|
| |
GNU LD accepts both. CMake seems to use the former than the latter.
llvm-svn: 227144
|
|
|
|
|
|
|
|
|
| |
* Removed cyclic dependency between lldPECOFF and lldDriver
* Added missing dependencies in unit tests
Differential Revision: http://reviews.llvm.org/D7185
llvm-svn: 227134
|
|
|
|
|
|
|
|
|
|
| |
Time to link lld using lld improved from 5.7s to 5.4s on Windows.
It's not a significant improvement but not bad for one-line change.
This patch includes a bug fix for Parallel.h as the original code
uses operator< instead of a compare function there.
llvm-svn: 227132
|
|
|
|
|
|
| |
and raw_fd_ostream constructor expects a StringRef.
llvm-svn: 227081
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is initial patch to support MIPS64 object files linking.
The patch just makes some classes more generalized, and rejects
attempts to interlinking O32 and N64 ABI object files.
I try to reuse the current MIPS target related classes as much as
possible because O32 and N64 MIPS ABI are tightly related and share
almost the same set of relocations, GOT, flags etc.
llvm-svn: 227058
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 227051
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 227049
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 227048
|
|
|
|
|
|
|
|
| |
the class field declarations.
No functional changes.
llvm-svn: 227047
|
|
|
|
|
|
|
|
|
| |
The `Elf_Rel_Impl::setSymbolAndType` method now has the third argument
`IsMips64EL` (like complement methods `getSymbol` and `getType`). While
we do not support linking of MIPS64 ELF object file just pass `false`
to the `setSymbolAndType`.
llvm-svn: 227045
|
|
|
|
|
|
| |
TODO: Move ELF/PPC to ELF/PowerPC
TODO: Move ELF/X86_64 into ELF/X86
llvm-svn: 226989
|
|
|
|
|
|
| |
if false.
llvm-svn: 226984
|
|
|
|
|
|
|
|
|
|
| |
lldELF is used by each ELF backend. lldELF's ELFLinkingContext
also held a reference to each backend, creating a link-time
cycle. This patch moves the backend references to lldDriver.
Differential Revision: http://reviews.llvm.org/D7119
llvm-svn: 226976
|
|
|
|
| |
llvm-svn: 226972
|
|
|
|
|
|
| |
If it's overridden by a derived class, add override to the derived class.
llvm-svn: 226971
|
|
|
|
| |
llvm-svn: 226966
|
|
|
|
| |
llvm-svn: 226965
|
|
|
|
|
|
|
|
|
| |
Moved getMemoryBuffer from DarwnLdDriver to MachOLinkingContext.
lldMachO shared library target now builds.
Differential Review: http://reviews.llvm.org/D7155
llvm-svn: 226963
|
|
|
|
|
|
| |
This reverts commit 6a3f545b44cea46321e025d9ab773786af86cb51.
llvm-svn: 226928
|
|
|
|
|
|
|
|
|
|
| |
lldELF is used by each ELF backend. lldELF's ELFLinkingContext
also held a reference to each backend, creating a link-time
cycle. This patch moves the backend references to lldDriver.
Differential Revision: http://reviews.llvm.org/D7119
llvm-svn: 226922
|
|
|
|
| |
llvm-svn: 226903
|
|
|
|
| |
llvm-svn: 226893
|