aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/FileManager.cpp
diff options
context:
space:
mode:
authorwlei <wlei@fb.com>2021-10-26 14:55:33 -0700
committerwlei <wlei@fb.com>2021-10-29 09:59:12 -0700
commit40ca4112515d03bbcf594bd2dfa6b4394d5b00d6 (patch)
tree1beaf6d568e796ee7db6d4a9109913f044e06d26 /clang/lib/Basic/FileManager.cpp
parentaefcd598959abbea5eddf1fe454359f53bd9d853 (diff)
downloadllvm-40ca4112515d03bbcf594bd2dfa6b4394d5b00d6.zip
llvm-40ca4112515d03bbcf594bd2dfa6b4394d5b00d6.tar.gz
llvm-40ca4112515d03bbcf594bd2dfa6b4394d5b00d6.tar.bz2
[llvm-profgen] Switch to DWARF-based symbol and ranges
It happened a bug that some callsite name in the profile is not a real function, it turned out that there're some non-function symbol from the ELF text section, e.g. the global accessible branch label and also recalled that we can have one function being split into multiple ranges. We shouldn't count samples for those are not the entry of the real function. So this change tried to fix this issue by switching to use the name or ranges from DWARF-based debug info, the range of which assure it's the real function start. For the split functions, we assume that the real entry function's DWARF name should always match the symbol table name. The switching is also consistent with the body samples' symbol which is from DWARF. Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D112282
Diffstat (limited to 'clang/lib/Basic/FileManager.cpp')
0 files changed, 0 insertions, 0 deletions