[all-commits] [llvm/llvm-project] 47669a: [llvm-profgen] Ignore inline frames with an emtpy ...
Hongtao Yu via All-commits
all-commits at lists.llvm.org
Mon Sep 18 12:40:20 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 47669af47fafd5d0b0dc117938ae7a1cffc8d344
https://github.com/llvm/llvm-project/commit/47669af47fafd5d0b0dc117938ae7a1cffc8d344
Author: Hongtao Yu <hoy at fb.com>
Date: 2023-09-18 (Mon, 18 Sep 2023)
Changed paths:
M llvm/include/llvm/ProfileData/SampleProf.h
M llvm/tools/llvm-profgen/ProfiledBinary.cpp
Log Message:
-----------
[llvm-profgen] Ignore inline frames with an emtpy function name (#66678)
Broken debug information can give empty names for an inlined frame, e.g,
```
0x1d605c68: ryKeyINS7_17SmartCounterTypesEEESt10shared_ptrINS7_15AsyncCacheValueIS9_EEESaIhESt6atomicEEE9fetch_subElSt12memory_order at Filename: edata.h
Function start filename: edata.h
Function start line: 266
Function start address: 0x1d605c68
Line: 267
Column: 0
(inlined by) at Filename: edata.h
Function start filename: edata.h
Function start line: 274
Function start address: 0x1d605c68
Line: 275
Column: 0
(inlined by) _EEEmmEv at Filename: arena.c
Function start filename: arena.c
Function start line: 1303
Line: 1308
Column: 0
```
This patch avoids creating a sample context with an empty function name
by stopping tracking at that frame. This prevents a hash failure that
leads to an ICE, where empty context serves at an empty key for the
underlying MapVector
https://github.com/llvm/llvm-project/blob/7624de5beae2f142abfdb3e32a63c263a586d768/llvm/lib/ProfileData/SampleProfWriter.cpp#L261
More information about the All-commits
mailing list