[PATCH] D126177: [BOLT] Mark every symbol in $d-$x range as data

Denis via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun May 22 13:49:16 PDT 2022


treapster created this revision.
treapster added a reviewer: yota9.
Herald added subscribers: ayermolo, kristof.beyls.
Herald added a reviewer: rafauler.
Herald added a reviewer: Amir.
Herald added a reviewer: maksfb.
Herald added a project: All.
treapster requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

On AArch64, compilers usually mark sequential data symbols with one $d marker, and when BOLT handles it with markDataAtOffset, it only practically marks the first symbol as constant island, while treating everything after it as code. This leads to disassembling failures. 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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D126177

Files:
  bolt/include/bolt/Core/BinaryContext.h
  bolt/include/bolt/Core/BinaryFunction.h
  bolt/lib/Core/BinaryContext.cpp
  bolt/lib/Core/BinaryFunction.cpp
  bolt/lib/Rewrite/RewriteInstance.cpp
  bolt/test/AArch64/unmarked-data.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D126177.431260.patch
Type: text/x-patch
Size: 14589 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220522/bf00a0c1/attachment.bin>


More information about the llvm-commits mailing list