aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/ModuloSchedule.cpp
diff options
context:
space:
mode:
authoralx32 <103613512+alx32@users.noreply.github.com>2024-03-16 07:51:45 -0700
committerGitHub <noreply@github.com>2024-03-16 07:51:45 -0700
commit9d5edfde5c3dbc4eb559d316e82e664f291fc2bf (patch)
treede2f57e524cdb2d0c9d90c043eb066b2dd0f8e66 /llvm/lib/CodeGen/ModuloSchedule.cpp
parent662010e5398e07287242688c144bd11faaf73861 (diff)
downloadllvm-9d5edfde5c3dbc4eb559d316e82e664f291fc2bf.zip
llvm-9d5edfde5c3dbc4eb559d316e82e664f291fc2bf.tar.gz
llvm-9d5edfde5c3dbc4eb559d316e82e664f291fc2bf.tar.bz2
[llvm-objdump][macho] Add support for ObjC relative method lists (#85477)
For Mach-O, ld64 supports the -fobjc-relative-method-lists flag which changes the format in which method lists are generated. The format uses delta encoding vs the original direct-pointer encoding. This change adds support to llvm-objdump and llvm-otool for decoding/dumping of method lists in the delta format. Previously, if a binary with this information format was passed to the tooling, it would output invalid information, trying to parse the delta lists as pointer lists. After this change, the tooling will output correct information if a binary in this format is encountered. The output format is closest feasible match to XCode 15.1's otool output. Tests are included for both 32bit and 64bit binaries. The code style was matched as close as possible to existing implementation of parsing non-delta method lists. Diff between llvm-objdump and XCode 15.1 otool: ![image](https://github.com/llvm/llvm-project/assets/103613512/2277e3ff-d59c-4fff-b93a-e0587ee740a6) Note: This is a retry of this PR: https://github.com/llvm/llvm-project/pull/84250 On the original PR, the armv7+armv8 builds were failing due to absolute offsets being different. Co-authored-by: Alex B <alexborcan@meta.com>
Diffstat (limited to 'llvm/lib/CodeGen/ModuloSchedule.cpp')
0 files changed, 0 insertions, 0 deletions