Rui Ueyama
d819aa5c54
[lld] Do not create a temporary pair.
...
llvm-svn: 182033
2013-05-16 17:58:14 +00:00
Rui Ueyama
bd314482e1
[lld] Fix inconsistent style and do cleanup.
...
llvm-svn: 182031
2013-05-16 17:53:34 +00:00
Rui Ueyama
5f689e24de
[lld] Fix compiler warning that shift count is too big on P64.
...
llvm-svn: 181852
2013-05-14 23:51:50 +00:00
Rui Ueyama
fe81cf8f91
[lld] Allow flags other than -std= in CMAKE_CXX_FLAGS. Also simplify the IF conditions.
...
llvm-svn: 181822
2013-05-14 19:53:41 +00:00
Rui Ueyama
0196d1062f
[lld][LayoutPass] Cleanup: replace (*atom).size() with atom->size().
...
llvm-svn: 181804
2013-05-14 16:53:59 +00:00
Rui Ueyama
5ec6d1a9cd
[lld][LayoutPass] Fix a bug that caused buildbot to fail on some platforms.
...
llvm-svn: 181752
2013-05-14 01:51:56 +00:00
Rui Ueyama
ca8ca55b52
[lld][LayoutPass] Split buildFollowOnTable for readability.
...
Summary:
Split buildFollowOnTable to small functions to improve
code readability and remove code duplication. No change
in functionality.
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D790
llvm-svn: 181749
2013-05-14 00:41:52 +00:00
Rui Ueyama
deb979bf7a
[lld] Add help text for -flavor option.
...
llvm-svn: 181655
2013-05-11 01:24:38 +00:00
Rui Ueyama
0227be6b0e
[lld] Fix typo in document.
...
llvm-svn: 181652
2013-05-11 00:26:26 +00:00
Rui Ueyama
eaadec3a39
[lld] Document about how to enable debug output.
...
llvm-svn: 181640
2013-05-10 22:19:28 +00:00
Shankar Easwaran
bd525a3f63
[lld][ELF] set ordinals for mergeAtoms and fix testcase
...
llvm-svn: 181622
2013-05-10 18:52:29 +00:00
Shankar Easwaran
3c5d2c8a24
[lld][LayoutPass] This commit fixes a problem in the
...
Layoutpass by ordering atoms if they appear in the override
list first and then looking at the way of ordering atoms in
the default way.
The fix also fixes issues with the sizes of the sections,
that appear in the output properly too.
The commit also adds a testcase(orderatoms-by-override.test)
to test it and fixes all the other relevant testcases.
llvm-svn: 181605
2013-05-10 16:44:02 +00:00
Rui Ueyama
eb6b6e4857
[lld] Fix broken test. -layout-pass option does not exist.
...
Also shuffle the atoms so that it can verify the layout pass
actually changed the layout.
llvm-svn: 181573
2013-05-10 00:50:33 +00:00
Rui Ueyama
4689326d4c
[lld] Fix wrong comment.
...
llvm-svn: 181547
2013-05-09 21:14:02 +00:00
Rui Ueyama
90b3b92a8b
[lld] Use range based for loop instead of explicit iterators (no functionality change)
...
llvm-svn: 181503
2013-05-09 04:00:44 +00:00
Rui Ueyama
60f5f30687
[lld] Add comments to InputFiles::searchLibraries() arguments.
...
llvm-svn: 181492
2013-05-08 23:54:10 +00:00
Rui Ueyama
980e52d7ae
[lld][Core] Fix latch synchronization bug.
...
We need to acquire a lock before signal a condition.
Otherwise threads waiting on a condition variable can
miss a signal.
Consider two threads: Thread A executing dec() and thread
B executing sync(). The initial value of _count is 1. If
these two threads are interleaved in the following order,
thread B misses the signal sent by thread A, because at the
time thread A sends a signal, B is not waiting for it.
Thread A | Thread B
| std::unique_lock<std::mutex> lock(_condMut);
| while (!(_count == 0)) {
if (--_count == 0) |
_cond_notify_all() |
| _cond.wait();
| }
Note that "wait(lock, pred)" is equivalent to "while(!pred())
wait(lock)", so I expanded it in the above example.
Reviewers: Bigcheese
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D764
llvm-svn: 181484
2013-05-08 23:29:24 +00:00
Rui Ueyama
ec504cfffd
[lld] Add "explicit" to constructors where appropriate.
...
Summary:
Add the explicit keyword to one-parameter
constructors to prevent unintended type conversions.
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D765
llvm-svn: 181483
2013-05-08 23:20:53 +00:00
Nick Kledzik
80d8308b57
Use anonymous namespace for local classes. Patch by Rui Ueyama
...
llvm-svn: 181473
2013-05-08 21:34:11 +00:00
Shankar Easwaran
e796006333
[lld][ELF] fix build failure
...
llvm-svn: 181325
2013-05-07 15:27:02 +00:00
Shankar Easwaran
790ede43de
[lld][ELF] split ELF reader into multiple functions for readability (no change in functionality)
...
llvm-svn: 181288
2013-05-07 04:58:09 +00:00
Michael J. Spencer
75ed350132
[ELF] Initialize readers and writers on creation.
...
This makes the target handler a constructor argument because the constructor of
OutputELFWriter relies on it being initialized.
llvm-svn: 181280
2013-05-07 00:28:07 +00:00
Michael J. Spencer
b5fb0dee0c
[Core] Properly stop the ThreadPoolExecutor and use the ConcRT memory allocator.
...
llvm-svn: 181279
2013-05-07 00:27:40 +00:00
Shankar Easwaran
c8858b3469
[lld]remove lld-core
...
llvm-svn: 181244
2013-05-06 20:24:39 +00:00
Tim Northover
d11e5bc03c
[lld][ELF] fix header comment typos
...
llvm-svn: 181188
2013-05-06 08:31:58 +00:00
Shankar Easwaran
6e1f5b7d1a
[lld][ELF] reduce the number of symbols emitted in the symbol table
...
llvm-svn: 180872
2013-05-01 19:36:38 +00:00
Shankar Easwaran
02078464e1
[lld][ELF] continue on finding a section with no symbols, tests already present
...
llvm-svn: 180769
2013-04-30 03:14:01 +00:00
Shankar Easwaran
cc06891c42
[lld][ELF] (no testable functionality change) resize the number of entries in the string table for static linking
...
llvm-svn: 180692
2013-04-29 04:10:42 +00:00
Shankar Easwaran
d846d9852e
[lld][ELF] (no testable functionality change) resize the number of entries in the string table for static linking
...
llvm-svn: 180691
2013-04-29 04:10:11 +00:00
Shankar Easwaran
45a5f93517
[lld][LayoutPass] initialize the number of entries for the densehash (no functionality change)
...
llvm-svn: 180690
2013-04-29 03:27:57 +00:00
Michael J. Spencer
9d70cef481
[Core] Allow weak symbols in shared library when linking.
...
Patch by Rui Ueyama.
llvm-svn: 180209
2013-04-24 19:00:26 +00:00
Andy Gibbs
93383381d7
Distinguish between unsupported and unrecognised flavours.
...
Suggested by Nick Kledzik in reference to r179590.
llvm-svn: 179617
2013-04-16 19:24:13 +00:00
Andy Gibbs
bab932b850
Moved llvm_unreachable out of switch blocks to avoid the "control reaches end of non-void function" warning.
...
llvm-svn: 179590
2013-04-16 11:52:34 +00:00
Michael J. Spencer
1eb3b89d92
[Core] Add parallel infrastructure to lld.
...
Uses ConcRT and PPL on Windows.
llvm-svn: 179397
2013-04-12 18:40:39 +00:00
Nico Rieck
bdfd4eb223
Replace elf-dump with llvm-readobj in lld tests
...
llvm-svn: 179364
2013-04-12 04:29:01 +00:00
Shankar Easwaran
bba9fe8495
[test] missing underscore while checking for test output
...
llvm-svn: 179264
2013-04-11 04:20:21 +00:00
Shankar Easwaran
4cb24b38f6
[test] fix failing test, the test was not accounting for - in the path
...
llvm-svn: 179260
2013-04-11 04:08:11 +00:00
Shankar Easwaran
eeee23e60a
This adds functionality for undefined atoms from dynamic libraries to be added
...
to the list of undefined atoms.
The processing of undefined atoms from dynamic libraries is controlled by
use-shlib-undefines command line option.
This patch also adds additional command line arguments to allow/disallow
unresolved symbols from shared libraries and mimics GNU ld behavior.
llvm-svn: 179257
2013-04-11 02:56:30 +00:00
Michael J. Spencer
d4eb47c110
Add VTune as an optional external dependency and add task tracking.
...
llvm-svn: 178940
2013-04-06 00:56:40 +00:00
Michael J. Spencer
e6d5609de4
Revert "Correctly pass ownership of MemoryBuffers."
...
llvm-svn: 178918
2013-04-05 22:04:44 +00:00
Michael J. Spencer
ce1e53e19c
Correctly pass ownership of MemoryBuffers.
...
llvm-svn: 178914
2013-04-05 21:08:30 +00:00
Michael J. Spencer
096ea03f31
Fix uninitialized variables. Found by ubsan.
...
llvm-svn: 178913
2013-04-05 21:07:44 +00:00
Shankar Easwaran
f4a5e2f439
[ELF][test] add dynamic library search
...
llvm-svn: 178840
2013-04-05 04:34:57 +00:00
Shankar Easwaran
a4323a5cca
This fixes a SIGSEGV failure in ReaderArchive while trying to trace what
...
InputFile is being pulled from the Archive library to resolve a symbol.
The buffer which was being used was already being handed over to the
MemoryBuffer object and was being accessed after the hand over.
Moving it before the buffer is handed over.
llvm-svn: 178838
2013-04-05 03:50:15 +00:00
Shankar Easwaran
831b4a0503
[test] remove printing the file to stdout
...
llvm-svn: 178817
2013-04-04 23:53:46 +00:00
Shankar Easwaran
d953d66ee9
[ELF] fix atom order
...
llvm-svn: 178815
2013-04-04 23:51:36 +00:00
Michael J. Spencer
dfe85483d5
[Driver] Fix symlinked universal driver behavior and add a test.
...
llvm-svn: 178798
2013-04-04 22:04:16 +00:00
Nick Kledzik
563d9dc1b2
temp change to test case to debug buildbot failure
...
llvm-svn: 178788
2013-04-04 20:34:37 +00:00
Nick Kledzik
f4fa8c0a75
fix DEBUG_WITH_TYPE to build without warnings in non-debug builds
...
llvm-svn: 178787
2013-04-04 20:32:18 +00:00
Michael J. Spencer
3ab4db67f7
Fix MSVC build.
...
llvm-svn: 178781
2013-04-04 19:45:34 +00:00