[all-commits] [llvm/llvm-project] 6ac71a: [BasicBlockSections] Introduce the basic block sec...

Rahman Lavaee via All-commits all-commits at lists.llvm.org
Fri Sep 22 12:37:18 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6ac71a0149cf92afac71b8b61f17f93af2731bfd
      https://github.com/llvm/llvm-project/commit/6ac71a0149cf92afac71b8b61f17f93af2731bfd
  Author: Rahman Lavaee <rahmanl at google.com>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    M llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h
    M llvm/lib/CodeGen/BasicBlockSectionsProfileReader.cpp
    M llvm/test/CodeGen/X86/basic-block-sections-clusters-error.ll
    M llvm/test/CodeGen/X86/basic-block-sections-clusters.ll
    M llvm/test/CodeGen/X86/basic-block-sections-cold.ll
    M llvm/test/CodeGen/X86/basic-block-sections-list.ll
    M llvm/test/CodeGen/X86/basic-block-sections-module1.ll

  Log Message:
  -----------
  [BasicBlockSections] Introduce the basic block sections profile version 1. (#65506)

This patch introduces a new version for the basic block sections profile
as was requested in D158442, while keeping backward compatibility for
the old version.

The new encoding is as follows:
```
m <module_name>
f <function_name_1> <function_name_2>...
c <bb_id_1> <bb_id_2> <bb_id_3>
c <bb_id_4> <bb_id_5>
...
```
Module name specifier (starting with 'm') is optional and allows
distinguishing profiles for internal-linkage functions with the same
name. If not specified, profile will be applied to any function with the
same name.
Function name specifier (starting with 'f') can specify multiple
function name aliases.
Finally, basic block clusters are specified by 'c' and specify the
cluster of basic blocks, and the internal order in which they must be
placed in the same section.




More information about the All-commits mailing list