[all-commits] [llvm/llvm-project] 8579db: [BOLT] [AArch64] Handle constant islands spanning ...

Rafael Auler via All-commits all-commits at lists.llvm.org
Tue May 31 13:52:06 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8579db96e8c319acb02064542632f42dd63039ba
      https://github.com/llvm/llvm-project/commit/8579db96e8c319acb02064542632f42dd63039ba
  Author: Denis Revunov <revunov.denis at huawei-partners.com>
  Date:   2022-05-31 (Tue, 31 May 2022)

  Changed paths:
    M bolt/include/bolt/Core/BinaryContext.h
    M bolt/include/bolt/Core/BinaryFunction.h
    M bolt/lib/Core/BinaryContext.cpp
    M bolt/lib/Core/BinaryFunction.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    A bolt/test/AArch64/Inputs/unmarked-data.yaml
    A bolt/test/AArch64/unmarked-data.test

  Log Message:
  -----------
  [BOLT] [AArch64] Handle constant islands spanning multiple functions

Fix BOLT's constant island mapping when a constant island marked by $d
spans multiple functions. Currently, because BOLT only marks the
constant island in the first function where $d is located, if the next
function contains data at its start, BOLT will miss the data and try
to disassemble it. This patch adds code to explicitly go through all
symbols between $d and $x markers and mark their respective offsets as
data, which stops BOLT from trying to disassemble data. It also adds
MarkerType enum and refactors related functions.

Reviewed By: yota9, rafauler

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




More information about the All-commits mailing list