# TPDE: A Fast Adaptable Compiler Back-End Framework

**URL:** https://discourse.julialang.org/t/tpde-a-fast-adaptable-compiler-back-end-framework/129576
**Category:** Offtopic
**Created:** [June 2, 2025, 6:45pm UTC](https://discourse.julialang.org/t/tpde-a-fast-adaptable-compiler-back-end-framework/129576 "2025-06-02T18:45:11Z")
**Posts on this page:** 1
**Showing post:** 8

<div class="post-metadata">

### Author: ![RomeoV](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/romeov/32/37687_2.png) [@RomeoV](https://discourse.julialang.org/u/RomeoV)
#### Post date: [September 3, 2025, 2:19pm UTC](https://discourse.julialang.org/t/tpde-a-fast-adaptable-compiler-back-end-framework/129576/8 "2025-09-03T14:19:58Z")

</div>

Also cross-posting from the other thread I opened ([TPDE-LLVM for 10-20x faster -O1 compilation](https://discourse.julialang.org/t/tpde-llvm-for-10-20x-faster-o1-compilation/132074)) to provide some more links:

> I just saw [this post](https://news.ycombinator.com/item?id=45072481) on hackernews, where an [LLVM compiler backend](https://discourse.llvm.org/t/tpde-llvm-10-20x-faster-llvm-o0-back-end/86664) ([github](https://github.com/tpde2/tpde)) was posted that claims to get 10-20x compile time speedup compared to an LLVM 19 baseline.
> 
> Quoting from the linked LLVM-Discourse thread:
> 
> > **How to use TPDE-LLVM?**
> > 
> > The LLVM back-end is usable as a library (e.g., for JIT compilation, also usable with ORC JIT), as `llc`-like tool, and can be integrated in Clang (needs a patch, plugins can’t provide a custom back-end right now). Some more details [here](https://docs.tpde.org/tpde-llvm-main.html).
> 
> So I am wondering if it would be possible to compile Julia with this LLVM backend, at least for use-cases for which O0 or O1 type performance is acceptable.
> 
> I don’t know too much about how exactly LLVM is currently called from Julia, but quoting the [TPDE-LLVM docs](https://docs.tpde.org/tpde-llvm-main.html):
> 
> > Library usage is possible through [tpde\_llvm::LLVMCompiler](https://docs.tpde.org/classtpde__llvm_1_1LLVMCompiler.html), which supports compiling a module to an object file or mapping it into the memory of the current process for JIT execution. The JIT mapper only supports very typical ELF constructs (e.g., no TLS), if this is not sufficient, the object file can also be mapped through LLVM’s ORC JIT (see tpde-llvm/tools/tpde-lli.cpp for an example).
> 
> Perhaps someone can comment on the feasibilty here.

---

_[View the full topic](https://discourse.julialang.org/t/tpde-a-fast-adaptable-compiler-back-end-framework/129576)._
