| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Reland "[TypeProf][InstrPGO] Introduce raw and instr profile format change for type profiling." (#82711) New change on top of [reviewed patch](https://github.com/llvm/llvm-project/pull/81691) are [in commits after this one](https://github.com/llvm/llvm-project/pull/82711/commits/d0757f46b3e3865b5f7c552bc0744309a363e0ac). Previous commits are restored from the remote branch with timestamps. 1. Fix build breakage for non-ELF platforms, by defining the missing functions { __llvm_profile_begin_vtables, __llvm_profile_end_vtables, __llvm_profile_begin_vtabnames , __llvm_profile_end_vtabnames} everywhere. * Tested on mac laptop (for darwins) and Windows. Specifically, functions in InstrProfilingPlatformWindows.c returns NULL to make it more explicit that type prof isn't supported; see comments for the reason. * For the rest (AIX, other), mostly follow existing examples (like this [one](https://github.com/llvm/llvm-project/commit/f95b2f1acf1171abb0d00089fd4c9238753847e3)) 2. Rename __llvm_prf_vtabnames -> __llvm_prf_vns for shorter section name, and make returned pointers [const](https://github.com/llvm/llvm-project/pull/82711/commits/a825d2a4ec00f07772a373091a702f149c3b0c34#diff-4de780ce726d76b7abc9d3353aef95013e7b21e7bda01be8940cc6574fb0b5ffR120-R121) **Original Description** * Raw profile format - Header: records the byte size of compressed vtable names, and the number of profiled vtable entries (call it VTableProfData). Header also records padded bytes of each section. - Payload: adds a section for compressed vtable names, and a section to store VTableProfData. Both sections are padded so the size is a multiple of 8. * Indexed profile format - Header: records the byte offset of compressed vtable names. - Payload: adds a section to store compressed vtable names. This section is used by llvm-profdata to show the list of vtables profiled for an instrumented site. [The originally reviewed patch](https://github.com/llvm/llvm-project/pull/66825) will have profile reader/write change and llvm-profdata change. - To ensure this PR has all the necessary profile format change along with profile version bump, created a copy of the originally reviewed patch in https://github.com/llvm/llvm-project/pull/80761. The copy doesn't have profile format change, but it has the set of tests which covers type profile generation, profile read and profile merge. Tests pass there. rfc in https://discourse.llvm.org/t/rfc-dynamic-type-profiling-and-optimizations-in-llvm/74600 --------- Co-authored-by: modiking <modiking213@gmail.com> | 10 个月前 | |
[MemProf] Collect access density statistics during profiling Track min/max/avg access density (accesses per byte and accesses per byte per lifetime second) metrics directly during profiling. This allows more accurate use of these metrics in profile analysis and use, instead of trying to compute them from already aggregated data in the profile. This required regenerating some of the raw profile and executable inputs for a few tests. While here, make the llvm-profdata memprof tests more resilient to differences in things like memory mapping, timestamps and cpu ids to make future test updates easier. Differential Revision: https://reviews.llvm.org/D141558 | 3 年前 | |
[memprof] Record BuildIDs in the raw profile. This patch adds support for recording BuildIds usng the sanitizer ListOfModules API. We add another entry to the SegmentEntry struct and change the memprof raw version. Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D145190 | 3 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 10 个月前 | ||
| 3 年前 | ||
| 3 年前 |