[all-commits] [llvm/llvm-project] 9f732a: [llvm-profgen] Filter out oversized LBR ranges.

Hongtao Yu via All-commits all-commits at lists.llvm.org
Thu May 12 10:59:33 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9f732af583c0dba58847b753a87cc5432ec33f09
      https://github.com/llvm/llvm-project/commit/9f732af583c0dba58847b753a87cc5432ec33f09
  Author: Hongtao Yu <hoy at fb.com>
  Date:   2022-05-12 (Thu, 12 May 2022)

  Changed paths:
    M llvm/test/tools/llvm-profgen/Inputs/invalid-range.perfscript
    M llvm/test/tools/llvm-profgen/invalid-range.test
    M llvm/tools/llvm-profgen/PerfReader.cpp
    M llvm/tools/llvm-profgen/PerfReader.h
    M llvm/tools/llvm-profgen/ProfiledBinary.cpp
    M llvm/tools/llvm-profgen/ProfiledBinary.h

  Log Message:
  -----------
  [llvm-profgen] Filter out oversized LBR ranges.

As a follow up to {D123271}, LBR ranges that are too big should also be considered as invalid.

For example, the last two pairs in the following trace form a range [0x0d7b02b0, 0x368ba706] that covers a ton of functions in the binary. Such oversized range should also be ignored.

   0x0c74505f/0x368b99a0 **0x368ba706**/0x0c745040  0x0d7b1c3f/**0x0d7b02b0**

Add a defensive check to filter out those ranges based that the valid range should not cross the unconditional branch(Call, return, unconditional jmp).

Reviewed By: hoy, wenlei

Differential Revision: https://reviews.llvm.org/D125448




More information about the All-commits mailing list