Hello, I’am iead.
- Either way engineer
- ctf player
- Connoisseur of compiler and virtual machines.
|
|
leetonidas |
|
|
contact@iead.dev |
My latest Posts
- Important considerations when designing a new virtual ISA
Published: Tags: LLVM The shape of the ISA significantly shapes the implementation of the LLVM backend. Changes to the properties of the VM, such as how it interacts with the host, may require reengineering large parts of the backend. Getting the cornerstones of the architecture right is foundational to the implementation. All the points I will highlight in this post come back to the same question: what purpose does the VM fulfill, and how much pain can you endure or want to inflict?
For this post, I am making a few assumptions to keep the scope manageable: the VM is single-threaded, memory access is atomic, and exceptions are not yet supported. These topics will be covered in a follow-up post once I have built a prototype.
- Building Your First LLVM Optimization Pass
Published: Tags: llvm C++ LLVM is a powerful toolchain used by many modern programming languages such as Rust and Swift, but even older languages like C/C++ can make effective use of it. It not only translates intermediate code into machine-specific instructions but also optimizes it through a series of analysis and transformation passes.
This blog post aims to demystify LLVM optimization passes and guide you through writing your first one.
- Anatomy of LLVM Backends
Published: Tags: LLVM One difficulty when working with LLVM backends is the sheer amount of files, classes and ultimately code that needs to be present in order to get a LLVM backend going. The aim of this post is to give a very brief overview over the necessary classes.