# Is there an equivalent to cross-language link time optimization via LLVM?

**URL:** <https://discourse.julialang.org/t/is-there-an-equivalent-to-cross-language-link-time-optimization-via-llvm/135625>\
**Category:** General Usage\
**Created:** [February 13, 2026, 7:15pm UTC](https://discourse.julialang.org/t/is-there-an-equivalent-to-cross-language-link-time-optimization-via-llvm/135625 "2026-02-13T19:15:48Z")\
**Posts on this page:** 1\
**Showing post:** 9

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [February 13, 2026, 11:01pm UTC](https://discourse.julialang.org/t/is-there-an-equivalent-to-cross-language-link-time-optimization-via-llvm/135625/9 "2026-02-13T23:01:21Z")

</div>

> [@Benny](#):
>
> Never did autodifferentiation let alone Enzyme, so noob question: is that issue implying that Enzyme works or is intended to work on LLVM IR across `ccall` boundaries?

Yes, Enzyme works at the LLVM level, which means it couldn’t care less about the frontend language: as long as it receives LLVM IR/bitcode, it can do anything. And Enzyme is “just” an optimisation pass, so the same applies to other passes.

> [@Benny](#):
>
> What went wrong there exactly, couldn’t tell how the working and failed functions differed after that Numba name-unmangling.

If you want a more positive example:

> [@Get Numba LLVM IR differentiated in Julia using Enzyme.jl](https://discourse.julialang.org/t/get-numba-llvm-ir-differentiated-in-julia-using-enzyme-jl/131255/11):
>
> You made it so easy for me to fix it! Indeed I was making a call to the Numba’s internal function, namely \_ZN8\_\_main\_\_4funcB2v1B52c8tJTIeFIjxB2IKSgI4CrvQClUYkACQB1EiFSRRB9GgCAA\_3d\_3dEdddd which returns an i32, 0 for the success and 1 for Python exception. The first argument double\* %retptr is where the result is stored, the second argument { i8\*, i32, i8\*, i8\*, i32 }\*\* is a pointer for Numba’s exception info block (%excinfo), and then the rest four arguments for a, w, p and t as double’s. Wher…

---

_[View the full topic](https://discourse.julialang.org/t/is-there-an-equivalent-to-cross-language-link-time-optimization-via-llvm/135625)._
