They are all regressions on micro-benchmarks (Full list here), but some of them are in the 10-20% ballpark and quite visible (read: not just lost in the noise).I'll try to take a look to both binaries and see if anything big bumps to my attention, but will be quite hard to reverse eng the root cause from the binaries.
--
You received this message because you are subscribed to the Google Groups "gn-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gn-dev+un...@chromium.org.
So, I did diff the symbols of the build artifacts produced by the waterfall before and actual Bruce's CL.I was expecting the binaries to be identical % symbol address reshuffling. Instead I see that some symbols got somehow compiled differently. I wonder if this interferring with link time optimization.The list of the ~200 different symbols is the following: http://pastebin.com/ih73BBNv (the last argument is the size of the symbol).It's not "lots of symbols" if you consider that in total there are ~812272 symbols and only ~200 changed. But I suppose enough to make a difference.The produced assembly looks quite different for those, for instance:
Don't we do LTO on android?
quick thoughts from the bus, no links :)
we are not using lto on android
we are not using orderfile for chrome public afair
shuffling the binary does affect performance a lot, down to masking out slews of compiler optimizations, there was a paper published about this a couple you years ago or so
modern toolchains work in a very entertaining multi-pass way, search for "instruction relaxation"
yay performance, as non-intuitive as possible, but explainable after some time digging :)