- Apr 06, 2017
-
-
Peter Collingbourne authored
llvm-svn: 299602
-
- Feb 11, 2017
-
-
Eugene Zelenko authored
llvm-svn: 294813
-
- Oct 18, 2016
-
-
Justin Lebar authored
Summary: Reclaiming the name 'CachedHashString' will let us add a type with that name that owns its value. Reviewers: timshen Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D25644 llvm-svn: 284434
-
- Oct 14, 2016
-
-
Rafael Espindola authored
This is an improvement when compiling with llvm. llvm doesn't inline the call to insert, so the align is always executed and shows up in the profile. With gcc the call to insert is inlined and the align computation moved and done only if needed. With this patch we explicitly only compute it if it is needed. In the two tests with debug info, the speedup was scylla master 3.008959365 patch 2.932080942 1.02621974786x faster firefox master 6.709823604 patch 6.592387227 1.01781393795x faster In all others the difference was in the noise. llvm-svn: 284249
-
- Oct 05, 2016
-
-
Rafael Espindola authored
If the caller already has the hash we don't have to compute it. This will be used in lld. llvm-svn: 283359
-
Rafael Espindola authored
llvm-svn: 283336
-
Rafael Espindola authored
This patch adds write methods to StringTableBuilder so that it is easier to change the underlying implementation. Using the write methods, avoid creating a temporary buffer when using mmaped output. It also uses a more compact key in the DenseMap. Overall this produces a slightly faster lld: firefox master 6.853419709 patch 6.841968912 1.00167361138x faster chromium master 4.297280174 patch 4.298712163 1.00033323147x slower chromium fast master 1.802335952 patch 1.806872459 1.00251701521x slower the gold plugin master 0.3247149 patch 0.321971644 1.00852017888x faster clang master 0.551279945 patch 0.543733194 1.01387951128x faster llvm-as master 0.032743458 patch 0.032143478 1.01866568391x faster the gold plugin fsds master 0.350814247 patch 0.348571741 1.00643341309x faster clang fsds master 0.6281672 patch 0.621130222 1.01132931187x faster llvm-as fsds master 0.030168899 patch 0.029797155 1.01247582194x faster scylla master 3.104222518 patch 3.059590248 1.01458766252x faster llvm-svn: 283266
-
- Oct 04, 2016
-
-
Rafael Espindola authored
llvm-svn: 283216
-
- Oct 03, 2016
-
-
Rafael Espindola authored
This reverts commit r283125. lld needs to be updated. llvm-svn: 283127
-
Rafael Espindola authored
Also assert isFinalized in getSize(). This just reduces the noise from another patch. llvm-svn: 283125
-
- May 06, 2016
-
-
Rui Ueyama authored
This change seems to speed up LLD a bit if it has a lot of mergeable sections. The number is below. It's not too bad for a small patch. Time to link Clang (debug build): w/o patch 6.3696 seconds w/patch 6.2746 seconds (-1.5%) Differential Revision: http://reviews.llvm.org/D19933 llvm-svn: 268698
-
- Feb 19, 2016
-
-
Rafael Espindola authored
This will be used in a lld patch. llvm-svn: 261326
-
- Jan 29, 2016
-
-
Reid Kleckner authored
This reverts commit r259126 and relands r259117. This time with updated library dependencies. llvm-svn: 259130
-
Reid Kleckner authored
This reverts commit r259117. The LineInfo constructor is defined in the codeview library and we have to link against it now. Doing that isn't trivial, so reverting for now. llvm-svn: 259126
-
Reid Kleckner authored
Adds a new family of .cv_* directives to LLVM's variant of GAS syntax: - .cv_file: Similar to DWARF .file directives - .cv_loc: Similar to the DWARF .loc directive, but starts with a function id. CodeView line tables are emitted by function instead of by compilation unit, so we needed an extra field to communicate this. Rather than overloading the .loc direction further, we decided it was better to have our own directive. - .cv_stringtable: Emits the codeview string table at the current position. Currently this just contains the filenames as null-terminated strings. - .cv_filechecksums: Emits the file checksum table for all files used with .cv_file so far. There is currently no support for emitting actual checksums, just filenames. This moves the line table emission code down into the assembler. This is in preparation for implementing the inlined call site line table format. The inline line table format encoding algorithm requires knowing the absolute code offsets, so it must run after the assembler has laid out the code. David Majnemer collaborated on this patch. llvm-svn: 259117
-
- Oct 27, 2015
-
-
Rui Ueyama authored
`qsort` as a file-scope local function name was confusing. llvm-svn: 251414
-
- Oct 26, 2015
-
-
Rui Ueyama authored
This is a patch to improve StringTableBuilder's performance. That class' finalize function is very hot particularly in LLD because the function does tail-merge strings in string tables or SHF_MERGE sections. Generic std::sort-style sorter is not efficient for sorting strings. The function implemented in this patch seems to be more efficient. Here's a benchmark of LLD to link Clang with or without this patch. The numbers are medians of 50 runs. -O0 real 0m0.455s real 0m0.430s (5.5% faster) -O3 real 0m0.487s real 0m0.452s (7.2% faster) Since that is a benchmark of the whole linker, the speedup of StringTableBuilder itself is much more than that. http://reviews.llvm.org/D14053 llvm-svn: 251337
-
- Oct 23, 2015
-
-
Rafael Espindola authored
In this mode it just tries to tail merge the strings without imposing any other format constrains. It will not, for example, add a null byte between them. Also add support for keeping a tentative size and offset if we decide to not optimize after all. This will be used shortly in lld for merging SHF_STRINGS sections. llvm-svn: 251153
-
Rafael Espindola authored
llvm-svn: 251143
-
- Oct 22, 2015
-
-
Rafael Espindola authored
This was only use in the extremely uncommon case of @@@ symbols on ELF. llvm-svn: 251039
-
Zachary Turner authored
llvm-svn: 251030
-
Rafael Espindola authored
llvm-svn: 251024
-
Rafael Espindola authored
llvm-svn: 251023
-
- Oct 06, 2014
-
-
Hans Wennborg authored
This is a follow-up to r207670 (ELF) and r218636 (COFF). Differential Revision: http://reviews.llvm.org/D5622 llvm-svn: 219126
-
- Sep 30, 2014
-
-
Hans Wennborg authored
This is a follow-up from r207670 which did the same for ELF. Differential Revision: http://reviews.llvm.org/D5530 llvm-svn: 218636
-
- Sep 24, 2014
-
-
Akira Hatanaka authored
llvm-svn: 218409
-
Benjamin Kramer authored
No functionality change. llvm-svn: 218380
-
- Jul 03, 2014
-
-
Rafael Espindola authored
Now that we have a lib/MC/MCAnalysis, the dependency was there just because of two helper classes. Move the two over to MC. This will allow IRObjectFile to parse inline assembly. llvm-svn: 212248
-
- Apr 30, 2014
-
-
Hans Wennborg authored
We already do this for shstrtab, so might as well do it for strtab. This extracts the string table building code into a separate class. The idea is to use it for other object formats too. I mostly wanted to do this for the general principle, but it does save a little bit on object file size. I tried this on a clang bootstrap and saved 0.54% on the sum of object file sizes (1.14 MB out of 212 MB for a release build). Differential Revision: http://reviews.llvm.org/D3533 llvm-svn: 207670
-