[all-commits] [llvm/llvm-project] b2584e: [llvm] annotate interfaces in llvm/Transforms for ...
Andrew Rogers via All-commits
all-commits at lists.llvm.org
Tue Jun 10 08:10:58 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: b2584e0b178395a20b8f72f4b501711e7f039a3e
https://github.com/llvm/llvm-project/commit/b2584e0b178395a20b8f72f4b501711e7f039a3e
Author: Andrew Rogers <andrurogerz at gmail.com>
Date: 2025-06-10 (Tue, 10 Jun 2025)
Changed paths:
M llvm/include/llvm/Transforms/Coroutines/ABI.h
M llvm/include/llvm/Transforms/Coroutines/CoroInstr.h
M llvm/include/llvm/Transforms/Coroutines/CoroShape.h
M llvm/include/llvm/Transforms/Coroutines/CoroSplit.h
M llvm/include/llvm/Transforms/Coroutines/MaterializationUtils.h
M llvm/include/llvm/Transforms/Coroutines/SuspendCrossingInfo.h
M llvm/include/llvm/Transforms/HipStdPar/HipStdPar.h
M llvm/include/llvm/Transforms/IPO.h
M llvm/include/llvm/Transforms/IPO/AlwaysInliner.h
M llvm/include/llvm/Transforms/IPO/Attributor.h
M llvm/include/llvm/Transforms/IPO/BlockExtractor.h
M llvm/include/llvm/Transforms/IPO/EmbedBitcodePass.h
M llvm/include/llvm/Transforms/IPO/ExtractGV.h
M llvm/include/llvm/Transforms/IPO/FunctionAttrs.h
M llvm/include/llvm/Transforms/IPO/FunctionImport.h
M llvm/include/llvm/Transforms/IPO/FunctionSpecialization.h
M llvm/include/llvm/Transforms/IPO/GlobalDCE.h
M llvm/include/llvm/Transforms/IPO/Inliner.h
M llvm/include/llvm/Transforms/IPO/Internalize.h
M llvm/include/llvm/Transforms/IPO/LowerTypeTests.h
M llvm/include/llvm/Transforms/IPO/MergeFunctions.h
M llvm/include/llvm/Transforms/IPO/ModuleInliner.h
M llvm/include/llvm/Transforms/IPO/SampleContextTracker.h
M llvm/include/llvm/Transforms/IPO/SampleProfile.h
M llvm/include/llvm/Transforms/IPO/SampleProfileProbe.h
M llvm/include/llvm/Transforms/IPO/StripDeadPrototypes.h
M llvm/include/llvm/Transforms/IPO/StripSymbols.h
M llvm/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h
M llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h
M llvm/include/llvm/Transforms/InstCombine/InstCombine.h
M llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h
M llvm/include/llvm/Transforms/Instrumentation/BoundsChecking.h
M llvm/include/llvm/Transforms/Instrumentation/DataFlowSanitizer.h
M llvm/include/llvm/Transforms/Instrumentation/GCOVProfiler.h
M llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h
M llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h
M llvm/include/llvm/Transforms/Instrumentation/KCFI.h
M llvm/include/llvm/Transforms/Instrumentation/LowerAllowCheckPass.h
M llvm/include/llvm/Transforms/Instrumentation/MemProfInstrumentation.h
M llvm/include/llvm/Transforms/Instrumentation/MemProfUse.h
M llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h
M llvm/include/llvm/Transforms/Instrumentation/NumericalStabilitySanitizer.h
M llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h
M llvm/include/llvm/Transforms/Instrumentation/RealtimeSanitizer.h
M llvm/include/llvm/Transforms/Instrumentation/SanitizerBinaryMetadata.h
M llvm/include/llvm/Transforms/Instrumentation/SanitizerCoverage.h
M llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h
M llvm/include/llvm/Transforms/Instrumentation/TypeSanitizer.h
M llvm/include/llvm/Transforms/ObjCARC.h
M llvm/include/llvm/Transforms/Scalar.h
M llvm/include/llvm/Transforms/Scalar/EarlyCSE.h
M llvm/include/llvm/Transforms/Scalar/GVN.h
M llvm/include/llvm/Transforms/Scalar/JumpThreading.h
M llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
M llvm/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h
M llvm/include/llvm/Transforms/Scalar/SCCP.h
M llvm/include/llvm/Transforms/Scalar/Scalarizer.h
M llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h
M llvm/include/llvm/Transforms/Utils.h
M llvm/include/llvm/Transforms/Utils/AMDGPUEmitPrintf.h
M llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h
M llvm/include/llvm/Transforms/Utils/AssumeBundleBuilder.h
M llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
M llvm/include/llvm/Transforms/Utils/BuildLibCalls.h
M llvm/include/llvm/Transforms/Utils/CallGraphUpdater.h
M llvm/include/llvm/Transforms/Utils/CallPromotionUtils.h
M llvm/include/llvm/Transforms/Utils/Cloning.h
M llvm/include/llvm/Transforms/Utils/CodeExtractor.h
M llvm/include/llvm/Transforms/Utils/CodeLayout.h
M llvm/include/llvm/Transforms/Utils/CodeMoverUtils.h
M llvm/include/llvm/Transforms/Utils/Debugify.h
M llvm/include/llvm/Transforms/Utils/FunctionComparator.h
M llvm/include/llvm/Transforms/Utils/FunctionImportUtils.h
M llvm/include/llvm/Transforms/Utils/Instrumentation.h
M llvm/include/llvm/Transforms/Utils/IntegerDivision.h
M llvm/include/llvm/Transforms/Utils/LCSSA.h
M llvm/include/llvm/Transforms/Utils/Local.h
M llvm/include/llvm/Transforms/Utils/LoopRotationUtils.h
M llvm/include/llvm/Transforms/Utils/LoopSimplify.h
M llvm/include/llvm/Transforms/Utils/LoopUtils.h
M llvm/include/llvm/Transforms/Utils/LowerMemIntrinsics.h
M llvm/include/llvm/Transforms/Utils/ModuleUtils.h
M llvm/include/llvm/Transforms/Utils/PredicateInfo.h
M llvm/include/llvm/Transforms/Utils/PromoteMemToReg.h
M llvm/include/llvm/Transforms/Utils/SCCPSolver.h
M llvm/include/llvm/Transforms/Utils/SSAUpdaterBulk.h
M llvm/include/llvm/Transforms/Utils/SanitizerStats.h
M llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
M llvm/include/llvm/Transforms/Utils/SizeOpts.h
M llvm/include/llvm/Transforms/Utils/SplitModule.h
M llvm/include/llvm/Transforms/Utils/SymbolRewriter.h
M llvm/include/llvm/Transforms/Utils/UnrollLoop.h
M llvm/include/llvm/Transforms/Utils/ValueMapper.h
M llvm/include/llvm/Transforms/Vectorize/LoadStoreVectorizer.h
M llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Interval.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizer.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Scheduler.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SeedCollector.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
M llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
M llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
M llvm/lib/Transforms/Utils/Local.cpp
M llvm/lib/Transforms/Utils/LoopUtils.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Interval.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/SeedCollector.cpp
Log Message:
-----------
[llvm] annotate interfaces in llvm/Transforms for DLL export (#143413)
## Purpose
This patch is one in a series of code-mods that annotate LLVM’s public
interface for export. This patch annotates the `llvm/Transforms`
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:
- Removed a redundant `operator<<` from Attributor.h. IDS only
auto-annotates the 1st declaration, and the 2nd declaration being
un-annotated resulted in an "inconsistent linkage" error on Windows when
building LLVM as a DLL.
- `#include` the `VirtualFileSystem.h` in PGOInstrumentation.h and
remove the local declaration of the `vfs::FileSystem` class. This is
required because exporting the `PGOInstrumentationUse` constructor
requires the class be fully defined because it is used by an argument.
- Add #include "llvm/Support/Compiler.h" to files where it was not
auto-added by IDS due to no pre-existing block of include statements.
- Add `LLVM_TEMPLATE_ABI` and `LLVM_EXPORT_TEMPLATE` to exported
instantiated templates.
## 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