Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3 |
|
#
b05dbc4d |
| 11-Oct-2023 |
Kazu Hirata <kazu@google.com> |
[llvm] Use llvm::endianness::{big,little,native} (NFC)
Now that llvm::support::endianness has been renamed to llvm::endianness, we can use the shorter form. This patch replaces support::endianness:
[llvm] Use llvm::endianness::{big,little,native} (NFC)
Now that llvm::support::endianness has been renamed to llvm::endianness, we can use the shorter form. This patch replaces support::endianness::{big,little,native} with llvm::endianness::{big,little,native}.
show more ...
|
#
356139bd |
| 06-Oct-2023 |
Alexandre Ganea <37383324+aganea@users.noreply.github.com> |
[LLD][COFF] Add support for `--time-trace` (#68236)
This adds support for generating Chrome-tracing .json profile traces in
the LLD COFF driver.
Also add the necessary time scopes, so that the p
[LLD][COFF] Add support for `--time-trace` (#68236)
This adds support for generating Chrome-tracing .json profile traces in
the LLD COFF driver.
Also add the necessary time scopes, so that the profile trace shows in
great detail which tasks are executed.
As an example, this is what we see when linking a Unreal Engine
executable:

show more ...
|
Revision tags: llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init |
|
#
52eab343 |
| 19-Jul-2023 |
Fangrui Song <i@maskray.me> |
PDBFileBuilder: Switch to xxh3_64bits
Following recent changes switching from xxh64 to xxh32 for better hashing performance (e.g., D154813). I am not familiar with this use case, but this change wil
PDBFileBuilder: Switch to xxh3_64bits
Following recent changes switching from xxh64 to xxh32 for better hashing performance (e.g., D154813). I am not familiar with this use case, but this change will ensure that the lld executable doesn't need xxHash64 after wasm-ld migrates.
show more ...
|
Revision tags: llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7 |
|
#
38818b60 |
| 04-Jan-2023 |
serge-sans-paille <sguelton@mozilla.com> |
Move from llvm::makeArrayRef to ArrayRef deduction guides - llvm/ part
Use deduction guides instead of helper functions.
The only non-automatic changes have been:
1. ArrayRef(some_uint8_pointer, 0
Move from llvm::makeArrayRef to ArrayRef deduction guides - llvm/ part
Use deduction guides instead of helper functions.
The only non-automatic changes have been:
1. ArrayRef(some_uint8_pointer, 0) needs to be changed into ArrayRef(some_uint8_pointer, (size_t)0) to avoid an ambiguous call with ArrayRef((uint8_t*), (uint8_t*)) 2. CVSymbol sym(makeArrayRef(symStorage)); needed to be rewritten as CVSymbol sym{ArrayRef(symStorage)}; otherwise the compiler is confused and thinks we have a (bad) function prototype. There was a few similar situation across the codebase. 3. ADL doesn't seem to work the same for deduction-guides and functions, so at some point the llvm namespace must be explicitly stated. 4. The "reference mode" of makeArrayRef(ArrayRef<T> &) that acts as no-op is not supported (a constructor cannot achieve that).
Per reviewers' comment, some useless makeArrayRef have been removed in the process.
This is a follow-up to https://reviews.llvm.org/D140896 that introduced the deduction guides.
Differential Revision: https://reviews.llvm.org/D140955
show more ...
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6 |
|
#
7effcbda |
| 19-Jun-2022 |
Nico Weber <thakis@chromium.org> |
Rename parallelForEachN to just parallelFor
Patch created by running:
rg -l parallelForEachN | xargs sed -i '' -c 's/parallelForEachN/parallelFor/'
No behavior change.
Differential Revision: ht
Rename parallelForEachN to just parallelFor
Patch created by running:
rg -l parallelForEachN | xargs sed -i '' -c 's/parallelForEachN/parallelFor/'
No behavior change.
Differential Revision: https://reviews.llvm.org/D128140
show more ...
|
Revision tags: llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2 |
|
#
eb4c8608 |
| 19-Feb-2022 |
serge-sans-paille <sguelton@redhat.com> |
Cleanup llvm/DebugInfo/PDB headers
accumulated preprocessed size: before: 1065515095 after: 1065629059
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup Differenti
Cleanup llvm/DebugInfo/PDB headers
accumulated preprocessed size: before: 1065515095 after: 1065629059
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup Differential Revision: https://reviews.llvm.org/D120195
show more ...
|
Revision tags: llvmorg-14.0.0-rc1 |
|
#
3a3cb929 |
| 07-Feb-2022 |
Kazu Hirata <kazu@google.com> |
[llvm] Use = default (NFC)
|
Revision tags: llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3 |
|
#
42f74e82 |
| 23-Jun-2021 |
Martin Storsjö <martin@martin.st> |
[llvm] Rename StringRef _lower() method calls to _insensitive()
This is a mechanical change. This actually also renames the similarly named methods in the SmallString class, however these methods do
[llvm] Rename StringRef _lower() method calls to _insensitive()
This is a mechanical change. This actually also renames the similarly named methods in the SmallString class, however these methods don't seem to be used outside of the llvm subproject, so this doesn't break building of the rest of the monorepo.
show more ...
|
Revision tags: llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3 |
|
#
301551ae |
| 26-Feb-2021 |
Nico Weber <thakis@chromium.org> |
[PDB] Fix unsigned integer overflow
When building with -fsanitize=unsigned-integer-overflow, this code causes a diagnostic like:
../../llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp:159:15:
[PDB] Fix unsigned integer overflow
When building with -fsanitize=unsigned-integer-overflow, this code causes a diagnostic like:
../../llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp:159:15: runtime error: unsigned integer overflow: 90 - 229 cannot be represented in type 'unsigned long'
unsigned integer overflow is well defined and it isn't an issue in practice, but in obscure scenarios (S1.size() small, S2.size over 2GB on 32-bit systems) it could even be a bug.
So use the usual idiom for implementing cmp functions instead of the gernally considered buggy idiom :) See e.g. https://www.gnu.org/software/libc/manual/html_node/Comparison-Functions.html or https://stackoverflow.com/questions/10996418/efficient-integer-compare-function/10997428#10997428
Differential Revision: https://reviews.llvm.org/D97557
show more ...
|
Revision tags: llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2 |
|
#
cf16437e |
| 13-Dec-2020 |
Nico Weber <thakis@chromium.org> |
fix typos to cycle bots
|
Revision tags: llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init |
|
#
23cd70d7 |
| 10-Jul-2020 |
Alexandre Ganea <alexandre.ganea@ubisoft.com> |
[PDB] Fix out-of-bounds acces when sorting GSI buckets
When building in Debug on Windows-MSVC after b7402edce315, a lot of tests were failing because we were dereferencing an element past the end of
[PDB] Fix out-of-bounds acces when sorting GSI buckets
When building in Debug on Windows-MSVC after b7402edce315, a lot of tests were failing because we were dereferencing an element past the end of HashRecords. This happened towards the end of the table, in unused slots.
show more ...
|
Revision tags: llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2 |
|
#
b7402edc |
| 05-Jun-2020 |
Reid Kleckner <rnk@google.com> |
[PDB] Defer public serialization until PDB writing
This reduces peak memory on my test case from 1960.14MB to 1700.63MB (-260MB, -13.2%) with no measurable impact on CPU time. I'm currently working
[PDB] Defer public serialization until PDB writing
This reduces peak memory on my test case from 1960.14MB to 1700.63MB (-260MB, -13.2%) with no measurable impact on CPU time. I'm currently working with a publics stream that is about 277MB. Before this change, we would allocate 277MB of heap memory, serialize publics into them, hold onto that heap memory, open the PDB, and commit into it. After this change, we defer the serialization until commit time.
In the last change I made to public writing, I re-sorted the list of publics multiple times in place to avoid allocating new temporary data structures. Deferring serialization until later requires that we don't reorder the publics. Instead of sorting the publics, I partially construct the hash table data structures, store a publics index in them, and then sort the hash table data structures. Later, I replace the index with the symbol record offset.
This change also addresses a FIXME and moves the list of global and public records from GSIHashStreamBuilder to GSIStreamBuilder. Now that publics aren't being serialized, it makes even less sense to store them as a list of CVSymbol records. The hash table used to deduplicate globals is moved as well, since that is specific to globals, and not publics.
Reviewed By: aganea, hans
Differential Revision: https://reviews.llvm.org/D81296
show more ...
|
Revision tags: llvmorg-10.0.1-rc1 |
|
#
40927427 |
| 13-May-2020 |
Reid Kleckner <rnk@google.com> |
[PDB] Switch from LLVM_PACKED to LLVM_PACKED_START/END
Reportedly using the pragma instead of the __attribute__ silences warnings with some GCC versions.
|
#
3b3e28a0 |
| 03-May-2020 |
Reid Kleckner <rnk@google.com> |
[PDB] Optimize public symbol processing
Reduces time to link PGO instrumented net_unittets.exe by 11% (9.766s -> 8.672s, best of three). Reduces peak memory by 65.7MB (2142.71MB -> 2076.95MB).
Use
[PDB] Optimize public symbol processing
Reduces time to link PGO instrumented net_unittets.exe by 11% (9.766s -> 8.672s, best of three). Reduces peak memory by 65.7MB (2142.71MB -> 2076.95MB).
Use a more compact struct, BulkPublic, for faster sorting. Sort in parallel. Construct the hash buckets in parallel. Try to use one vector to hold all the publics instead of copying them from one to another. Allocate all the memory needed to serialize publics up front, and then serialize them in place in parallel.
Reviewed By: aganea, hans
Differential Revision: https://reviews.llvm.org/D79467
show more ...
|
#
b7438c25 |
| 05-May-2020 |
Reid Kleckner <rnk@google.com> |
[PDB] Move stream index tracking to GSIStreamBuilder
The GSIHashStreamBuilder doesn't need to know the stream index. Standardize the naming (Idx -> Index in public APIs).
|
#
5070cecd |
| 03-May-2020 |
Reid Kleckner <rnk@google.com> |
[PDB] Bypass generic deserialization code for publics sorting
The number of public symbols is very large, and each deserialization does a few heap allocations. The public symbols are serialized by t
[PDB] Bypass generic deserialization code for publics sorting
The number of public symbols is very large, and each deserialization does a few heap allocations. The public symbols are serialized by the linker, so we can assume they have the expected layout and use it directly.
Saves O(#publics) temporary heap allocations and shrinks some data structures.
show more ...
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1, llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3 |
|
#
0eaee545 |
| 15-Aug-2019 |
Jonas Devlieghere <jonas@devlieghere.com> |
[llvm] Migrate llvm::make_unique to std::make_unique
Now that we've moved to C++14, we no longer need the llvm::make_unique implementation from STLExtras.h. This patch is a mechanical replacement of
[llvm] Migrate llvm::make_unique to std::make_unique
Now that we've moved to C++14, we no longer need the llvm::make_unique implementation from STLExtras.h. This patch is a mechanical replacement of (hopefully) all the llvm::make_unique instances across the monorepo.
llvm-svn: 369013
show more ...
|
Revision tags: llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1, llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3 |
|
#
9970817c |
| 11-Jun-2019 |
Amy Huang <akhuang@google.com> |
Deduplicate S_CONSTANTs in LLD.
Summary: Deduplicate S_CONSTANTS when linking, if they have the same value.
Reviewers: rnk
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision:
Deduplicate S_CONSTANTs in LLD.
Summary: Deduplicate S_CONSTANTS when linking, if they have the same value.
Reviewers: rnk
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D63151
llvm-svn: 363089
show more ...
|
Revision tags: llvmorg-8.0.1-rc2, llvmorg-8.0.1-rc1 |
|
#
efd94c56 |
| 23-Apr-2019 |
Fangrui Song <maskray@google.com> |
Use llvm::stable_sort
While touching the code, simplify if feasible.
llvm-svn: 358996
|
#
e10d0041 |
| 04-Apr-2019 |
Reid Kleckner <rnk@google.com> |
[codeview] Remove Type member from CVRecord
Summary: Now CVType and CVSymbol are effectively type-safe wrappers around ArrayRef<uint8_t>. Make the kind() accessor load it from the RecordPrefix, whic
[codeview] Remove Type member from CVRecord
Summary: Now CVType and CVSymbol are effectively type-safe wrappers around ArrayRef<uint8_t>. Make the kind() accessor load it from the RecordPrefix, which is the same for types and symbols.
Reviewers: zturner, aganea
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D60018
llvm-svn: 357658
show more ...
|
Revision tags: llvmorg-8.0.0, llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4, llvmorg-8.0.0-rc3, llvmorg-7.1.0, llvmorg-7.1.0-rc1, llvmorg-8.0.0-rc2, llvmorg-8.0.0-rc1 |
|
#
2946cd70 |
| 19-Jan-2019 |
Chandler Carruth <chandlerc@gmail.com> |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the ne
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach.
Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository.
llvm-svn: 351636
show more ...
|
Revision tags: llvmorg-7.0.1, llvmorg-7.0.1-rc3 |
|
#
7c6b19f4 |
| 04-Dec-2018 |
Zachary Turner <zturner@google.com> |
[PDB] Emit S_UDT records in LLD.
Previously these were dropped. We now understand them sufficiently well to start emitting them. From the debugger's perspective, this now enables us to have debug
[PDB] Emit S_UDT records in LLD.
Previously these were dropped. We now understand them sufficiently well to start emitting them. From the debugger's perspective, this now enables us to have debug info about typedefs (both global and function-locally scoped)
Differential Revision: https://reviews.llvm.org/D55228
llvm-svn: 348306
show more ...
|
Revision tags: llvmorg-7.0.1-rc2, llvmorg-7.0.1-rc1 |
|
#
0cac726a |
| 27-Sep-2018 |
Fangrui Song <maskray@google.com> |
llvm::sort(C.begin(), C.end(), ...) -> llvm::sort(C, ...)
Summary: The convenience wrapper in STLExtras is available since rL342102.
Reviewers: dblaikie, javed.absar, JDevlieghere, andreadb
Subscr
llvm::sort(C.begin(), C.end(), ...) -> llvm::sort(C, ...)
Summary: The convenience wrapper in STLExtras is available since rL342102.
Reviewers: dblaikie, javed.absar, JDevlieghere, andreadb
Subscribers: MatzeB, sanjoy, arsenm, dschuff, mehdi_amini, sdardis, nemanjai, jvesely, nhaehnle, sbc100, jgravelle-google, eraman, aheejin, kbarton, JDevlieghere, javed.absar, gbedwell, jrtc27, mgrang, atanasyan, steven_wu, george.burgess.iv, dexonsmith, kristina, jsji, llvm-commits
Differential Revision: https://reviews.llvm.org/D52573
llvm-svn: 343163
show more ...
|
Revision tags: llvmorg-7.0.0 |
|
#
e2745b5d |
| 11-Sep-2018 |
Nico Weber <nicolasweber@gmx.de> |
pdb output: Initialize padding in PublicsStreamHeader.
Makes the produced pdbs more deterministic; before they'd contain 2 arbitary bytes where this padding was.
Also reorder initialization to matc
pdb output: Initialize padding in PublicsStreamHeader.
Makes the produced pdbs more deterministic; before they'd contain 2 arbitary bytes where this padding was.
Also reorder initialization to match the order of the fields in the struct (nfc)
llvm-svn: 341945
show more ...
|
Revision tags: llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2, llvmorg-7.0.0-rc1 |
|
#
20239b18 |
| 16-Jul-2018 |
Mandeep Singh Grang <mgrang@codeaurora.org> |
[llvm] Change 2 instances of std::sort to llvm::sort
llvm-svn: 337192
|