> Please also prioritize fixing P1s and avoid pushing in risky > fixes for P2s that might end up causing regressions. We are still > seeing way too many changes in the IPA area (hi Honza!).
Hello :) GCC 5 is a busy release from IPA point of view indeed. Here is a quick summary what is still on my radar for GCC-5: Bug 62051 - [4.9/5 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively I think this one can be waved away as invalid code though tracking types with visibility default attached to it may be a safe fix and may make transition to GCC 5 smoother. I do not think it should be P1 Bug 65475 - [5 Regression] ICE in odr_vtable_hasher::equal (segmentation fault) Segfault is fixed (so no longer P1 IMO) I want to tamn down the verbosity of ODR violation warnings at weekend (we probably do not want more than one warning per type) Bug 64860 - [5 Regression] multiple definition of typeinfo in 5.0 (4.9.2 works)) This is about incremental linking with LTO but without Andi's patches to make it actually work. I think we can fix the linker errors eaisly (will do so soon), but I do not see much utility in it. Bug 61886 - [4.8/4.9/5 Regression] LTO breaks fread with _FORTIFY_SOURCE=2 This one I think may need to wait for 5.2. I have fix in works and it is not too intrusiove so far. My main concern is about getting aliases more commonly appearing and exposing semi-latent bugs. We did a lot of progress making them work thanks to ICF making aliases mainstream. Main issue IMO is with alias analysis (that is not hit by ICF), but to fix 61886 we may want to introduce the transparent aliases only for function symbols that is IMO quite safe. Once I am done I will post full patch for RMs to consider. We still have some inliner performance issues: - I analyzed bzip, crafty and regressions https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65478 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65483 The first one is easy to fix at ipa-cp side that I hope Martin will look into - Igor reports eon regression I plan to analyze on weekend - tramp3d is about 10% above GCC 4.9 codesize - I think this is fine. trakced in: Bug 65076 - [5 Regression] 16% tramp3d-v4.cpp compile time regression There are two parameter tweeks I am considering (and running benchamrks over weekend): - We may run into issues with current 15% unit growth is bit too tight. I am planning to re-benchmark firefox and see if bumping to 20% makes useful difference. With all bugfixes in area it may not - -fprofile-use inlining has currently no bound on size of function to inline when call is considered resonably hot. This makes me bit nervous and I may limit it by inline-insns-single without LTO. (with LTO overall unit growth works well) Chromium and Firefox has some ODR violation warnings that may need a bit of love. I think there are some that are just invalid (need to double check) and we get some unwanted verbosity here too. ICF at Chromium needs 15% of WPA time (and saves 10% size in addition to gold ICF). Martin has patches to improve hashing, one was approved the other (adding simple hash for types) will be hopefully done by Monday. Honza