- Nov 16, 2016
-
-
Davide Italiano authored
Apparently this is wrong because it's legal to have a filename on UNIX which contains a backslash. Differential Revision: https://reviews.llvm.org/D26734 llvm-svn: 287143
-
Rui Ueyama authored
TaskGroup has a fairly high overhead, so we don't want to partition tasks into too small tasks. This patch partition tasks into up to 1024 tasks. I compared this patch with the original LLD's parallel_for_each. I reverted r287042 locally for comparison. With this patch, time to self-link lld with debug info changed from 6.23 seconds to 4.62 seconds (-25.8%), with -threads and without -build-id. With both -threads and -build-id, it improved from 11.71 seconds to 4.94 seconds (-57.8%). Full results are below. BTW, GNU gold takes 11.65 seconds to link the same binary. NOW --no-threads --build-id=none 6789.847776 task-clock (msec) # 1.000 CPUs utilized ( +- 1.86% ) 685 context-switches # 0.101 K/sec ( +- 2.82% ) 4 cpu-migrations # 0.001 K/sec ( +- 31.18% ) 1,424,690 page-faults # 0.210 M/sec ( +- 1.07% ) 21,339,542,522 cycles # 3.143 GHz ( +- 1.49% ) 13,092,260,230 stalled-cycles-frontend # 61.35% frontend cycles idle ( +- 2.23% ) <not supported> stalled-cycles-backend 21,462,051,828 instructions # 1.01 insns per cycle # 0.61 stalled cycles per insn ( +- 0.41% ) 3,955,296,378 branches # 582.531 M/sec ( +- 0.39% ) 75,699,909 branch-misses # 1.91% of all branches ( +- 0.08% ) 6.787630744 seconds time elapsed ( +- 1.86% ) --threads --build-id=none 14767.148697 task-clock (msec) # 3.196 CPUs utilized ( +- 2.56% ) 28,891 context-switches # 0.002 M/sec ( +- 1.99% ) 905 cpu-migrations # 0.061 K/sec ( +- 5.49% ) 1,262,122 page-faults # 0.085 M/sec ( +- 1.68% ) 43,116,163,217 cycles # 2.920 GHz ( +- 3.07% ) 33,690,171,242 stalled-cycles-frontend # 78.14% frontend cycles idle ( +- 3.67% ) <not supported> stalled-cycles-backend 22,836,731,536 instructions # 0.53 insns per cycle # 1.48 stalled cycles per insn ( +- 1.13% ) 4,382,712,998 branches # 296.788 M/sec ( +- 1.33% ) 78,622,295 branch-misses # 1.79% of all branches ( +- 0.54% ) 4.621228056 seconds time elapsed ( +- 1.90% ) --threads --build-id=sha1 24594.457135 task-clock (msec) # 4.974 CPUs utilized ( +- 1.78% ) 29,902 context-switches # 0.001 M/sec ( +- 2.62% ) 1,097 cpu-migrations # 0.045 K/sec ( +- 6.29% ) 1,313,947 page-faults # 0.053 M/sec ( +- 2.36% ) 70,516,415,741 cycles # 2.867 GHz ( +- 0.78% ) 47,570,262,296 stalled-cycles-frontend # 67.46% frontend cycles idle ( +- 0.86% ) <not supported> stalled-cycles-backend 73,124,599,029 instructions # 1.04 insns per cycle # 0.65 stalled cycles per insn ( +- 0.33% ) 10,495,266,104 branches # 426.733 M/sec ( +- 0.41% ) 91,444,149 branch-misses # 0.87% of all branches ( +- 0.83% ) 4.944291711 seconds time elapsed ( +- 1.72% ) PREVIOUS --threads --build-id=none 7307.437544 task-clock (msec) # 1.160 CPUs utilized ( +- 2.34% ) 3,128 context-switches # 0.428 K/sec ( +- 4.37% ) 352 cpu-migrations # 0.048 K/sec ( +- 5.98% ) 1,354,450 page-faults # 0.185 M/sec ( +- 2.20% ) 22,081,733,098 cycles # 3.022 GHz ( +- 1.46% ) 13,709,991,267 stalled-cycles-frontend # 62.09% frontend cycles idle ( +- 1.77% ) <not supported> stalled-cycles-backend 21,634,468,895 instructions # 0.98 insns per cycle # 0.63 stalled cycles per insn ( +- 0.86% ) 3,993,062,361 branches # 546.438 M/sec ( +- 0.83% ) 76,188,819 branch-misses # 1.91% of all branches ( +- 0.19% ) 6.298101157 seconds time elapsed ( +- 2.03% ) --threads --build-id=sha1 12845.420265 task-clock (msec) # 1.097 CPUs utilized ( +- 1.95% ) 4,020 context-switches # 0.313 K/sec ( +- 2.89% ) 369 cpu-migrations # 0.029 K/sec ( +- 6.26% ) 1,464,822 page-faults # 0.114 M/sec ( +- 1.37% ) 40,668,449,813 cycles # 3.166 GHz ( +- 0.96% ) 18,863,982,388 stalled-cycles-frontend # 46.38% frontend cycles idle ( +- 1.82% ) <not supported> stalled-cycles-backend 71,560,499,058 instructions # 1.76 insns per cycle # 0.26 stalled cycles per insn ( +- 0.14% ) 10,044,152,441 branches # 781.925 M/sec ( +- 0.19% ) 87,835,773 branch-misses # 0.87% of all branches ( +- 0.09% ) 11.711773314 seconds time elapsed ( +- 1.51% ) llvm-svn: 287140
-
Rui Ueyama authored
Also add a comment saying that check() returns a value. llvm-svn: 287136
-
George Rimar authored
This change separates all versioned locals to be a separate list in config, that was suggested by Rafael and simplifies the logic a bit. Differential revision: https://reviews.llvm.org/D26754 llvm-svn: 287132
-
Rafael Espindola authored
Turns out some systems do define it. Not producing an error in this case matches gold and bfd. llvm-svn: 287125
-
George Rimar authored
Previously we did not support them, patch implements this functionality Differential revision: https://reviews.llvm.org/D26604 llvm-svn: 287124
-
George Rimar authored
Forgot about that, I am sorry. llvm-svn: 287123
-
George Rimar authored
Particulaty "cannot preempt symbol" message is extended with locations now. Differential revision: https://reviews.llvm.org/D26738 llvm-svn: 287120
-
Rui Ueyama authored
Our build-id is a tree hash anyway, so I'll define this as a synonym for sha1. GNU gold takes this parameter, so this is for compatibility with that. llvm-svn: 287119
-
Eugene Leviant authored
Differential revision: https://reviews.llvm.org/D26669 llvm-svn: 287092
-
Eugene Leviant authored
This allows making symbols containing ADDR(section) synthetic, and defining synthetic symbols outside SECTIONS block. Differential revision: https://reviews.llvm.org/D25441 llvm-svn: 287090
-
George Rimar authored
Patch improves message to show locations for "can't create dynamic relocation" error. Differential revision: https://reviews.llvm.org/D26548 llvm-svn: 287086
-
Davide Italiano authored
llvm-svn: 287082
-
Rui Ueyama authored
llvm-svn: 287072
-
Rui Ueyama authored
The added module contains nothing, but it is still useful as a test to ensure that we are emitting modules that can be read back. llvm-svn: 287071
-
- Nov 15, 2016
-
-
Rafael Espindola authored
This seems far more natural. A user can create larger chunks if the overhead is too large. With this linking xul with "--threads --build-id=sha1 goes from 13.938177535 to 11.035953538 seconds on linux. llvm-svn: 287042
-
Rui Ueyama authored
createManifestRes was generating a MemoryBuffer from a TemporaryFile, keeping the data but removing the file, before passing the file path to CVTRES.exe, leading to the following error: CVTRES : fatal error CVT1101: cannot open 'C:\Users\user\AppData\ Local\Temp\lld-output-resource-bfee19.res' for reading With this, we instead create a new TemporaryFile before passing it to cvtres. Patch from Rudy Pons! llvm-svn: 287034
-
Rui Ueyama authored
This reverts part of r287009 because I accidentally changed binary files. llvm-svn: 287010
-
Rui Ueyama authored
llvm-svn: 287009
-
Rui Ueyama authored
The code to handle symbol versions is getting tricky and hard to understand, so it is probably time to simplify it. This patch does the following. - Add `DemangledSyms` variable to SymbolTable so that we don't need to pass it around to findDemangled. - Define `initDemangledSyms` to initialize the variable lazily. - hasExternCpp is removed because we no longer have to initialize the map eagerly. - scanScriptVersion is split. - Comments are updated. llvm-svn: 287002
-
Rui Ueyama authored
In this file, `sym` was used for both SymbolBody and SymbolVersion although the two are completely different. llvm-svn: 286992
-
Rui Ueyama authored
We had two functions with the same name to read completely different things. That was confusing. llvm-svn: 286991
-
Eugene Leviant authored
llvm-svn: 286955
-
Eugene Leviant authored
This patch introduces the following changes: - DynamicSection now inherits InputSection<ELFT> and was moved to SyntheticSections.h/.cpp. - Link and Entsize fields of DynamicSection are propagated to its output section - In<ELFT>::SyntheticSections was removed. - Finalization of synthetic sections was removed from OutputSection<ELFT>::finalize. Now finalizeSyntheticSections is used instead. Differential revision: https://reviews.llvm.org/D26603 llvm-svn: 286950
-
George Rimar authored
This patch stops creating symbols like __ehdr_start, _end/_etext_edata,__tls_get_addr when using -r. This fixes PR30984. Differential revision: https://reviews.llvm.org/D26600 llvm-svn: 286941
-
George Rimar authored
Patch adds a filename to that error message. I faced next error when debugged one of FreeBSD port: error: relocation R_X86_64_PLT32 cannot refer to absolute symbol __tls_get_addr error message was poor and this patch improves it to show the locations of symbol declaration and using. Differential revision: https://reviews.llvm.org/D26508 llvm-svn: 286940
-
George Rimar authored
Found this when tried to link lang/ccl FreeBSD port. Issue is very close to D23201. This is the reason of lang/ccl port link fail. GNU assembler 2.17.50 [FreeBSD] 2007-07-03 could generate broken objects, where notype symbols are associated with symtab: ... [ 9] .symtab SYMTAB 0000000000000000 00003c78 0000000000006858 0000000000000018 10 803 8 ... 192: 000000000000000d 0 NOTYPE LOCAL DEFAULT 9 _cons_org Patch allows to handle such objects. Differential revision: https://reviews.llvm.org/D26613 llvm-svn: 286939
-
Vitaly Buka authored
Summary: getFile() can return nullptr. This usually happens when Rels is empty so the reference is never used. Still UBSAN complains. Reviewers: rafael Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D26662 llvm-svn: 286937
-
Rui Ueyama authored
Object files compiled with cl.exe /GL contain intermediate code for LTO. We can't (and don't want to) interpret such code, but we should print out a user-friendly error message. Differential Revision: https://reviews.llvm.org/D26647 llvm-svn: 286921
-
- Nov 14, 2016
-
-
Vitaly Buka authored
Summary: getInputSections returns std::vector by value and ArrayRef pointed to destroyed temporarily. Reviewers: ruiu Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D26630 llvm-svn: 286880
-
Rui Ueyama authored
I don't really understand what is failing on lld-x86_64-darwin13 bot, but this patch should at least reduces the number of moving parts. llvm-svn: 286876
-
Davide Italiano authored
Pointed out by Rafael! llvm-svn: 286857
-
Rafael Espindola authored
Propagate program headers by walking the commands, not the sections. This allows us to propagate program headers even from sections that don't end up in the output. Fixes pr30997. llvm-svn: 286837
-
George Rimar authored
-M, --print-map Write map file on standard output -Map MAPFILENAME Write map file --cref Output cross reference table This is relative to PR30973. Next FreeBSD ports were atm failing because of lack of -Map, -M and --cref: sysutils/openipmi emulators/adamem devel/jwasm net/pimd devel/k8048 textproc/libcrm114 lang/micropython net/mrouted print/openprinting After this patch all of them can be link fine. llvm-svn: 286831
-
Rafael Espindola authored
To fix pr30997 we will have to keep them a bit longer, this just splits that part of the diff. llvm-svn: 286827
-
Rafael Espindola authored
llvm-svn: 286826
-
Rafael Espindola authored
llvm-svn: 286824
-
George Rimar authored
llvm-svn: 286810
-
George Rimar authored
llvm-svn: 286805
-
George Rimar authored
llvm-svn: 286804
-