Nicolai Hähnle
nhaehnle.blogspot.com · Personal blog · on HN since 2018
Nicolai Hähnle, a compiler engineer working on LLVM and AMD GPU tooling, writes about code review, IR design and building HIP.
What HN saysCommenters respect him as 'one of our best'; HN links his posts on patch-series code review, LLVM dialects and setting up HIP.
15HN people shared it
4linked it in comments
14stories submitted
24story points
2 years agolast shared
2018people per year2026
Most-shared posts
- 1Thoughts on code reviews and the power of patch series4 people · 3 points · first shared 2020 · discussion on HN
- 2Can memcpy be implemented in LLVM IR?2 people · 7 points · first shared 2021 · discussion on HN
- 3Can memcpy be implemented in LLVM IR?2 people · 5 points · first shared 2021 · discussion on HN
- 4Software testing, and why I'm unhappy about it2 people · 3 points · first shared 2023 · 1 comments on HN
- 5Diff modulo base, a CLI tool to assist with incremental code reviews2 people · 2 points · first shared 2023 · discussion on HN
- 6Building a HIP Environment from Scratch2 people · 1 points · first shared 2024 · discussion on HN
- 7An Update on Dialects in LLVM1 people · 2 points · first shared 2023 · discussion on HN
- 8They want to be Thoughts on code reviews and the power of patch series1 people · 1 points · first shared 2021 · discussion on HN
- 9Tablegen 5 dags1 people · first shared 2023
- 10Tablegen 4 resolving variables1 people · first shared 2023
- 11Posits1 people · first shared 2018
- 12Tablegen 3 bits1 people · first shared 2023
- 13Tablegen 2 functional programming1 people · first shared 2023
- 14Tablegen 1 what has tablegen ever done1 people · first shared 2023
- 15Compiling shaders dynamically uniform1 people · first shared 2020
What HN people wrote when they linked it
JonChesterfield · 2024-02-12
Hähnle is one of our best, that'll be solid. http://nhaehnle.blogspot.com/2024/02/building-hip-environment-from-scr… Looks pretty similar to how I build it.
Side point, there's a driver in your linux kernel already that'll probably work. The driver that ships with rocm is a newer version of the same and might be worth building via dkms.
Very strange that the rocm github doesn't have build scripts but whatever, I've been trying to get people to publish those for almost five years now and it just doesn't seem to be feasible.
nhaehnle · 2021-06-25
My understanding is that they're not necessarily asking for the commits to be squashed, they're asking for them to be submitted together as a patch series.
Patch series are an important part of a healthy review workflow because they allow both a micro and a macro view of changes. I have written about this before: http://nhaehnle.blogspot.com/2020/06/they-want-to-be-small-they-want-t…
ozinenko · 2020-02-27
(Early disclaimer: I am an author of the paper and of MLIR, but this is a personal opinion)
I am somehow surprised by the reaction but at the same time I expected as much. We chose to make MLIR open-source early in the design and development, may be half a year after the first line was written, because we value open source and believe that a community can help build significantly better things that serve a broader audience. I find it unreasonable to expect a new infrastructure to have the same amount of frontends/optimizers/backends/utilities/bells-and-whistles as a project that has been around for 17 years and has got contributions from hundreds of developers employed by dozens of companies. 15 years ago, LLVM only had a fraction of what it has today... By making MLIR open from the start, we let everybody add the whistles they need, or collaborate on them with other people who also need them. That is sort of the point of open source community. Personally, I am happy to work with anybody who shares my needs, but I won't do somebody else's job instead of them. In a sense, MLIR does not intend to solve any specific compiler problem, but rather give people tools that help them focus on the problem at hand instead of IR infrastructure, storage, serialization etc.
The alternative would have been to develop it internally for a long time, driven exclusively by the internal needs, and then just throw it over the fence into public. It would have had significantly more "features". I…
matt_d · 2023-12-13
FWIW, its use has grown over time, with new applications most significantly including MLIR (Multi-Level IR compiler framework, which allows you to define your own intermediate representations as well as compiler passes operating on them), https://mlir.llvm.org/docs/DefiningDialects/Operations/
The docs have been improving, https://llvm.org/docs/TableGen/
I also like these resources:
Lessons in TableGen
FOSDEM 2019; Nicolai Hähnle
https://fosdem.org/2019/schedule/event/llvm_tablegen/
- What has TableGen ever done for us?, http://nhaehnle.blogspot.com/2018/02/tablegen-1-what-has-tablegen-ever…
- Functional Programming, http://nhaehnle.blogspot.com/2018/02/tablegen-2-functional-programming…
- Bits, http://nhaehnle.blogspot.com/2018/02/tablegen-3-bits.html
- Resolving variables, http://nhaehnle.blogspot.com/2018/03/tablegen-4-resolving-variables.ht…
- DAGs, http://nhaehnle.blogspot.com/2018/03/tablegen-5-dags.html