Feb 17 · 4 min read · Whale IR (WIR) is the intermediate representation used by the Whale toolchain, which powers the Wave programming language.It is designed to be: SSA-based Fully defined (no undefined behavior) Faithful to the original AST at -O0 Optimization-frien...
Join discussion
Feb 16 · 22 min read · Introduction C++ has been around for over 41 years. Over the years, many features have been added, and one of the most powerful is compile-time computation. C++ actually had this capability before its standardization in 1998, particularly after templ...
Join discussion
Feb 15 · 3 min read · As the compiler landscape evolves, staying current with foundational technologies is essential for performance and reliability. Our latest patch performs a major infrastructure upgrade, transitioning the Wave backend to LLVM 21 and adopting the moder...
Join discussion
Jan 26 · 4 min read · Introduction LLVM is an open-source, modular compiler infrastructure, and Clang is its C++ front-end. In this project, I use LLVM to build a custom Clang compiler that introduces a new C++ builtin -counting the number of fields in a C++ struct / clas...
Join discussionDec 17, 2025 · 2 min read · Well, not too long ago I managed to get the first ‘Hello World’ ek9 application working on the Java JVM. I was very pleased. This work on generating the Intermediate Representation (IR) and the JVM bytecode has progresssed much further. It now includ...
Join discussionDec 13, 2025 · 28 min read · Introduction: When retargeting compiler backends, especially in LLVM, we are usually discussing native chips like CPUs or GPUs. While the underlying architecture of each vendor differs—cores and memory models vary wildly—they share a high-level abstr...
Join discussion
Oct 6, 2025 · 15 min read · TL;DR: This post is a practical, hands-on guide to using LLVM to build the back end of a programming language. If you've ever been curious about compilers but intimidated by optimizations and code generation, this is for you. In this deep dive, we wi...
Join discussion
Jun 29, 2025 · 6 min read · This article is a follow-up to my previous post LLVM Instruction Selection: SelectionDAG Building, where we explored how SelectionDAGs are constructed from LLVM IR. In this post, we explore the next phase: legalization*, which ensures the DAG conform...
Join discussionJun 1, 2025 · 4 min read · The Compiler Factory: A Simple Analogy Imagine a car factory that builds vehicles from blueprints: Blueprint = Your C++ code (source.cpp) Universal Car Frame = LLVM IR (adapts to any model) Assembly Line Robots = LLVM optimization passes Final Ca...
Join discussion