GCC 8 Link Time and Interprocedural Optimization
11–14 of 14 posts
Re: GCC 8 Link Time and Interprocedural Optimization
#12you 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
Re: GCC 8 Link Time and Interprocedural Optimization
#13when i was a full-time hobbyist webdev i was surprised when i learned c compilers don't do whole-program optimization by default but limit themselves by optimizing each translation unit separately (i guess it makes things simpler) 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 call…
https://github.com/felix-lang/felix
http://felix-documentation-master.readthedocs.io/en/latest/m...
Re: GCC 8 Link Time and Interprocedural Optimization
#14Earlier quoted context omitted.
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.
AFAIR GCC bootstrap builds by default with "-g -O2". There are 3 stages: 1) use system compiler to compile GCC's source code, 2) use resulting binary to build same source, 3) use binary from 2) to build source one more time. After all stages the binaries from stage 2 and 3 are compared byte for byte if they are identical. Bootstrap failures are taken very seriously by the GCC developers. So I really doubt that -g and…