All blogs / Performance / optimization
Neil Henning
This is where Neil Henning writes up things of interest.
- Posts
- 100 from 1 Jan 2001 to 5 Jun 2026
- Posting
- now and then (3 in the last year)
- Kind
- personal blog
- Feed
- https://www.neilhenning.dev/index.xml
2026 2
2025 1
2024 4
2023 9
- How long does it take to compile LLVM 17 on a Raspberry PI 5
- How long does it take to compile LLVM 17 on a Raspberry PI 4
- My Take On Return To Office and Remote Work
- How costly is changing the hardware rounding mode?
- New Web Domain & Mastodon Handle
- Using Fibonacci Hashing in hashmap.h
- Making Hashing Faster in hashmap.h
- New Year Cleanup
- I'm Pretty Much Done With Twitter
2022 9
- I've Joined Epic to Work on Verse
- Floating Point Compression Revisited
- I'm Leaving Unity
- Floating Point Compression - How Small Can We Get?
- LLVM 15 Compile Time With Burst
- Adding UTEST_SKIP to utest.h
- Making the LLVM Legacy Pass Manager 1.65x Faster
- Switching subprocess.h to posix_spawn
- Updated Website Theming
2021 5
2020 18
- Advent of Code 2020 - Review
- Advent of Code 2020
- Exploring Hourglass APIs in Rust
- Introducing hashmap.h
- Asynchronous Reading in subprocess.h
- Adding fixtures to ubench.h
- I'm now 99% Confident in ubench.h
- White Guilt and Juneteenth
- Introducing ubench.h
- Simple C Command Line Parser
- utest.h Now Supports Whole Program Optimization
- How to Test Rust Command Line Applications
- Fixed Up RSS
- Lessons of a Remote Worker
- Extracting the json.h README.md Code Samples For Compiling
- C89 & Single Header json.h
- Some Miscellaneous Library Improvements
- utest.h
2019 8
- FPSCEV - Improving the Range Analysis
- Farewell AMD / Hello Unity
- Using Floating-Point Scalar Evolution to Simplify Instructions
- Using Floating-Point Scalar Evolution to Propagate Fast-Math Flags
- An Experimental Floating-Point Scalar Evolution
- Comparing utest.h against googletest and jctest
- Switching my blog to Hugo
- Introducing bump_alloc - my new Rust crate
2018 7
2017 9
- Introducing process.h!
- Cross compiling Sollya to Windows with Emscripten
- LLVM & CRT - auto-magically selecting the correct CRT
- Slides from my Khronos Munich Chapter talk
- I'm speaking at the Munich Khronos Chapter Meeting 13th October 2017
- OpenCL -> Vulkan: A Porting Guide (#3)
- OpenCL -> Vulkan: A Porting Guide (#2)
- OpenCL -> Vulkan: A Porting Guide (#1)
- Adding JSON 5 to json.h
2016 12
- Adding loops (MPC -> LLVM for the Neil Language #5)
- Adding branching (MPC -> LLVM for the Neil Language #4)
- Introducing YARI-V - an experiment on SPIR-V compression
- spirv-stats update - exposing more information
- spirv-stats - a tool to output statistics of your SPIR-V shader modules
- Adding type identifiers (MPC -> LLVM for the Neil Language #3)
- json.h update - fixing bugs found by nativejson-benchmark
- Cleaning up the parser (MPC -> LLVM for the Neil Language #2)
- Hooking up MPC & LLVM
- A simple Vulkan Compute example
- Allocators in json.h!
- git pre-commit clang-format hook
2015 15
- Full Simplified JSON support in json.h
- Introducing utest.h!
- (Partial) Simplified JSON support in json.h
- json.h performance (update!)
- json.h performance (vs other C/C++ JSON parsers)
- Json h
- utf8.h progress!
- Utf8 h
- Length vs size for array dimensions
- On the use and abuse of size_t
- Connecting a build node to Jenkins on Raspberry Pi 2
- Running your first job on the Raspberry Pi 2 / Jenkins
- Installing Jenkins on Raspberry Pi 2
- Khronos/EuroLLVM talk - Why SPIR-V?
- Raspberry Pi 2 Dot Product Test