[PATCH] D159492: Reapply [jitlink/rtdydl][checker] Add TargetFlag dependent disassembler switching support

Eymen Ünay via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Sep 9 09:54:57 PDT 2023


Eymay created this revision.
Eymay added reviewers: lhames, sgraenitz.
Herald added a subscriber: hiraditya.
Herald added a project: All.
Eymay requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Some targets such as AArch32 make use of TargetFlags to indicate ISA mode. Depending
on the TargetFlag, MCDisassembler and similar target specific objects should be
reinitialized with the correct Target Triple. Backends with similar needs can
easily extend this implementation for their use case.

The drivers llvm-rtdyld and llvm-jitlink have their SymbolInfo's extended to take
TargetFlag into account. RuntimeDyldChecker can now create necessary TargetInfo
to reinitialize MCDisassembler and MCInstPrinter. The required triple is obtained
from the new getTripleFromTargetFlag function by checking the TargetFlag.

In addition, breaking changes for RuntimeDyld COFF Thumb tests are fixed by making
the backend emit a TargetFlag.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D159492

Files:
  llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
  llvm/include/llvm/ExecutionEngine/JITLink/aarch32.h
  llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h
  llvm/lib/ExecutionEngine/JITLink/aarch32.cpp
  llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
  llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
  llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h
  llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h
  llvm/test/ExecutionEngine/JITLink/AArch32/ELF_static_thumb_reloc.s
  llvm/test/ExecutionEngine/RuntimeDyld/ARM/COFF_Thumb.s
  llvm/tools/llvm-jitlink/llvm-jitlink-coff.cpp
  llvm/tools/llvm-jitlink/llvm-jitlink-elf.cpp
  llvm/tools/llvm-jitlink/llvm-jitlink-macho.cpp
  llvm/tools/llvm-jitlink/llvm-jitlink.cpp
  llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D159492.556351.patch
Type: text/x-patch
Size: 29700 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230909/986c38b2/attachment-0001.bin>


More information about the llvm-commits mailing list