GCC 8 Link Time and Interprocedural Optimization
hubicka.blogspot.com
hubicka.blogspot.com
I've never thought it's possible. Rebuild after the core dump ? Rather than build with debug info and strip it away.
In the past the effects of using both -g and -O* flags could interact each other because they can both affect how registers are allocated, how call stacks are setup, how functions are inlined, etc. In other words, adding -g by itself made the build non-reproducible.
If that's no longer true in GCC 8 it's great news.
In my experience, this is largely not true. However, what is plausible is that before GCC 8, LTO, which, for speed reasons, can split work across multiple threads, was not deterministic, and GCC 8 might have made that better.
Bootstrap failures are taken very seriously by the GCC developers. So I really doubt that -g and -O* lead to non-deterministic builds.
you can get "LTO" in javascript by using a minifier together with something like webpack which can inline modules when it's safe to do so (instead of putting them in functions that are called by the module loader and can't be minified away), so i assumed "real" compilers must do that stuff a lot better with the language being less dynamic
https://github.com/felix-lang/felix
http://felix-documentation-master.readthedocs.io/en/latest/m...
How many __builtin_expects can it remove?