aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CGExprAgg.cpp
diff options
context:
space:
mode:
authorMingming Liu <mingmingl@google.com>2024-04-01 08:52:35 -0700
committerGitHub <noreply@github.com>2024-04-01 08:52:35 -0700
commit1351d17826e1efa3da3b29b6e345d44cb0ce3bc9 (patch)
tree54ee724bf2e4d493386d41350ba6f8cd5f81010d /clang/lib/CodeGen/CGExprAgg.cpp
parent971b852546a7d96bc8887ced913724b884cf40df (diff)
downloadllvm-1351d17826e1efa3da3b29b6e345d44cb0ce3bc9.zip
llvm-1351d17826e1efa3da3b29b6e345d44cb0ce3bc9.tar.gz
llvm-1351d17826e1efa3da3b29b6e345d44cb0ce3bc9.tar.bz2
[InstrFDO][TypeProf] Implement binary instrumentation and profile read/write (#66825)
(The profile format change is split into a standalone change into https://github.com/llvm/llvm-project/pull/81691) * For InstrFDO value profiling, implement instrumentation and lowering for virtual table address. * This is controlled by `-enable-vtable-value-profiling` and off by default. * When the option is on, raw profiles will carry serialized `VTableProfData` structs and compressed vtables as payloads. * Implement profile reader and writer support * Raw profile reader is used by `llvm-profdata` but not compiler. Raw profile reader will construct InstrProfSymtab with symbol names, and map profiled runtime address to vtable symbols. * Indexed profile reader is used by `llvm-profdata` and compiler. When initialized, the reader stores a pointer to the beginning of in-memory compressed vtable names and the length of string. When used in `llvm-profdata`, reader decompress the string to show symbols of a profiled site. When used in compiler, string decompression doesn't happen since IR is used to construct InstrProfSymtab. * Indexed profile writer collects the list of vtable names, and stores that to index profiles. * Text profile reader and writer support are added but mostly follow the implementation for indirect-call value type. * `llvm-profdata show -show-vtables <args> <profile>` is implemented. rfc in https://discourse.llvm.org/t/rfc-dynamic-type-profiling-and-optimizations-in-llvm/74600#pick-instrumentation-points-and-instrument-runtime-types-7
Diffstat (limited to 'clang/lib/CodeGen/CGExprAgg.cpp')
0 files changed, 0 insertions, 0 deletions