New x86 Backend and… JavaScript Macros?
New Backend I’ve finally completed the rewrite of the Tachyon backend. This is the part of the compiler that takes our SSA form intermediate representation and turns it into machine code. It currently...
View ArticleA Radical Introduction to Programming
Java for the Masses A few years ago, when I was just starting my M.Sc. in computer science at McGill, I had to teach the COMP-202 Intro to Computing class. This is essentially an introductory...
View ArticleDesigning a toy CPU
A Positive Response I’m happy to see that my previous post, A Radical Introduction to Programming ended up generating quite a bit of discussion on r/coding. The reception was fairly warm overall. Most...
View ArticletoyCPU Project Update
Motivated by the positive response I got, I’ve been working on toyCPU (my assembly teaching platform) quite intensely in the last few days. The core design of the system is mostly finished and I have a...
View ArticleShort Update on toyCPU
I’m happy to say that toyCPU is still progressing rapidly. Thanks in part to a fellow redditor, Tom (thejsjunky), who has joined the effort and contributed JavaScript and assembly code. Since the last...
View ArticleA Simple JIT Compiler
In the last few days I’ve been prototyping a basic Just-In-Time (JIT) compiler for Higgs. I decided to start with a very simple design which is sometimes referred to as a tracelet JIT. This is simply a...
View ArticleDown the Rabbit Hole that is Inlining
Inlining is one of the most profitable optimizations a compiler can do. It’s profitable because it eliminates call and return overhead, but also because it can expose new optimization opportunities...
View ArticlePositive Results for Higgs
Great news! The Higgs GitHub repository has 204 stars and 22 forks at the time of this writing. Even better news, however, is that I’ve finally reached a point where Basic Block Versioning (BBV), the...
View ArticleMaybe we ought to have Numerical Coprocessors?
The past decade has seen the rise of GPGPUs. We’re leveraging the tremendous computational power of graphics cards to accelerate computationally intensive applications such as machine learning, video...
View Article
More Pages to Explore .....