[all-commits] [llvm/llvm-project] b8fddc: [llvm] Support llvm::Any across shared libraries o...

Thomas Fransham via All-commits all-commits at lists.llvm.org
Wed Oct 23 22:07:35 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b8fddca7bdb354d51e340c60aafe3dff1b35a195
      https://github.com/llvm/llvm-project/commit/b8fddca7bdb354d51e340c60aafe3dff1b35a195
  Author: Thomas Fransham <tfransham at gmail.com>
  Date:   2024-10-24 (Thu, 24 Oct 2024)

  Changed paths:
    M clang/include/clang/Analysis/FlowSensitive/NoopLattice.h
    M clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp
    M llvm/include/llvm/Analysis/LazyCallGraph.h
    M llvm/include/llvm/IR/PassInstrumentation.h
    M llvm/lib/Analysis/LazyCallGraph.cpp
    M llvm/lib/IR/PassInstrumentation.cpp
    M llvm/lib/Transforms/Scalar/LoopPassManager.cpp
    M llvm/unittests/IR/PassBuilderCallbacksTest.cpp

  Log Message:
  -----------
  [llvm] Support llvm::Any across shared libraries on windows (#108051)

This is part of the effort to support for enabling plugins on windows by
adding better support for building llvm as a DLL. The export macros used
here were added in #96630

Since shared library symbols aren't deduplicated across multiple
libraries on windows like Linux we have to manually explicitly import
and export `Any::TypeId` template instantiations for the uses of
`llvm::Any` in the LLVM codebase to support LLVM Windows shared library
builds.
This change ensures that external code, including LLVM's own tests, can
use PassManager callbacks when LLVM is built as a DLL.

I also removed the only use of llvm::Any for LoopNest that only existed
in debug code and there also doesn't seem to be any code creating
`Any<LoopNest>`



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