Amir Ayupov
c00c62c113
[BOLT] Add pseudo probe inline tree to YAML profile
...
Add probe inline tree information to YAML profile, at function level:
- function GUID,
- checksum,
- parent node id,
- call site in the parent.
This information is used for pseudo probe block matching (#99891 ).
The encoding adds/changes probe information in multiple levels of
YAML profile:
- BinaryProfile: add pseudo_probe_desc with GUIDs and Hashes, which
permits deduplication of data:
- many GUIDs are duplicate as the same callee is commonly inlined
into multiple callers,
- hashes are also very repetitive, especially for functions with
low block counts.
- FunctionProfile: add inline tree (see above). Top-level function
is included as root of function inline tree, which makes guid and
pseudo_probe_desc_hash fields redundant.
- BlockProfile: densely-encoded block probe information:
- probes reference their containing inline tree node,
- separate lists for block, call, indirect call probes,
- block probe encoding is specialized: ids are encoded as bitset
in uint64_t. If only block probe with id=1 is present, it's
encoded as implicit entry (id=0, omitted).
- inline tree nodes with identical probes share probe description
where node indices are combined into a list.
On top of #107970 , profile with new probe encoding has the following
characteristics (profile for a large binary):
- Profile without probe information: 33MB, 3.8MB compressed (baseline).
- Profile with inline tree information: 92MB, 14MB compressed.
Profile processing time (YAML parsing, inference, attaching steps):
- profile without pseudo probes: 5s,
- profile with pseudo probes, without pseudo probe matching: 11s,
- with pseudo probe matching: 12.5s.
Test Plan: updated pseudoprobe-decoding-inline.test
Reviewers: wlei-llvm, ayermolo, rafaelauler, dcci, maksfb
Reviewed By: wlei-llvm, rafaelauler
Pull Request: https://github.com/llvm/llvm-project/pull/107137
2024-09-12 20:51:35 -07:00
..
2024-08-07 16:25:46 +04:00
2023-05-02 16:22:49 +02:00
2024-05-31 15:14:37 -07:00
2024-07-16 22:14:43 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-06-17 16:45:34 -07:00
2024-08-07 16:25:46 +04:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2023-11-27 10:53:18 -08:00
2024-07-30 16:58:01 -07:00
2024-07-30 16:58:01 -07:00
2024-05-31 15:14:37 -07:00
2023-06-12 10:46:51 -07:00
2023-11-27 10:53:18 -08:00
2022-10-07 11:19:51 -07:00
2024-05-31 15:14:37 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2023-11-28 22:40:53 -08:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-08-08 16:41:51 -07:00
2024-07-10 11:35:40 -07:00
2024-05-31 15:14:37 -07:00
2024-07-10 11:35:40 -07:00
2024-07-10 11:35:40 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-03-22 13:41:27 -07:00
2024-01-25 15:00:52 -08:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-08-08 16:41:51 -07:00
2024-07-31 11:35:38 -07:00
2024-08-08 16:41:51 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-25 07:48:57 -07:00
2024-03-22 13:48:49 -07:00
2024-03-18 15:28:01 -07:00
2024-05-25 07:48:57 -07:00
2024-03-18 15:28:01 -07:00
2024-06-05 09:57:11 -07:00
2024-05-25 07:48:57 -07:00
2024-03-18 15:28:01 -07:00
2023-11-28 22:40:53 -08:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-03-15 13:52:45 -07:00
2024-03-15 13:52:45 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-08-08 16:41:51 -07:00
2024-05-31 15:16:21 -07:00
2024-07-26 18:58:25 -07:00
2024-03-15 13:52:45 -07:00
2024-08-08 16:41:51 -07:00
2024-03-15 13:52:45 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-05-31 15:14:37 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-03-15 13:52:45 -07:00
2024-05-31 15:14:37 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-02-14 15:43:39 -08:00
2024-05-31 15:14:37 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-03-22 13:41:27 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-02-14 11:23:57 -08:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-03-18 15:28:01 -07:00
2024-08-08 16:41:51 -07:00
2024-01-25 15:00:52 -08:00
2024-05-31 15:14:37 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-08-08 16:41:51 -07:00
2024-05-31 15:14:37 -07:00
2024-03-15 13:52:45 -07:00
2024-01-24 15:34:29 -08:00
2024-05-31 15:14:37 -07:00
2023-11-09 09:55:49 -08:00
2024-05-31 15:14:37 -07:00
2024-08-07 15:57:25 +08:00
2024-05-31 15:14:37 -07:00
2024-08-12 17:18:17 -07:00
2024-08-23 08:20:11 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2023-11-27 10:53:18 -08:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-08-12 17:18:17 -07:00
2024-06-29 21:19:00 -07:00
2024-05-31 15:14:37 -07:00
2024-08-12 17:18:17 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-08-12 17:18:17 -07:00
2024-05-31 15:14:37 -07:00
2024-07-09 20:02:01 -07:00
2024-08-21 00:35:07 -04:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-08-23 08:20:11 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-06-27 17:26:58 -07:00
2024-06-27 17:26:58 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-07-09 20:02:01 -07:00
2024-07-18 20:57:05 -07:00
2024-05-31 15:14:37 -07:00
2024-08-12 17:18:17 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-08-12 17:18:17 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-06-27 19:26:11 -07:00
2024-08-12 17:18:17 -07:00
2024-03-04 17:24:16 -08:00
2024-08-12 17:18:17 -07:00
2024-03-22 15:29:26 -07:00
2024-08-12 17:18:17 -07:00
2024-08-12 17:18:17 -07:00
2024-08-12 17:18:17 -07:00
2024-08-12 17:18:17 -07:00
2024-05-31 17:50:58 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2023-11-27 10:53:18 -08:00
2024-07-19 14:00:28 -07:00
2024-07-15 21:40:50 +02:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-07-03 11:39:18 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2022-09-16 13:38:32 -07:00
2024-05-31 15:14:37 -07:00
2024-02-01 12:08:41 -08:00
2024-06-11 19:21:11 +01:00
2022-10-25 11:03:52 -07:00
2024-05-31 15:14:37 -07:00
2024-05-13 18:02:38 -07:00
2024-09-12 20:51:35 -07:00
2024-09-12 20:51:35 -07:00
2024-08-12 17:18:17 -07:00
2024-07-01 14:58:45 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-07-05 15:18:49 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-06-27 17:26:58 -07:00
2024-05-31 15:14:37 -07:00
2024-08-07 20:52:19 -07:00
2024-05-31 15:14:37 -07:00
2023-07-10 14:42:03 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-06-18 13:41:57 +02:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-07-24 07:16:39 -07:00
2024-08-12 17:18:17 -07:00
2024-05-31 15:14:37 -07:00
2024-05-31 15:14:37 -07:00
2024-08-12 17:18:17 -07:00
2024-05-31 15:14:37 -07:00
2024-05-19 20:15:31 -07:00
2024-04-11 21:15:04 +02:00
2024-09-03 11:27:57 -07:00
2024-05-31 15:14:37 -07:00