[all-commits] [llvm/llvm-project] d4d4a0: [llvm] annotate interfaces in llvm/Analysis for DL...

Andrew Rogers via All-commits all-commits at lists.llvm.org
Tue May 27 15:14:41 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d4d4a04771e183e6385919b72ba8206da87e1f9c
      https://github.com/llvm/llvm-project/commit/d4d4a04771e183e6385919b72ba8206da87e1f9c
  Author: Andrew Rogers <andrurogerz at gmail.com>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M llvm/include/llvm/Analysis/AliasAnalysis.h
    M llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h
    M llvm/include/llvm/Analysis/AliasSetTracker.h
    M llvm/include/llvm/Analysis/AssumeBundleQueries.h
    M llvm/include/llvm/Analysis/AssumptionCache.h
    M llvm/include/llvm/Analysis/BasicAliasAnalysis.h
    M llvm/include/llvm/Analysis/BlockFrequencyInfo.h
    M llvm/include/llvm/Analysis/BranchProbabilityInfo.h
    M llvm/include/llvm/Analysis/CFG.h
    M llvm/include/llvm/Analysis/CFGPrinter.h
    M llvm/include/llvm/Analysis/CGSCCPassManager.h
    M llvm/include/llvm/Analysis/CallGraph.h
    M llvm/include/llvm/Analysis/CallGraphSCCPass.h
    M llvm/include/llvm/Analysis/CallPrinter.h
    M llvm/include/llvm/Analysis/CaptureTracking.h
    M llvm/include/llvm/Analysis/CodeMetrics.h
    M llvm/include/llvm/Analysis/ConstantFolding.h
    M llvm/include/llvm/Analysis/ConstraintSystem.h
    M llvm/include/llvm/Analysis/CtxProfAnalysis.h
    M llvm/include/llvm/Analysis/DDG.h
    M llvm/include/llvm/Analysis/DXILResource.h
    M llvm/include/llvm/Analysis/DemandedBits.h
    M llvm/include/llvm/Analysis/DependenceAnalysis.h
    M llvm/include/llvm/Analysis/DependenceGraphBuilder.h
    M llvm/include/llvm/Analysis/DomPrinter.h
    M llvm/include/llvm/Analysis/DomTreeUpdater.h
    M llvm/include/llvm/Analysis/EphemeralValuesCache.h
    M llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h
    M llvm/include/llvm/Analysis/FunctionPropertiesAnalysis.h
    M llvm/include/llvm/Analysis/GlobalsModRef.h
    M llvm/include/llvm/Analysis/HeatUtils.h
    M llvm/include/llvm/Analysis/IRSimilarityIdentifier.h
    M llvm/include/llvm/Analysis/IVDescriptors.h
    M llvm/include/llvm/Analysis/InlineAdvisor.h
    M llvm/include/llvm/Analysis/InlineCost.h
    M llvm/include/llvm/Analysis/InlineModelFeatureMaps.h
    M llvm/include/llvm/Analysis/InlineOrder.h
    M llvm/include/llvm/Analysis/InstSimplifyFolder.h
    M llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h
    M llvm/include/llvm/Analysis/InstructionSimplify.h
    M llvm/include/llvm/Analysis/InteractiveModelRunner.h
    M llvm/include/llvm/Analysis/LastRunTrackingAnalysis.h
    M llvm/include/llvm/Analysis/LazyCallGraph.h
    M llvm/include/llvm/Analysis/Loads.h
    M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
    M llvm/include/llvm/Analysis/LoopAnalysisManager.h
    M llvm/include/llvm/Analysis/LoopInfo.h
    M llvm/include/llvm/Analysis/LoopNestAnalysis.h
    M llvm/include/llvm/Analysis/LoopPass.h
    M llvm/include/llvm/Analysis/LoopUnrollAnalyzer.h
    M llvm/include/llvm/Analysis/MemoryBuiltins.h
    M llvm/include/llvm/Analysis/MemoryLocation.h
    M llvm/include/llvm/Analysis/MemoryProfileInfo.h
    M llvm/include/llvm/Analysis/MemorySSA.h
    M llvm/include/llvm/Analysis/MemorySSAUpdater.h
    M llvm/include/llvm/Analysis/ModuleSummaryAnalysis.h
    M llvm/include/llvm/Analysis/MustExecute.h
    M llvm/include/llvm/Analysis/NoInferenceModelRunner.h
    M llvm/include/llvm/Analysis/OptimizationRemarkEmitter.h
    M llvm/include/llvm/Analysis/PHITransAddr.h
    M llvm/include/llvm/Analysis/Passes.h
    M llvm/include/llvm/Analysis/PhiValues.h
    M llvm/include/llvm/Analysis/PostDominators.h
    M llvm/include/llvm/Analysis/ProfileSummaryInfo.h
    M llvm/include/llvm/Analysis/RegionPass.h
    M llvm/include/llvm/Analysis/RegionPrinter.h
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h
    M llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
    M llvm/include/llvm/Analysis/ScalarEvolutionNormalization.h
    M llvm/include/llvm/Analysis/ScopedNoAliasAA.h
    M llvm/include/llvm/Analysis/SimplifyQuery.h
    M llvm/include/llvm/Analysis/StaticDataProfileInfo.h
    M llvm/include/llvm/Analysis/TargetFolder.h
    M llvm/include/llvm/Analysis/TargetLibraryInfo.h
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/TensorSpec.h
    M llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h
    M llvm/include/llvm/Analysis/Utils/ImportedFunctionsInliningStatistics.h
    M llvm/include/llvm/Analysis/Utils/Local.h
    M llvm/include/llvm/Analysis/Utils/TrainingLogger.h
    M llvm/include/llvm/Analysis/ValueLattice.h
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/include/llvm/Analysis/VectorUtils.h
    M llvm/include/llvm/Analysis/WithCache.h
    M llvm/lib/Analysis/CGSCCPassManager.cpp
    M llvm/lib/Analysis/DomTreeUpdater.cpp
    M llvm/lib/Analysis/FunctionPropertiesAnalysis.cpp
    M llvm/lib/Analysis/LoopAnalysisManager.cpp
    M llvm/lib/Analysis/LoopInfo.cpp
    M llvm/lib/Analysis/MemoryProfileInfo.cpp
    M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
    M llvm/lib/Analysis/ProfileSummaryInfo.cpp
    M llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp
    M llvm/unittests/Analysis/FunctionPropertiesAnalysisTest.cpp
    M llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp
    M llvm/unittests/Analysis/MemoryProfileInfoTest.cpp
    M llvm/unittests/Analysis/ProfileSummaryInfoTest.cpp

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

## Purpose

This patch is one in a series of code-mods that annotate LLVM’s public
interface for export. This patch annotates the `llvm/Analysis` 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 `#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
- 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

## 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