Last Updated on March 31, 2026 by Vivekanand

Welcome to CoderMusings: A Systems Programming Blog
Welcome to CoderMusings. This systems programming blog is dedicated to exploring the invisible machinery making our software tick—from diving deep into systems programming, assembly language, and deep debugging, to dynamic binary analysis, reverse engineering, and exploit development.
Featured on the Systems Programming Blog: The Assembly Series
An ongoing, in-depth journey from learning how a program gets loaded into memory, down to x86-64/ARM64 calling conventions, system calls, and building a multi-architecture debugger from scratch. Every post on this systems programming blog is designed to take you closer to the metal.
Featured on the Systems Programming Blog: Compiler Internals
A deep dive into the invisible machinery that transforms your C code into machine instructions. Trace the entire compilation pipeline across GCC, Clang, and MSVC, exploring preprocessing, lexical analysis, ASTs, LLVM IR, optimization passes, and final code generation for both x86-64 and ARM64.
Latest Posts
- Register Allocation in Compilers: How Variables Fit into CPU Registers
by Vivekanand
Discover how compilers solve register allocation — mapping thousands of virtual registers to 16 (x86-64) or 31 (ARM64) physical ones. See graph coloring, spilling, and rematerialization with real Godbolt examples.
- Compiler Code Generation: How LLVM Turns IR into x86-64 and ARM64 Assembly
by Vivekanand
Last Updated on April 7, 2026 by Vivekanand Between the hardware-agnostic world of LLVM Intermediate Representation (IR) and the raw binary bytes your CPU executes lies the backend pipeline—the most platform-specific, meticulously engineered phase of the compiler. In our previous deep dive into LLVM IR, we explored how the compiler represents your logic using an…
Read more: Compiler Code Generation: How LLVM Turns IR into x86-64 and ARM64 Assembly
- The Ultimate Guide to Compiler Optimization Passes: Boosting Performance with -O2
by Vivekanand
Last Updated on April 7, 2026 by Vivekanand You’ve been there. You write a complex calculation in C, compile it, and it feels a bit sluggish. You open your `Makefile`, add `-O2` to your `CFLAGS`, recompile, and suddenly your program is executing three times faster. But what actually is the compiler doing under the hood?…
Read more: The Ultimate Guide to Compiler Optimization Passes: Boosting Performance with -O2
- LLVM IR Tutorial: The Hidden Language Between Your C Code and Assembly
by Vivekanand
Master LLVM IR in this hands-on tutorial. Learn SSA form, basic blocks, and PHI nodes with real Clang output and Godbolt examples — from C to IR to x86-64 and ARM64.
- Compiler Lexer & Parser Demystified: How Compilers Read Your C Code
by Vivekanand
Learn how a compiler lexer and parser transform C source into tokens and ASTs. Hands-on with Clang’s -dump-tokens and -ast-dump across real examples.