[all-commits] [llvm/llvm-project] b40248: [BOLT] A new code layout algorithm for function re...

spupyrev via All-commits all-commits at lists.llvm.org
Mon Jul 31 10:49:34 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b402487b7445a799c3ed03109d291198fd529d3a
      https://github.com/llvm/llvm-project/commit/b402487b7445a799c3ed03109d291198fd529d3a
  Author: spupyrev <spupyrev at fb.com>
  Date:   2023-07-31 (Mon, 31 Jul 2023)

  Changed paths:
    M bolt/include/bolt/Passes/ReorderFunctions.h
    M bolt/lib/Passes/ReorderFunctions.cpp

  Log Message:
  -----------
  [BOLT] A new code layout algorithm for function reordering [3b/3]

This is a new algorithm for function layout (reordering) based on the call graph
extracted from a profile data; see diffs down the stack for more details.

This layout is very similar to the existing hfsort+, but perhaps a little better
on some benchmarks. The goals of the change is as follows:

(i) rename and replace hfsort+ with a newer (hopefully better) implementation.
I'd prefer to keep both algs together for some time to simplify evaluation and
transition, but do want to remove hfsort+ once we're confident that there are
no regressions.

(ii) unify the implementation of code layout algorithms across LLVM. Currently
Passes/HfsortPlus.cpp and Utils/CodeLayout.cpp share many implementation-specific
details; this diff unifies the code.

Reviewed By: Amir

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




More information about the All-commits mailing list