[Mlir-commits] [mlir] Added free-threading CPython mode support in MLIR Python bindings (PR #107103)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Tue Jan 7 03:40:24 PST 2025


================
@@ -26,6 +26,8 @@ class PyExecutionEngine {
     other.executionEngine.ptr = nullptr;
   }
   ~PyExecutionEngine() {
+    // Avoid races in llvm::orc::LLJIT::deinitialize
----------------
vfdev-5 wrote:

I added another lock here to prevent a race in a bunch of tests using ExecutionEngine and having races with a stack similar to
```
==================
WARNING: ThreadSanitizer: data race (pid=243501)
  Write of size 8 at 0x724000001628 by thread T47:
    #0 memmove <null> (python3.13t+0xd9c2f) (BuildId: 65e52348ca9319985f9f5e265fd43aab2c867d59)
    #1 <null> <null> (libgcc_s.so.1+0x243c3) (BuildId: 3072445288dd2aba348bf583c65f70509aab8141)
    #2 llvm::RuntimeDyldELF::registerEHFrames() /project/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp:226:12 (libMLIRPythonCAPI.so.20.0git+0x924f25c) (BuildId: 2ae0848dae8d0b3b)
    #3 llvm::RuntimeDyldImpl::finalizeAsync(std::unique_ptr<llvm::RuntimeDyldImpl, std::default_delete<llvm::RuntimeDyldImpl>>, llvm::unique_function<void (llvm::object::OwningBinary<llvm::object::ObjectFile>, std::unique_ptr<llvm::RuntimeDyld::LoadedObjectInfo, std::default_delete<llvm::RuntimeDyld::LoadedObjectInfo>>, llvm::Error)>, llvm::object::OwningBinary<llvm::object::ObjectFile>, std::unique_ptr<llvm::RuntimeDyld::LoadedObjectInfo, std::default_delete<llvm::RuntimeDyld::LoadedObjectInfo>>)::$_0::operator()(llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol>>>>) /project/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp:1256:21 (libMLIRPythonCAPI.so.20.0git+0x923c952) (BuildId: 2ae0848dae8d0b3b)
    #4 void llvm::detail::UniqueFunctionBase<void, llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol>>>>>::CallImpl<llvm::RuntimeDyldImpl::finalizeAsync(std::unique_ptr<llvm::RuntimeDyldImpl, std::default_delete<llvm::RuntimeDyldImpl>>, llvm::unique_function<void (llvm::object::OwningBinary<llvm::object::ObjectFile>, std::unique_ptr<llvm::RuntimeDyld::LoadedObjectInfo, std::default_delete<llvm::RuntimeDyld::LoadedObjectInfo>>, llvm::Error)>, llvm::object::OwningBinary<llvm::object::ObjectFile>, std::unique_ptr<llvm::RuntimeDyld::LoadedObjectInfo, std::default_delete<llvm::RuntimeDyld::LoadedObjectInfo>>)::$_0>(void*, llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol>>>>&) /project/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:222:12 (libMLIRPythonCAPI.so.20.0git+0x9242d48) (BuildId: 2ae0848dae8d0b3b)
    #5 llvm::unique_function<void (llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol>>>>)>::operator()(llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol>>>>) /project/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:387:12 (libMLIRPythonCAPI.so.20.0git+0x9208087) (BuildId: 2ae0848dae8d0b3b)
    #6 (anonymous namespace)::JITDylibSearchOrderResolver::lookup(std::set<llvm::StringRef, std::less<llvm::StringRef>, std::allocator<llvm::StringRef>> const&, llvm::unique_function<void (llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol>>>>)>)::'lambda'(llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>>>)::operator()(llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>>>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp:47:11 (libMLIRPythonCAPI.so.20.0git+0x9208087)
    #7 void llvm::detail::UniqueFunctionBase<void, llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>>>>::CallImpl<(anonymous namespace)::JITDylibSearchOrderResolver::lookup(std::set<llvm::StringRef, std::less<llvm::StringRef>, std::allocator<llvm::StringRef>> const&, llvm::unique_function<void (llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol>>>>)>)::'lambda'(llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>>>)>(void*, llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>>>&) /project/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:222:12 (libMLIRPythonCAPI.so.20.0git+0x9208087)
    #8 llvm::unique_function<void (llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>>>)>::operator()(llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>>>) /project/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:387:12 (libMLIRPythonCAPI.so.20.0git+0x90ed255) (BuildId: 2ae0848dae8d0b3b)
    #9 llvm::orc::AsynchronousSymbolQuery::handleComplete(llvm::orc::ExecutionSession&)::RunQueryCompleteTask::run() /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:246:27 (libMLIRPythonCAPI.so.20.0git+0x90ed255)
    #10 llvm::orc::InPlaceTaskDispatcher::dispatch(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/TaskDispatch.cpp:23:68 (libMLIRPythonCAPI.so.20.0git+0x92154ad) (BuildId: 2ae0848dae8d0b3b)
    #11 llvm::orc::ExecutionSession::dispatchTask(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /project/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1550:26 (libMLIRPythonCAPI.so.20.0git+0x90a4fc5) (BuildId: 2ae0848dae8d0b3b)
    #12 llvm::orc::AsynchronousSymbolQuery::handleComplete(llvm::orc::ExecutionSession&) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:256:6 (libMLIRPythonCAPI.so.20.0git+0x90a4e80) (BuildId: 2ae0848dae8d0b3b)
    #13 llvm::orc::JITDylib::resolve(llvm::orc::MaterializationResponsibility&, llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>> const&) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:975:8 (libMLIRPythonCAPI.so.20.0git+0x90b45c4) (BuildId: 2ae0848dae8d0b3b)
    #14 llvm::orc::ExecutionSession::OL_notifyResolved(llvm::orc::MaterializationResponsibility&, llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>> const&) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2915:16 (libMLIRPythonCAPI.so.20.0git+0x90d14cc) (BuildId: 2ae0848dae8d0b3b)
    #15 llvm::orc::MaterializationResponsibility::notifyResolved(llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>> const&) /project/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1944:32 (libMLIRPythonCAPI.so.20.0git+0x909e6da) (BuildId: 2ae0848dae8d0b3b)
    #16 llvm::orc::AbsoluteSymbolsMaterializationUnit::materialize(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/AbsoluteSymbols.cpp:31:21 (libMLIRPythonCAPI.so.20.0git+0x909e6da)
    #17 llvm::orc::MaterializationTask::run() /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:1584:39 (libMLIRPythonCAPI.so.20.0git+0x90c3002) (BuildId: 2ae0848dae8d0b3b)
    #18 llvm::orc::InPlaceTaskDispatcher::dispatch(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/TaskDispatch.cpp:23:68 (libMLIRPythonCAPI.so.20.0git+0x92154ad) (BuildId: 2ae0848dae8d0b3b)
    #19 llvm::orc::ExecutionSession::dispatchTask(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /project/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1550:26 (libMLIRPythonCAPI.so.20.0git+0x90a4fc5) (BuildId: 2ae0848dae8d0b3b)
    #20 llvm::orc::ExecutionSession::dispatchOutstandingMUs() /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2174:5 (libMLIRPythonCAPI.so.20.0git+0x90c661b) (BuildId: 2ae0848dae8d0b3b)
    #21 llvm::orc::ExecutionSession::OL_completeLookup(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>, std::shared_ptr<llvm::orc::AsynchronousSymbolQuery>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>>> const&)>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2793:3 (libMLIRPythonCAPI.so.20.0git+0x90cf2fd) (BuildId: 2ae0848dae8d0b3b)
    #22 llvm::orc::InProgressFullLookupState::complete(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:578:8 (libMLIRPythonCAPI.so.20.0git+0x90f89d8) (BuildId: 2ae0848dae8d0b3b)
    #23 llvm::orc::ExecutionSession::OL_applyQueryPhase1(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>, llvm::Error) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2541:11 (libMLIRPythonCAPI.so.20.0git+0x90ae6b4) (BuildId: 2ae0848dae8d0b3b)
    #24 llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>>> const&, llvm::orc::SymbolLookupSet, llvm::orc::SymbolState, llvm::unique_function<void (llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>>>)>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>>> const&)>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:1814:3 (libMLIRPythonCAPI.so.20.0git+0x90a41ab) (BuildId: 2ae0848dae8d0b3b)
    #25 (anonymous namespace)::JITDylibSearchOrderResolver::lookup(std::set<llvm::StringRef, std::less<llvm::StringRef>, std::allocator<llvm::StringRef>> const&, llvm::unique_function<void (llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol>>>>)>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp:53:8 (libMLIRPythonCAPI.so.20.0git+0x9207423) (BuildId: 2ae0848dae8d0b3b)
    #26 llvm::RuntimeDyldImpl::finalizeAsync(std::unique_ptr<llvm::RuntimeDyldImpl, std::default_delete<llvm::RuntimeDyldImpl>>, llvm::unique_function<void (llvm::object::OwningBinary<llvm::object::ObjectFile>, std::unique_ptr<llvm::RuntimeDyld::LoadedObjectInfo, std::default_delete<llvm::RuntimeDyld::LoadedObjectInfo>>, llvm::Error)>, llvm::object::OwningBinary<llvm::object::ObjectFile>, std::unique_ptr<llvm::RuntimeDyld::LoadedObjectInfo, std::default_delete<llvm::RuntimeDyld::LoadedObjectInfo>>) /project/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp:1279:26 (libMLIRPythonCAPI.so.20.0git+0x923bee5) (BuildId: 2ae0848dae8d0b3b)
    #27 llvm::jitLinkForORC(llvm::object::OwningBinary<llvm::object::ObjectFile>, llvm::RuntimeDyld::MemoryManager&, llvm::JITSymbolResolver&, bool, llvm::unique_function<llvm::Error (llvm::object::ObjectFile const&, llvm::RuntimeDyld::LoadedObjectInfo&, std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol>>>)>, llvm::unique_function<void (llvm::object::OwningBinary<llvm::object::ObjectFile>, std::unique_ptr<llvm::RuntimeDyld::LoadedObjectInfo, std::default_delete<llvm::RuntimeDyld::LoadedObjectInfo>>, llvm::Error)>) /project/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp:1488:3 (libMLIRPythonCAPI.so.20.0git+0x923ef65) (BuildId: 2ae0848dae8d0b3b)
    #28 llvm::orc::RTDyldObjectLinkingLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp:193:3 (libMLIRPythonCAPI.so.20.0git+0x9201a11) (BuildId: 2ae0848dae8d0b3b)
    #29 llvm::orc::ObjectTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp:40:13 (libMLIRPythonCAPI.so.20.0git+0x91fdc35) (BuildId: 2ae0848dae8d0b3b)
    #30 llvm::orc::IRCompileLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>, llvm::orc::ThreadSafeModule) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp:40:15 (libMLIRPythonCAPI.so.20.0git+0x911e2d2) (BuildId: 2ae0848dae8d0b3b)
    #31 llvm::orc::IRTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>, llvm::orc::ThreadSafeModule) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp:24:15 (libMLIRPythonCAPI.so.20.0git+0x9149f2f) (BuildId: 2ae0848dae8d0b3b)
    #32 llvm::orc::IRTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>, llvm::orc::ThreadSafeModule) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp:24:15 (libMLIRPythonCAPI.so.20.0git+0x9149f2f) (BuildId: 2ae0848dae8d0b3b)
    #33 llvm::orc::BasicIRLayerMaterializationUnit::materialize(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Layer.cpp:158:5 (libMLIRPythonCAPI.so.20.0git+0x912331d) (BuildId: 2ae0848dae8d0b3b)
    #34 llvm::orc::MaterializationTask::run() /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:1584:39 (libMLIRPythonCAPI.so.20.0git+0x90c3002) (BuildId: 2ae0848dae8d0b3b)
    #35 llvm::orc::InPlaceTaskDispatcher::dispatch(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/TaskDispatch.cpp:23:68 (libMLIRPythonCAPI.so.20.0git+0x92154ad) (BuildId: 2ae0848dae8d0b3b)
    #36 llvm::orc::ExecutionSession::dispatchTask(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /project/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1550:26 (libMLIRPythonCAPI.so.20.0git+0x90a4fc5) (BuildId: 2ae0848dae8d0b3b)
    #37 llvm::orc::ExecutionSession::dispatchOutstandingMUs() /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2174:5 (libMLIRPythonCAPI.so.20.0git+0x90c661b) (BuildId: 2ae0848dae8d0b3b)
    #38 llvm::orc::ExecutionSession::OL_completeLookup(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>, std::shared_ptr<llvm::orc::AsynchronousSymbolQuery>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>>> const&)>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2793:3 (libMLIRPythonCAPI.so.20.0git+0x90cf2fd) (BuildId: 2ae0848dae8d0b3b)
    #39 llvm::orc::InProgressFullLookupState::complete(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:578:8 (libMLIRPythonCAPI.so.20.0git+0x90f89d8) (BuildId: 2ae0848dae8d0b3b)
    #40 llvm::orc::ExecutionSession::OL_applyQueryPhase1(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>, llvm::Error) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2541:11 (libMLIRPythonCAPI.so.20.0git+0x90ae6b4) (BuildId: 2ae0848dae8d0b3b)
    #41 llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>>> const&, llvm::orc::SymbolLookupSet, llvm::orc::SymbolState, llvm::unique_function<void (llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>>>)>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>>> const&)>) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:1814:3 (libMLIRPythonCAPI.so.20.0git+0x90a41ab) (BuildId: 2ae0848dae8d0b3b)
    #42 llvm::orc::Platform::lookupInitSymbols(llvm::orc::ExecutionSession&, llvm::DenseMap<llvm::orc::JITDylib*, llvm::orc::SymbolLookupSet, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::orc::SymbolLookupSet>> const&) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:1506:8 (libMLIRPythonCAPI.so.20.0git+0x90c1d3c) (BuildId: 2ae0848dae8d0b3b)
    #43 (anonymous namespace)::GenericLLVMIRPlatformSupport::getDeinitializers(llvm::orc::JITDylib&) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp:377:25 (libMLIRPythonCAPI.so.20.0git+0x913e5b5) (BuildId: 2ae0848dae8d0b3b)
    #44 (anonymous namespace)::GenericLLVMIRPlatformSupport::deinitialize(llvm::orc::JITDylib&) /project/llvm-project/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp:255:31 (libMLIRPythonCAPI.so.20.0git+0x913e5b5)
    #45 llvm::orc::LLJIT::deinitialize(llvm::orc::JITDylib&) /project/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h:212:16 (libMLIRPythonCAPI.so.20.0git+0x5d8dc76) (BuildId: 2ae0848dae8d0b3b)
    #46 mlir::ExecutionEngine::~ExecutionEngine() /project/llvm-project/mlir/lib/ExecutionEngine/ExecutionEngine.cpp:226:29 (libMLIRPythonCAPI.so.20.0git+0x5d8d8d3) (BuildId: 2ae0848dae8d0b3b)
    #47 mlirExecutionEngineDestroy /project/llvm-project/mlir/lib/CAPI/ExecutionEngine/ExecutionEngine.cpp:72:3 (libMLIRPythonCAPI.so.20.0git+0x46ad01e) (BuildId: 2ae0848dae8d0b3b)
    #48 (anonymous namespace)::PyExecutionEngine::~PyExecutionEngine() /project/llvm-project/mlir/lib/Bindings/Python/ExecutionEngineModule.cpp:30:7 (_mlirExecutionEngine.cpython-313t-x86_64-linux-gnu.so+0xc0d8) (BuildId: 44fbde6f86fbff75)

```

https://github.com/llvm/llvm-project/pull/107103


More information about the Mlir-commits mailing list