Fast Exceptions

I’ve written a new unwinding runtime for GCC, and benchmarked it against various error handling regimes. It’s incredibly fast, 10x faster than the current implementation on x86 linux, but still slower than a normal function call (3x slower) and sometimes faster than return-type error handling. Benchmark code: https://github.com/DolphinGui/eh-bench GCC branch with patches: https://github.com/DolphinGui/gcc/tree/x86-exceptions-fr binutils branch with patches: https://github.com/DolphinGui/binutils/tree/x86-exceptions Background Modern error handling in C++ generally falls under two methods: return type error handling and exceptions....

2025-09-15 · Shin Umeda

Exceptions

For the past couple months, I’ve been trying to get exceptions to work on AVR as a hobby project. After several months of work, I’ve done it. Exceptions work, you can just include <vector> and it just works. How to use it Currently I put prebuilt toolchains on github. My changes are currently a bunch of patches to gcc 13.2.0, binutils, and a few others. What I actually did I’ve reimplemented libunwind, the personality function, and also cfi macros by replacing them with my own stuff....

2024-06-03 · Shin Umeda