[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