GCC 8 Link Time and Interprocedural Optimization
hubicka.blogspot.com
GCC 8 Link Time and Interprocedural Optimization
1–10 of 14 posts
Re: GCC 8 Link Time and Interprocedural Optimization
#2I've never thought it's possible. Rebuild after the core dump ? Rather than build with debug info and strip it away.
Re: GCC 8 Link Time and Interprocedural Optimization
#3Re: GCC 8 Link Time and Interprocedural Optimization
#4>so you can rebuild binary with debug info after your program core dumped and use it to debug the core dump I've never thought it's possible. Rebuild after the core dump ? Rather than build with debug info and strip it away.
Re: GCC 8 Link Time and Interprocedural Optimization
#5>so you can rebuild binary with debug info after your program core dumped and use it to debug the core dump I've never thought it's possible. Rebuild after the core dump ? Rather than build with debug info and strip it away.
If your build system is reproducible there is no reason this would not work.
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.
Re: GCC 8 Link Time and Interprocedural Optimization
#6Earlier quoted context omitted.
If your build system is reproducible there is no reason this would not work.
Maybe that's the case now, with GCC 8, but historically that hasn't been true. 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.
Re: GCC 8 Link Time and Interprocedural Optimization
#7Earlier quoted context omitted.
If your build system is reproducible there is no reason this would not work.
Maybe that's the case now, with GCC 8, but historically that hasn't been true. 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.
Bootstrap failures are taken very seriously by the GCC developers. So I really doubt that -g and -O* lead to non-deterministic builds.
Re: GCC 8 Link Time and Interprocedural Optimization
#8Re: GCC 8 Link Time and Interprocedural Optimization
#9Re: GCC 8 Link Time and Interprocedural Optimization
#10How many __builtin_expects can it remove?