[all-commits] [llvm/llvm-project] 8b1771: [ORC] Move most ORC APIs to ExecutorAddr, introduc...

lhames via All-commits all-commits at lists.llvm.org
Mon Mar 27 17:42:24 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8b1771bd9f304be39d4dcbdcccedb6d3bcd18200
      https://github.com/llvm/llvm-project/commit/8b1771bd9f304be39d4dcbdcccedb6d3bcd18200
  Author: Lang Hames <lhames at gmail.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    M llvm/docs/ORCv2.rst
    M llvm/docs/tutorial/BuildingAJIT1.rst
    M llvm/docs/tutorial/BuildingAJIT3.rst
    M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.h
    M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/toy.cpp
    M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.h
    M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/toy.cpp
    M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter3/KaleidoscopeJIT.h
    M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter3/toy.cpp
    M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter4/KaleidoscopeJIT.h
    M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter4/toy.cpp
    M llvm/examples/Kaleidoscope/Chapter4/toy.cpp
    M llvm/examples/Kaleidoscope/Chapter5/toy.cpp
    M llvm/examples/Kaleidoscope/Chapter6/toy.cpp
    M llvm/examples/Kaleidoscope/Chapter7/toy.cpp
    M llvm/examples/Kaleidoscope/include/KaleidoscopeJIT.h
    M llvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/LLJITWithExecutorProcessControl.cpp
    M llvm/examples/OrcV2Examples/LLJITWithInitializers/LLJITWithInitializers.cpp
    M llvm/examples/OrcV2Examples/LLJITWithLazyReexports/LLJITWithLazyReexports.cpp
    M llvm/examples/SpeculativeJIT/SpeculativeJIT.cpp
    M llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
    M llvm/include/llvm/ExecutionEngine/Orc/Core.h
    M llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h
    M llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
    M llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h
    M llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h
    M llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h
    M llvm/include/llvm/ExecutionEngine/Orc/Speculation.h
    M llvm/lib/ExecutionEngine/JITLink/COFF_x86_64.cpp
    M llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp
    M llvm/lib/ExecutionEngine/Orc/COFFPlatform.cpp
    M llvm/lib/ExecutionEngine/Orc/Core.cpp
    M llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp
    M llvm/lib/ExecutionEngine/Orc/DebugUtils.cpp
    M llvm/lib/ExecutionEngine/Orc/DebuggerSupportPlugin.cpp
    M llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp
    M llvm/lib/ExecutionEngine/Orc/EPCDynamicLibrarySearchGenerator.cpp
    M llvm/lib/ExecutionEngine/Orc/EPCIndirectionUtils.cpp
    M llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp
    M llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp
    M llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp
    M llvm/lib/ExecutionEngine/Orc/LLJIT.cpp
    M llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
    M llvm/lib/ExecutionEngine/Orc/LookupAndRecordAddrs.cpp
    M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
    M llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
    M llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp
    M llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
    M llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
    M llvm/lib/ExecutionEngine/Orc/SimpleRemoteEPC.cpp
    M llvm/lib/ExecutionEngine/Orc/Speculation.cpp
    M llvm/tools/lli/ExecutionUtils.h
    M llvm/tools/lli/lli.cpp
    M llvm/tools/llvm-jitlink/llvm-jitlink.cpp
    M llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
    M llvm/unittests/ExecutionEngine/Orc/ExecutionSessionWrapperFunctionCallsTest.cpp
    M llvm/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp
    M llvm/unittests/ExecutionEngine/Orc/LookupAndRecordAddrsTest.cpp
    M llvm/unittests/ExecutionEngine/Orc/OrcTestCommon.cpp
    M llvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
    M llvm/unittests/ExecutionEngine/Orc/ResourceTrackerTest.cpp

  Log Message:
  -----------
  [ORC] Move most ORC APIs to ExecutorAddr, introduce ExecutorSymbolDef.

ExecutorAddr was introduced in b8e5f918166 as an eventual replacement for
JITTargetAddress. ExecutorSymbolDef is introduced in this patch as a
replacement for JITEvaluatedSymbol: ExecutorSymbolDef is an (ExecutorAddr,
JITSymbolFlags) pair, where JITEvaluatedSymbol was a (JITTargetAddress,
JITSymbolFlags) pair.

A number of APIs had already migrated from JITTargetAddress to ExecutorAddr,
but many of ORC's internals were still using the older type. This patch aims
to address that.

Some public APIs are affected as well. If you need to migrate your APIs you can
use the following operations:

* ExecutorAddr::toPtr replaces jitTargetAddressToPointer and
  jitTargetAddressToFunction.

* ExecutorAddr::fromPtr replace pointerToJITTargetAddress.

* ExecutorAddr(JITTargetAddress) creates an ExecutorAddr value from a
  JITTargetAddress.

* ExecutorAddr::getValue() creates a JITTargetAddress value from an
  ExecutorAddr.

JITTargetAddress and JITEvaluatedSymbol will remain in JITSymbol.h for now, but
the aim will be to eventually deprecate and remove these types (probably when
MCJIT and RuntimeDyld are deprecated).




More information about the All-commits mailing list