Top all-time · #1690
Matt Godbolt
Personal blog · xania.org · on HN as mattgodboltprogramminghardware
Matt Godbolt's personal blog at xania.org covers programming and hardware. Since 2012, 45 different Hacker News readers have linked it 106 times, most often “Advent of Compiler Optimisations 2025”. It is still writing: the last post was on 2026-08-30, and you can follow it by feed.
Most-linked posts?
- Advent of Compiler Optimisations 20254 people · 5 mentions · first linked 2025-11-13
- JavaScript Sega Master System Emulator4 people · 4 mentions · first linked 2012-10-19
- Inlining – The Ultimate Optimisation3 people · 3 mentions · first linked 2025-12-17
- How it works: Compiler Explorer3 people · 3 mentions · first linked 2016-09-04
- When SIMD Fails: Floating Point Associativity3 people · 3 mentions · first linked 2025-12-21
- How Compiler Explorer Works in 20253 people · 3 mentions · first linked 2025-06-03
- The runtime performance of Rust for a path tracer3 people · 3 mentions · first linked 2015-05-26
- Elite's crazy tokenized string routine2 people · 3 mentions · first linked 2014-06-14
- Multiplying our way out of division2 people · 2 mentions · first linked 2025-12-07
- Pop Goes the Population Count?2 people · 2 mentions · first linked 2025-12-11
What Hacker News says?
There's a post on his blog about how the entire thing runs a bunch of compilers on EC2: http://xania.org/201609/how-compiler-explorer-runs-on-amazon
Comment linking /201609/how-compiler-explorer-runs-on-amazon
on “GodBolt: Enter C, get Assembly”Submitted Why xor eax, eax? as a story · 576 points
HN discussionAlso, look at Matt's write up of how this works: http://xania.org/201609/how-compiler-explorer-runs-on-amazon as a pragmatic example (incl. all tools & configs) of how to build an auto scaling & deploying site, without overdosing on kool-aid.
Comment linking /201609/how-compiler-explorer-runs-on-amazon
on “GodBolt: Enter C, get Assembly”Submitted Advent of Compiler Optimisations 2025 as a story · 384 points
HN discussionHere's a description of the file format used by BBC Basic: http://xania.org/200711/bbc-basic-v-format That's Basic V, which was the variant used on the ARM-based Archimedes, but it's the same file format as the 6502 machine Basics. Note that the line numbers used by GOTO and GOSUB were specially flagged --- this was so the RENUMBER command could find them. It also meant that computed gotos weren't renumbered... (Of…
Comment linking /200711/bbc-basic-v-format
on “Donkey – A computer game included with early versions of PC DOS”Submitted Compiler Explorer and the promise of URLs that last forever as a story · 357 points
HN discussionGodbolt is such an amazing tool, and amazing that it's free. For a random example from a few days ago, I wanted to understand how Rust compiles various approaches to doing pairwise addition between a f64 vector and a f32 vector: https://godbolt.org/z/9envsT . Profiling can tell me which is fastest, but godbolt is really helpful for understanding why. (Fun fact I learned recently, after years of using it: Godbolt is…
Comment linking /MattGodbolt
on “Compiler Explorer”Submitted Addressing the adding situation as a story · 272 points
HN discussionPart of the Advent of Compiler Optimisations https://xania.org/AoCO2025 Loving it so far!
Comment linking /AoCO2025
on “Addressing the adding situation”Submitted You can't fool the optimizer as a story · 267 points
HN discussionCase in point: https://xania.org/201405/jsbeeb-getting-the-timings-right-cp... : "So far so good - it seems unusual to our modern “memory is slow” mindset that the processor touches RAM every cycle, but this is from an age where processors and RAM were clocked at the same speed." This page also shows that the 6502 happily did extra memory reads. In fact, the memory had bandwidth to spare. http://www.6502.org/users/a…
Comment linking /201405/jsbeeb-getting-the-timings-right-cpu
on “Texas Instruments’ Biggest Blunder: The TMS9900 Microprocessor”Submitted How Compiler Explorer Works in 2025 as a story · 232 points
HN discussionhttp://xania.org/201505/on-rust-performance (The "faster" bit isn't important; various reasons might have made C++ slower than Rust for this, but what is important is that perf was comparable)
Comment linking /201505/on-rust-performance
on “Writing a website in Rust”Submitted Happy 10th Birthday Compiler Explorer as a story · 214 points
HN discussionIndeed! Full details of the string routine at http://xania.org/201406/elites-crazy-string-format if you're interested in quite how mad it was!
Comment linking /201406/elites-crazy-string-format
on “Asmttpd – Web server for Linux written in amd64 assembly”Submitted GCC Explorer as a story · 126 points
HN discussionAssembly used to be all the rage. At Uni I couldn't afford a C compiler (and there were no free versions for my platform, RISC OS) so I ended up writing a whole IRC Client, GUI and scripting language all in ARM assembler. A few tattered notes of it at: http://xania.org/200711/irbasic but sadly most is lost to time.
Comment linking /200711/irbasic
on “An IRC Bot in Arm Assembler”Submitted How it works: Compiler Explorer as a story · 107 points
HN discussionI've started taking the Beeb Elite apart, so far as far as the text printing routine: http://xania.org/201406/elites-crazy-string-format And of course if you want to relive the glory in your browser: http://bbc.godbolt.org/?disc=elite.ssd&autoboot
Comment linking /201406/elites-crazy-string-format
on “The Making of Elite”Submitted Forcing code out of line in GCC and C++11 as a story · 96 points
HN discussionWeird and wonderful it was, but also amazingly hackable. Using similar tricks to the allocator, I was able to "ROM patch" RISC OS 3.1 to look like 3.5 [1] using only a few bytes of module space. I do miss those days :) [1]: http://xania.org/201212/finallook-a-risc-os-3.1-hack
Comment linking /201212/finallook-a-risc-os-3.1-hack
on “Sophie Wilson, Acorn and the development of ARM”Submitted Elite's crazy tokenized string routine as a story · 88 points
HN discussionJavaScript emulators also use this internal code generator approach. For example the jsbeeb 6502 emulator code is generated from the opcodes text and then 'eval'ed to yield the actual code to run for each instruction. See http://xania.org/201405/jsbeeb-getting-the-timings-right-CPU towards the end.
Comment linking /201405/jsbeeb-getting-the-timings-right-CPU
on “X86 assembler in Bash (2001)”Submitted Emulating a 6502 with cycle-perfect timing as a story · 84 points
HN discussionI've learned a lot from Matt Godbolt's blog https://xania.org/ . He's the author of Compiler Explorer, also works at https://aquatic.com/ .
Comment linking /
on “Ask HN: I am interested in reading about techniques HFT firms use”Submitted The Ivy Bridge and Haswell BTB as a story · 79 points
HN discussionI posted an article on this pretty recently: with optimisation on, Rust is comparable to C++ : http://xania.org/201505/on-rust-performance
Comment linking /201505/on-rust-performance
on “Interactive C++ Assembly Explorer”Submitted Emulating a BBC Microcomputer in Javascript as a story · 62 points
HN discussionThat's very much an issue with SIMD, especially where floating point numbers are concerned. Matt Godbolt wrote about it recently. https://xania.org/202512/21-vectorising-floats TLDR, math notation and language specify particular orders in which floating point operations happen, and precision limits of IEEE float representation mean those have to be honoured by default. Allowing compilers to reorder things in breach…
Comment linking /202512/21-vectorising-floats
on “SIMD City: Auto-Vectorisation”Submitted Pop Goes the Population Count? as a story · 61 points
HN discussion