-
- Downloads
[llvm-profgen] Filter out invalid LBR ranges.
The profiler can sometimes give us a LBR trace that implicates bogus code ranges. For example, 0xc5acb56/0xc66c6c0 0xc628195/0xf31fbb0 0xc611261/0xc628130 0xc5c1a21/0xc6111c0 0x1f7edfd3/0xc5c3a50 0xc5c154f/0x1f7edec0 0xe8eed07/0xc5c11e0 , note that the first two pairs are supposed to form a linear execution range, in this case, it is [0xf31fbb0, 0xc5acb56] , which doesn't make sense. Such bogus ranges should be ruled out to avoid generating a bad profile. I'm fixing this for both CS and non-CS cases. Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D123271
Showing
- llvm/test/tools/llvm-profgen/Inputs/invalid-range.perfscript 10 additions, 0 deletionsllvm/test/tools/llvm-profgen/Inputs/invalid-range.perfscript
- llvm/test/tools/llvm-profgen/invalid-range.test 68 additions, 0 deletionsllvm/test/tools/llvm-profgen/invalid-range.test
- llvm/tools/llvm-profgen/PerfReader.cpp 54 additions, 22 deletionsllvm/tools/llvm-profgen/PerfReader.cpp
- llvm/tools/llvm-profgen/PerfReader.h 14 additions, 1 deletionllvm/tools/llvm-profgen/PerfReader.h
Please register or sign in to comment