[all-commits] [llvm/llvm-project] 03e94f: [BOLT] Change call count output for ICF

maksfb via All-commits all-commits at lists.llvm.org
Mon Feb 27 15:21:44 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 03e94f66087ea48a6321738130bdf85e714ad281
      https://github.com/llvm/llvm-project/commit/03e94f66087ea48a6321738130bdf85e714ad281
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M bolt/include/bolt/Core/BinaryFunction.h
    M bolt/lib/Core/BinaryContext.cpp
    M bolt/lib/Passes/IdenticalCodeFolding.cpp

  Log Message:
  -----------
  [BOLT] Change call count output for ICF

ICF optimization runs multiple passes and the order in which functions
are folded could be dependent on the order they are being processed.
This order is indeterministic as functions are intermediately stored in
std::unordered_map<>. Note that this order is mostly stable, but is not
guaranteed to be and can change e.g. after switching to a different C++
library implementation.

Because the processing (and folding) order is indeterministic, the
previous way of calculating merged function call count could produce
different results.

Change the way we calculate the ICF call count to make it independent of
the function folding/processing order.

Mostly NFC as the output binary should remain the same, the change
affects only the console output.

Reviewed By: yota9

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




More information about the All-commits mailing list