Hey! I'm Stefan. Welcome to my blog. I work primarily on compiler performance verification work, and
I write about things that generally interest me at the time. Enjoy!
Exploring Suboptimal Lattice Transfer Functions in LLVM with KnownBits
December 5, 2024
Transfer functions for abstract lattices are what allows many analyses such as LLVM's Known
Bits analysis to give correct information. However, by operating in the abstract domain, these
transfer functions leave possible information on the table. I explore lattices, concretization,
abstraction, and optimality through the example of saturated signed addition.
Read More
Unique Brainfuck Optimizations
November 10, 2024
Brainfuck is an infamous esoteric language, but there are unique optimizations that can be performed on
it, such as vector scan optimizations for loops like [>>]
, that can improve performance
beyond what an LLVM backend can achieve natively.
Read More
Loop Unrolling: GPU vs CPU
June 17, 2024
Loop unrolling is an essential optimization performed by compilers,
and it is also essential on both CPUs and GPUs alike. However, due to
the differences in architecture, the potential benefits of loop unrolling
are greater on GPUs than on CPUs, especially due to load batching.
Read More