Top all-time · #3309
Honza Hubička
Personal blog · hubicka.blogspot.comprogrammingsystems
Honza Hubička's personal blog at hubicka.blogspot.com covers programming and systems. Since 2014, 23 different Hacker News readers have linked it 29 times, most often “Building libreoffice with GCC 6 and LTO”. The last post was in 2019, but the archive is still widely read.
Too few sampled comments (11) to say how often HN recommends it.?
Why HN links it
HN readers link this blog for deep dives into compiler optimisation: GCC link-time and inter-procedural optimisation, devirtualisation, and GCC and Clang build benchmarks.
Summarised by Claude from a sample of 11 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Compilers, math, history of photography, ...
Most-linked posts?
- Building libreoffice with GCC 6 and LTO5 people · 5 mentions · first linked 2016-03-18
- GCC 9: Link-time and inter-procedural optimization improvements4 people · 4 mentions · first linked 2019-05-03
- /2014/04/devirtualization-in-c-part-5-feedback.html2 people · 2 mentions · first linked 2014-06-09
- /2014/04/linktime-optimization-in-gcc-2-firefox.html2 people · 2 mentions · first linked 2014-04-22
- Clang compiles much slower and bigger Firefox binaries than GCC 8/92 people · 2 mentions · first linked 2018-12-30
- Firefox 64 built with GCC and Clang2 people · 2 mentions · first linked 2018-12-15
- GCC 9: Link-time and inter-procedural optimization improvements2 people · 2 mentions · first linked 2019-05-03
What Hacker News says?
Not that I prefer Java where performance is important, but profile based optimization combined with optimizing across translation units is non-trivial. C/C++ compilers have been increasing support for these more recently. Jan Hubicka's blog has a good example [1]. I have to wonder if they plan to keep the codebase portable though. One of the major benefits of Java was that nearly everything has a JVM. [1] http://hub…
Comment linking /2014/04/linktime-optimization-in-gcc-2-firefox.html
on “Microsoft's forthcoming Minecraft Education Edition is written in C++”Submitted Firefox 64 built with GCC and Clang as a story · 188 points
HN discussionCorrection. Clang used to compile much faster years ago. But nowadays GCC-6 actually compiles faster than clang-3.8.0. See e.g.: http://hubicka.blogspot.com/2016/03/building-libreoffice-wit...
Comment linking /2016/03/building-libreoffice-with-gcc-6-and-lto.html
on “GCC 6.1 Released”Submitted GCC 8 Link Time and Interprocedural Optimization as a story · 143 points
HN discussionRelated link: GCC 9: Link-time and inter-procedural optimization improvements https://hubicka.blogspot.com/2019/05/gcc-9-link-time-and-int...
Comment linking /2019/05/gcc-9-link-time-and-inter-procedural.html
on “GCC 9.1 Released”Submitted Even more fun with building and benchmarking Firefox with GCC and Clang as a story · 100 points
HN discussionSome C++ compilers support "fast path" devirtualization via profiling feedback: http://hubicka.blogspot.com/2014/04/devirtualization-in-c-pa... As you suggest, it's a little misleading to talk about the runtime cost of a virtual or indirect function call in isolation. The most significant cost is often the resulting inability of the compiler to inline and perform further optimizations across the caller and callee.
Comment linking /2014/04/devirtualization-in-c-part-5-feedback.html
on “Operation Costs in CPU Clock Cycles”Submitted Link-time optimization in GCC, part 3 – LibreOffice as a story · 100 points
HN discussion"When LTO is used". For more info about LinkTimeOptimization and Firefox see the recent blog post from one of its main implementors: http://hubicka.blogspot.com/2014/04/linktime-optimization-in...
Comment linking /2014/04/linktime-optimization-in-gcc-2-firefox.html
on “GCC 4.9.0 released”Submitted Link time and inter-procedural optimization improvements in GCC 5 as a story · 65 points
HN discussionIt is Google's blogger.com. I am not very advanced user of it and generally just use whatever it provides for me. The link is off. This link http://hubicka.blogspot.com/2018/12/even-more-fun-with-build... renders better in general. PS: I found it too ironic to mention in the blog, but I had to uninstall mobile firefox to get the two-level application needed to submit a patch :)). For some reason Google authentificat…
Comment linking /2018/12/even-more-fun-with-building-and.html
on “Even more fun with building and benchmarking Firefox with GCC and Clang”Submitted Clang compiles much slower and bigger Firefox binaries than GCC 8/9 as a story · 46 points
HN discussionYes, LLVM was designed with speed in mind. However, look at how much faster compile times are in JS VMs compared to LLVM; LLVM's slow compile times are why none of them use it, even though they tried (e.g. WebKit which is dropping LLVM). A lot of SSA-based JITs are just a lot faster than LLVM. I think it's a matter of tradeoffs. LLVM has multiple IRs on the way to machine code, some quite large, which let it emit pr…
Comment linking /2016/03/building-libreoffice-with-gcc-6-and-lto.html
on “New SSA Back End for the Go Compiler (2015)”Submitted Devirtualization in C++, part 6 – asking user for help as a story · 31 points
HN discussion> Most our perf issues were with limiting draw calls and optimizing shaders, not method calling. Sounds like the work done by tree traversals weren't high overhead in general for your workload. But it does matter for some workloads. > Similarly, I worked a lot on a browser engine in the past and virtual method dispatch was again not this clear cut performance killer. We're seeing large gains from, as far as we can t…
Comment linking /2014/04/devirtualization-in-c-part-5-feedback.html
on “Is Go an Object-Oriented Language?”Submitted Firefox 64 – GCC vs. Clang as a story · 10 points
HN discussionThis article is way too outdated. Also, who the heck uses -flto on GCC 4.7.1? LTO is experimental in GCC 4.7.1 and will make any application nigh-impossible to debug. Here's something more relevant to modern times: http://hubicka.blogspot.com/2019/05/gcc-9-link-time-and-inte...
Comment linking /2019/05/gcc-9-link-time-and-inter-procedural.html
on “GCC x86 Performance Hints (2012)”Submitted Devirtualization in C++, Part 7 (Enforcing One Definition Rule) as a story · 8 points
HN discussionJan Hubička worked on much of the devirtualization in GCC and posted a blog about how it works here: http://hubicka.blogspot.com/2014/01/devirtualization-in-c-pa...
Comment linking /2014/01/devirtualization-in-c-part-1.html
on “C++20 Oxymoron: Constexpr Virtual”Submitted Even more fun building and benchmarking Firefox with GCC and Clang as a story · 5 points
HN discussionCompilers will also speculatively devirtualize under some circumstances. https://hubicka.blogspot.com/2014/02/devirtualization-in-c-p...
Comment linking /2014/02/devirtualization-in-c-part-4-analyzing.html
on “Inlining – The Ultimate Optimisation”Submitted GCC 9: Link-time and inter-procedural optimization improvements as a story · 4 points
HN discussionSubmitted GCC 9: Link-time and inter-procedural optimization improvements as a story · 4 points
HN discussionSubmitted Linktime optimization in GCC, part 1 – brief history as a story · 3 points
HN discussionSubmitted Building libreoffice with GCC 6 and LTO as a story · 3 points
HN discussionSubmitted GCC 9 Interprocedural Optimization Improvements as a story · 2 points
HN discussionSubmitted GCC 9: Link-time and inter-procedural optimization improvements as a story · 2 points
HN discussionSubmitted Building libreoffice with GCC 6 and LTO as a story · 2 points
HN discussionSubmitted Building libreoffice with GCC 6 and LTO as a story · 1 points
HN discussion