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 |
|
#
3edf82d5 |
| 13-Jan-2024 |
Min-Yih Hsu <min.hsu@sifive.com> |
[XRay] Reserve memory space ahead-of-time when reading native format log (#76853)
XRay used to struggle reading large log files. It turned out the
bottleneck was primarily caused by the reallocatio
[XRay] Reserve memory space ahead-of-time when reading native format log (#76853)
XRay used to struggle reading large log files. It turned out the
bottleneck was primarily caused by the reallocation happens when
appending log entries into a std::vector.
This patch reserves the memory space ahead-of-time since the number of
entries is known for most cases. Making llvm-xray runs 1.8 times faster
and uses 1.4 times less physical memory when reading large (~2.6GB) log
files.
show more ...
|
Revision tags: llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, 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, 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, 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 |
|
#
180e9f60 |
| 11-Sep-2022 |
Kazu Hirata <kazu@google.com> |
[XRay] Remove XRayRecordStorage
AFAICT, this type hasn't used for 4 years at least.
|
Revision tags: 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, 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, llvmorg-14.0.0-rc1, 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, 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, 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, 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, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1 |
|
#
3dbbbcc8 |
| 17-May-2020 |
Fangrui Song <maskray@google.com> |
[llvm-xray] consumeError when trying big-endian
Follow-up of rL341226.
Fixes "Expected<T> must be checked before access or destruction"
|
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 |
|
#
c55cf4af |
| 10-Feb-2020 |
Bill Wendling <isanbard@gmail.com> |
Revert "Remove redundant "std::move"s in return statements"
The build failed with
error: call to deleted constructor of 'llvm::Error'
errors.
This reverts commit 1c2241a7936bf85aa68aef94bd40c3b
Revert "Remove redundant "std::move"s in return statements"
The build failed with
error: call to deleted constructor of 'llvm::Error'
errors.
This reverts commit 1c2241a7936bf85aa68aef94bd40c3ba77d8ddf2.
show more ...
|
#
1c2241a7 |
| 10-Feb-2020 |
Bill Wendling <isanbard@gmail.com> |
Remove redundant "std::move"s in return statements
|
Revision tags: 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, llvmorg-9.0.0-rc2 |
|
#
f26a70a5 |
| 06-Aug-2019 |
Igor Kudrin <ikudrin@accesssoftek.com> |
Switch LLVM to use 64-bit offsets (2/5)
This updates all libraries and tools in LLVM Core to use 64-bit offsets which directly or indirectly come to DataExtractor.
Differential Revision: https://re
Switch LLVM to use 64-bit offsets (2/5)
This updates all libraries and tools in LLVM Core to use 64-bit offsets which directly or indirectly come to DataExtractor.
Differential Revision: https://reviews.llvm.org/D65638
llvm-svn: 368014
show more ...
|
Revision tags: llvmorg-9.0.0-rc1, llvmorg-10-init |
|
#
f002fcb2 |
| 11-Jul-2019 |
Reid Kleckner <rnk@google.com> |
Open native file handles to avoid converting from FDs, NFC
Follow up to r365588.
llvm-svn: 365820
|
#
cc418a3a |
| 10-Jul-2019 |
Reid Kleckner <rnk@google.com> |
[Support] Move llvm::MemoryBuffer to sys::fs::file_t
Summary: On Windows, Posix integer file descriptors are a compatibility layer over native file handles provided by the C runtime. There is a hard
[Support] Move llvm::MemoryBuffer to sys::fs::file_t
Summary: On Windows, Posix integer file descriptors are a compatibility layer over native file handles provided by the C runtime. There is a hard limit on the maximum number of file descriptors that a process can open, and the limit is 8192. LLD typically doesn't run into this limit because it opens input files, maps them into memory, and then immediately closes the file descriptor. This prevents it from running out of FDs.
For various reasons, I'd like to open handles to every input file and keep them open during linking. That requires migrating MemoryBuffer over to taking open native file handles instead of integer FDs.
Reviewers: aganea, Bigcheese
Reviewed By: aganea
Subscribers: smeenai, silvas, mehdi_amini, hiraditya, steven_wu, dexonsmith, dang, llvm-commits, zturner
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D63453
llvm-svn: 365588
show more ...
|
Revision tags: llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3, 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
|
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 |
|
#
59439dd0 |
| 07-Nov-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay] Use TSC delta encoding for custom/typed events
Summary: This change updates the version number for FDR logs to 5, and update the trace processing to support changes in the custom event record
[XRay] Use TSC delta encoding for custom/typed events
Summary: This change updates the version number for FDR logs to 5, and update the trace processing to support changes in the custom event records.
In the runtime, since we're already writing down the record preamble to handle CPU migrations and TSC wraparound, we can use the same TSC delta encoding in the custom event and typed event records that we use in function event records. We do the same change to typed events (which were unsupported before this change in the trace processing) which now show up in the trace.
Future changes should increase our testing coverage to make custom and typed events as first class entities in the FDR mode log processing tools.
This change is also a good example of how we end up supporting new record types in the FDR mode implementation. This shows the places where new record types are added and supported.
Depends on D54139.
Reviewers: mboerger
Subscribers: hiraditya, arphaman, jfb, llvm-commits
Differential Revision: https://reviews.llvm.org/D54140
llvm-svn: 346293
show more ...
|
#
25f8d204 |
| 06-Nov-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay] Update XRayRecord to support Custom/Typed Events
Summary: This change cuts across LLVM and compiler-rt to add support for rendering custom events in the XRayRecord type, to allow for includin
[XRay] Update XRayRecord to support Custom/Typed Events
Summary: This change cuts across LLVM and compiler-rt to add support for rendering custom events in the XRayRecord type, to allow for including user-provided annotations in the output YAML (as raw bytes).
This work enables us to add custom event and typed event records into the `llvm::xray::Trace` type for user-provided events. This can then be programmatically handled through the C++ API and can be included in some of the tooling as well. For now we support printing the raw data we encounter in the custom events in the converted output.
Future work will allow us to start interpreting these custom and typed events through a yet-to-be-defined API for extending the trace analysis library.
Reviewers: mboerger
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D54139
llvm-svn: 346214
show more ...
|
Revision tags: llvmorg-7.0.1-rc2, llvmorg-7.0.1-rc1 |
|
#
6b67ff03 |
| 01-Nov-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay] Add CPU ID in Custom Event FDR Records
Summary: This change cuts across compiler-rt and llvm, to increment the FDR log version number to 4, and include the CPU ID in the custom event records.
[XRay] Add CPU ID in Custom Event FDR Records
Summary: This change cuts across compiler-rt and llvm, to increment the FDR log version number to 4, and include the CPU ID in the custom event records.
This is a step towards allowing us to change the `llvm::xray::Trace` object to start representing both custom and typed events in the stream of records. Follow-on changes will allow us to change the kinds of records we're presenting in the stream of traces, to incorporate the data in custom/typed events.
A follow-on change will handle the typed event case, where it may not fit within the 15-byte buffer for metadata records.
This work is part of the larger effort to enable writing analysis and processing tools using a common in-memory representation of the events found in traces. The work will focus on porting existing tools in LLVM to use the common representation and informing the design of a library/framework for expressing trace event analysis as C++ programs.
Reviewers: mboerger, eizan
Subscribers: hiraditya, mgrang, llvm-commits
Differential Revision: https://reviews.llvm.org/D53920
llvm-svn: 345798
show more ...
|
#
3507c6e8 |
| 30-Sep-2018 |
Fangrui Song <maskray@google.com> |
Use the container form llvm::sort(C, ...)
There are a few leftovers in rL343163 which span two lines. This commit changes these llvm::sort(C.begin(), C.end, ...) to llvm::sort(C, ...)
llvm-svn: 343
Use the container form llvm::sort(C, ...)
There are a few leftovers in rL343163 which span two lines. This commit changes these llvm::sort(C.begin(), C.end, ...) to llvm::sort(C, ...)
llvm-svn: 343426
show more ...
|
Revision tags: llvmorg-7.0.0 |
|
#
90a46bde |
| 13-Sep-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay] Bug fixes for FDR custom event and arg-logging
Summary: This change has a number of fixes for FDR mode in compiler-rt along with changes to the tooling handling the traces in llvm.
In the ru
[XRay] Bug fixes for FDR custom event and arg-logging
Summary: This change has a number of fixes for FDR mode in compiler-rt along with changes to the tooling handling the traces in llvm.
In the runtime, we do the following:
- Advance the "last record" pointer appropriately when writing the custom event data in the log.
- Add XRAY_NEVER_INSTRUMENT in the rewinding routine.
- When collecting the argument of functions appropriately marked, we should not attempt to rewind them (and reset the counts of functions that can be re-wound).
In the tooling, we do the following:
- Remove the state logic in BlockIndexer and instead rely on the presence/absence of records to indicate blocks.
- Move the verifier into a loop associated with each block.
Reviewers: mboerger, eizan
Subscribers: llvm-commits, hiraditya
Differential Revision: https://reviews.llvm.org/D51965
llvm-svn: 342122
show more ...
|
#
174d2cf7 |
| 11-Sep-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay] Ensure lambda outlives llvm::function_ref
Follow-up to D51912.
llvm-svn: 341912
|
#
985c2b92 |
| 11-Sep-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay] Use FDR Records+Visitors for Trace Loading
Summary: In this change, we overhaul the implementation for loading `llvm::xray::Trace` objects from files by using the combination of specific FDR
[XRay] Use FDR Records+Visitors for Trace Loading
Summary: In this change, we overhaul the implementation for loading `llvm::xray::Trace` objects from files by using the combination of specific FDR Record types and visitors breaking up the logic to reconstitute an execution trace from flight-data recorder mode traces.
This change allows us to handle out-of-temporal order blocks as written in files, and more consistently recreate an execution trace spanning multiple blocks and threads. To do this, we use the `WallclockRecord` associated with each block to maintain temporal order of blocks, before attempting to recreate an execution trace.
The new addition in this change is the `TraceExpander` type which can be thought of as a decompression/decoding routine. This allows us to maintain the state of an execution environment (thread+process) and create `XRayRecord` instances that fit nicely into the `Trace` container. We don't have a specific unit test for the TraceExpander type, since the end-to-end tests for the `llvm-xray convert` tools already cover precisely this codepath.
This change completes the refactoring started with D50441.
Depends on D51911.
Reviewers: mboerger, eizan
Subscribers: mgorny, hiraditya, mgrang, llvm-commits
Differential Revision: https://reviews.llvm.org/D51912
llvm-svn: 341906
show more ...
|
Revision tags: llvmorg-7.0.0-rc3 |
|
#
4cae0487 |
| 31-Aug-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay] Use correct type for PID records
Previously we've been reading and writing the wrong types which only worked in little endian implementations. This time we're writing the same typed values th
[XRay] Use correct type for PID records
Previously we've been reading and writing the wrong types which only worked in little endian implementations. This time we're writing the same typed values the runtime is using, and reading them appropriately as well.
llvm-svn: 341241
show more ...
|
#
250c56d1 |
| 31-Aug-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay] Use correct type for thread ID parsing
Previously we were reading only a uint16_t when we really needed to read an int32_t from the log.
llvm-svn: 341239
|
#
3fc4cbfe |
| 31-Aug-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay] Change function record reader to be endian-aware
This change allows us to let the compiler do the right thing for when handling big-endian and little-endian records for FDR mode function reco
[XRay] Change function record reader to be endian-aware
This change allows us to let the compiler do the right thing for when handling big-endian and little-endian records for FDR mode function records.
Previously, we assumed that the encoding was little-endian that reading the first byte to look for the function id and function record types was ordered in a little-endian manner. This change allows us to better handle function records where the first four bytes may actually be encoded in big-endian thus giving us the wrong bytes where we're seeking the function information from.
This is a follow-up to D51210 and D51289.
llvm-svn: 341236
show more ...
|
#
5b7548c6 |
| 31-Aug-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay] Make Trace loading endian-aware
This change makes the XRay Trace loading functions first use a little-endian data extractor, then on failures try a big-endian data extractor. Without this cha
[XRay] Make Trace loading endian-aware
This change makes the XRay Trace loading functions first use a little-endian data extractor, then on failures try a big-endian data extractor. Without this change, the trace loading facility will not work with data written from a big-endian machine.
Follow-up to D51210 and D51289.
llvm-svn: 341226
show more ...
|
#
f81b0800 |
| 24-Aug-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay] Refactor loadTraceFile(...) into two (NFC)
This patch splits the file trace loading function into two versions, one that takes a filename and one that takes a `DataExtractor`.
This change is
[XRay] Refactor loadTraceFile(...) into two (NFC)
This patch splits the file trace loading function into two versions, one that takes a filename and one that takes a `DataExtractor`.
This change is a precursor to larger changes to increase test coverage for the trace loading implementation.
llvm-svn: 340603
show more ...
|
Revision tags: llvmorg-7.0.0-rc2 |
|
#
d764c1b6 |
| 22-Aug-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay] Refactor file header reading (NFC)
Summary: This patch moves out the definition of the XRay log file header from binary logs into its own header and implementation file.
This is one part of
[XRay] Refactor file header reading (NFC)
Summary: This patch moves out the definition of the XRay log file header from binary logs into its own header and implementation file.
This is one part of the refactoring being done in D50441.
Reviewers: eizan
Subscribers: mgorny, hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D51086
llvm-svn: 340389
show more ...
|
#
a9d477a6 |
| 07-Aug-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay] Improve error reporting when loading traces
Summary: This change uses a single offset pointer used throughout the implementation of the individual record parsers. This allows us to report whe
[XRay] Improve error reporting when loading traces
Summary: This change uses a single offset pointer used throughout the implementation of the individual record parsers. This allows us to report where in a trace file parsing failed.
We're still in an intermediate step here as we prepare to refactor this further into a set of types and use object-oriented design principles for a cleaner implementation. The next steps will be to allow us to parse/dump files in a streaming fashion and incrementally build up the structures in memory instead of the current all-or-nothing approach.
Reviewers: kpw, eizan
Reviewed By: kpw
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D50169
llvm-svn: 339092
show more ...
|
Revision tags: llvmorg-7.0.0-rc1 |
|
#
10141261 |
| 13-Jul-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay][compiler-rt] Add PID field to llvm-xray tool and add PID metadata record entry in FDR mode
Summary: llvm-xray changes: - account-mode - process-id {...} shows after thread-id - convert-mode
[XRay][compiler-rt] Add PID field to llvm-xray tool and add PID metadata record entry in FDR mode
Summary: llvm-xray changes: - account-mode - process-id {...} shows after thread-id - convert-mode - process {...} shows after thread - parses FDR and basic mode pid entries - Checks version number for FDR log parsing.
Basic logging changes: - Update header version from 2 -> 3
FDR logging changes: - Update header version from 2 -> 3 - in writeBufferPreamble, there is an additional PID Metadata record (after thread id record and tsc record)
Test cases changes: - fdr-mode.cc, fdr-single-thread.cc, fdr-thread-order.cc modified to catch process id output in the log.
Reviewers: dberris
Reviewed By: dberris
Subscribers: hiraditya, llvm-commits, #sanitizers
Differential Revision: https://reviews.llvm.org/D49153
llvm-svn: 336974
show more ...
|