[all-commits] [llvm/llvm-project] 148c69: [llvm] annotate interfaces in llvm/ExecutionEngine...

Andrew Rogers via All-commits all-commits at lists.llvm.org
Tue Jun 3 09:33:52 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 148c69dbae4c9993cad5f7e47f37a616b23f8537
      https://github.com/llvm/llvm-project/commit/148c69dbae4c9993cad5f7e47f37a616b23f8537
  Author: Andrew Rogers <andrurogerz at gmail.com>
  Date:   2025-06-03 (Tue, 03 Jun 2025)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/ExecutionEngine.h
    M llvm/include/llvm/ExecutionEngine/Interpreter.h
    M llvm/include/llvm/ExecutionEngine/JITEventListener.h
    M llvm/include/llvm/ExecutionEngine/JITLink/EHFrameSupport.h
    M llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
    M llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h
    M llvm/include/llvm/ExecutionEngine/JITLink/MachO.h
    M llvm/include/llvm/ExecutionEngine/JITLink/MachO_arm64.h
    M llvm/include/llvm/ExecutionEngine/JITLink/MachO_x86_64.h
    M llvm/include/llvm/ExecutionEngine/JITLink/aarch32.h
    M llvm/include/llvm/ExecutionEngine/JITLink/aarch64.h
    M llvm/include/llvm/ExecutionEngine/JITLink/loongarch.h
    M llvm/include/llvm/ExecutionEngine/JITLink/ppc64.h
    M llvm/include/llvm/ExecutionEngine/JITLink/riscv.h
    M llvm/include/llvm/ExecutionEngine/JITLink/x86.h
    M llvm/include/llvm/ExecutionEngine/JITLink/x86_64.h
    M llvm/include/llvm/ExecutionEngine/JITSymbol.h
    M llvm/include/llvm/ExecutionEngine/MCJIT.h
    M llvm/include/llvm/ExecutionEngine/ObjectCache.h
    M llvm/include/llvm/ExecutionEngine/Orc/AbsoluteSymbols.h
    M llvm/include/llvm/ExecutionEngine/Orc/COFFPlatform.h
    M llvm/include/llvm/ExecutionEngine/Orc/COFFVCRuntimeSupport.h
    M llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
    M llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h
    M llvm/include/llvm/ExecutionEngine/Orc/Core.h
    M llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h
    M llvm/include/llvm/ExecutionEngine/Orc/DebugUtils.h
    M llvm/include/llvm/ExecutionEngine/Orc/Debugging/DebugInfoSupport.h
    M llvm/include/llvm/ExecutionEngine/Orc/Debugging/DebuggerSupport.h
    M llvm/include/llvm/ExecutionEngine/Orc/Debugging/DebuggerSupportPlugin.h
    M llvm/include/llvm/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.h
    M llvm/include/llvm/ExecutionEngine/Orc/Debugging/VTuneSupportPlugin.h
    M llvm/include/llvm/ExecutionEngine/Orc/DylibManager.h
    M llvm/include/llvm/ExecutionEngine/Orc/EHFrameRegistrationPlugin.h
    M llvm/include/llvm/ExecutionEngine/Orc/ELFNixPlatform.h
    M llvm/include/llvm/ExecutionEngine/Orc/EPCDebugObjectRegistrar.h
    M llvm/include/llvm/ExecutionEngine/Orc/EPCDynamicLibrarySearchGenerator.h
    M llvm/include/llvm/ExecutionEngine/Orc/EPCGenericDylibManager.h
    M llvm/include/llvm/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.h
    M llvm/include/llvm/ExecutionEngine/Orc/EPCGenericRTDyldMemoryManager.h
    M llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
    M llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
    M llvm/include/llvm/ExecutionEngine/Orc/GetDylibInterface.h
    M llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
    M llvm/include/llvm/ExecutionEngine/Orc/IRPartitionLayer.h
    M llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
    M llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h
    M llvm/include/llvm/ExecutionEngine/Orc/JITLinkRedirectableSymbolManager.h
    M llvm/include/llvm/ExecutionEngine/Orc/JITLinkReentryTrampolines.h
    M llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h
    M llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h
    M llvm/include/llvm/ExecutionEngine/Orc/Layer.h
    M llvm/include/llvm/ExecutionEngine/Orc/LazyObjectLinkingLayer.h
    M llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h
    M llvm/include/llvm/ExecutionEngine/Orc/LinkGraphLayer.h
    M llvm/include/llvm/ExecutionEngine/Orc/LinkGraphLinkingLayer.h
    M llvm/include/llvm/ExecutionEngine/Orc/LoadLinkableFile.h
    M llvm/include/llvm/ExecutionEngine/Orc/LookupAndRecordAddrs.h
    M llvm/include/llvm/ExecutionEngine/Orc/MachO.h
    M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
    M llvm/include/llvm/ExecutionEngine/Orc/Mangling.h
    M llvm/include/llvm/ExecutionEngine/Orc/MapperJITLinkMemoryManager.h
    M llvm/include/llvm/ExecutionEngine/Orc/MaterializationUnit.h
    M llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h
    M llvm/include/llvm/ExecutionEngine/Orc/ObjectFileInterface.h
    M llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
    M llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
    M llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h
    M llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
    M llvm/include/llvm/ExecutionEngine/Orc/ReOptimizeLayer.h
    M llvm/include/llvm/ExecutionEngine/Orc/RedirectionManager.h
    M llvm/include/llvm/ExecutionEngine/Orc/SectCreate.h
    M llvm/include/llvm/ExecutionEngine/Orc/Shared/AllocationActions.h
    M llvm/include/llvm/ExecutionEngine/Orc/Shared/MachOObjectFormat.h
    M llvm/include/llvm/ExecutionEngine/Orc/Shared/ObjectFormats.h
    M llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcError.h
    M llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h
    M llvm/include/llvm/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.h
    M llvm/include/llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h
    M llvm/include/llvm/ExecutionEngine/Orc/Speculation.h
    M llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h
    M llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/DefaultHostBootstrapValues.h
    M llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/ExecutorBootstrapService.h
    M llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.h
    M llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.h
    M llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleExecutorDylibManager.h
    M llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.h
    M llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h
    M llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.h
    M llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.h
    M llvm/include/llvm/ExecutionEngine/Orc/TaskDispatch.h
    M llvm/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h
    M llvm/include/llvm/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.h
    M llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
    M llvm/include/llvm/ExecutionEngine/RuntimeDyld.h
    M llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h
    M llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h
    M llvm/lib/ExecutionEngine/JITLink/ELF_aarch32.cpp
    M llvm/lib/ExecutionEngine/JITLink/aarch32.cpp
    M llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.cpp
    M llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp

  Log Message:
  -----------
  [llvm] annotate interfaces in llvm/ExecutionEngine for DLL export (#140809)

## Purpose

This patch is one in a series of code-mods that annotate LLVM’s public
interface for export. This patch annotates the `llvm/ExecutionEngine`
library. These annotations currently have no meaningful impact on the
LLVM build; however, they are a prerequisite to support an LLVM Windows
DLL (shared library) build.

## Background

This effort is tracked in #109483. Additional context is provided in
[this
discourse](https://discourse.llvm.org/t/psa-annotating-llvm-public-interface/85307),
and documentation for `LLVM_ABI` and related annotations is found in the
LLVM repo
[here](https://github.com/llvm/llvm-project/blob/main/llvm/docs/InterfaceExportAnnotations.rst).

The bulk of these changes were generated automatically using the
[Interface Definition Scanner (IDS)](https://github.com/compnerd/ids)
tool, followed formatting with `git clang-format`.

The following manual adjustments were also applied after running IDS on
Linux:
- Add `LLVM_ABI_FRIEND` to friend member functions declared with
`LLVM_ABI`
- Add `LLVM_ABI` to a subset of private class methods and fields that
require export
- Add `LLVM_ABI` to a small number of symbols that require export but
are not declared in headers
- Add `LLVM_ABI` to a number of `extern "C"` methods that IDS missed
because they're implicitly exported

## Validation

Local builds and tests to validate cross-platform compatibility. This
included llvm, clang, and lldb on the following configurations:

- Windows with MSVC
- Windows with Clang
- Linux with GCC
- Linux with Clang
- Darwin with Clang



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list