llvm-project/llvm/test
wlei a94fa86229 [CSSPGO][llvm-profgen] Parse mmap events from perf script
This stack of changes introduces `llvm-profgen` utility which generates a profile data file from given perf script data files for sample-based PGO. It’s part of(not only) the CSSPGO work. Specifically to support context-sensitive with/without pseudo probe profile, it implements a series of functionalities including perf trace parsing, instruction symbolization, LBR stack/call frame stack unwinding, pseudo probe decoding, etc. Also high throughput is achieved by multiple levels of sample aggregation and compatible format with one stop is generated at the end. Please refer to: https://groups.google.com/g/llvm-dev/c/1p1rdYbL93s for the CSSPGO RFC.

As a starter, this change sets up an entry point by introducing PerfReader to load profiled binaries and perf traces(including perf events and perf samples). For the event, here it parses the mmap2 events from perf script to build the loader snaps, which is used to retrieve the image load address in the subsequent perf tracing parsing.

As described in llvm-profgen.rst, the tool being built aims to support multiple input perf data (preprocessed by perf script) as well as multiple input binary images. It should also support dynamic reload/unload shared objects by leveraging the loader snaps being built by this change

Reviewed By: wenlei, wmi

Differential Revision: https://reviews.llvm.org/D89707
2020-11-20 14:26:26 -08:00
..
Analysis OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
Assembler OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
Bindings C API: support scalable vectors 2020-10-28 18:19:34 -04:00
Bitcode OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
BugPoint
CodeGen [AArch64][GlobalISel] Make G_EXTRACT_VECTOR_ELT of <2 x p0> legal. 2020-11-20 14:07:45 -08:00
DebugInfo OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
Demangle
Examples
ExecutionEngine [JITLink][ELF] Omit temporary labels in tests 2020-11-04 10:03:15 +00:00
Feature [NPM] Remove -enable-npm-optnone flag 2020-11-18 15:49:16 -08:00
FileCheck [FileCheck] Use %ProtectFileCheckOutput in allow-unused-prefixes.txt 2020-11-05 07:08:20 -08:00
Instrumentation OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
Integer
JitListener [MCJIT] Profile the code generated by MCJIT engine using Intel VTune profiler 2020-11-16 19:28:14 +11:00
LTO
Linker OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
MC [PowerPC] Allow a '%' prefix for registers in CFI directives 2020-11-19 18:19:51 -08:00
MachineVerifier
Object [lib/Object] - Generalize the RelocationResolver API. 2020-11-20 10:32:49 +03:00
ObjectYAML Reland "[lib/Support/YAMLTraits] - Don't print leading zeroes when dumping Hex8/Hex16/Hex32 types." (https://reviews.llvm.org/D90930). 2020-11-18 13:08:46 +03:00
Other Port -lower-matrix-intrinsics-minimal to NPM 2020-11-19 17:42:48 -08:00
Reduce [llvm-reduce] Add reduction for special globals like llvm.used. 2020-11-11 11:25:05 +00:00
SafepointIRVerifier
Support
SymbolRewriter
TableGen [TableGen] Enhance the six comparison bang operators. 2020-11-13 09:57:27 -05:00
ThinLTO/X86 [test] Fix unused FileCheck prefix in ThinLTO test 2020-11-02 09:06:36 -08:00
Transforms OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
Unit
Verifier OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
YAMLParser
tools [CSSPGO][llvm-profgen] Parse mmap events from perf script 2020-11-20 14:26:26 -08:00
.clang-format
CMakeLists.txt
TestRunner.sh
lit.cfg.py Make test/tools/llvm-dlltool/tool-name.test pass, and make it run 2020-11-03 11:59:15 -05:00
lit.site.cfg.py.in