On Mon, 2016-03-14 at 18:55 -0400, Kim Barrett wrote: [...] > > > > 2. A number of optimisations in GCC 6 lead to a broken JVM. We need to > > add -fno-delete-null-pointer-checks and -fno-lifetime-dse to get a > > working JVM.
> I don't have any suggestions for why gcc6 might be having problems > because of -flifetime-dse, or how to find them. Do you? This seems > to be a relatively new option, having been introduced in gcc4.9(?), > and seems to have always been on by default since being introduced. > Again, this could be a matter of gcc6 doing a better job of > recognizing relevant situations, or a bug in that not-yet-released > version. FWIW: GCC 6 probably does a better job at dead store elimination. Here is the Fedora bug and the comment from Andrew Haley where we discovered this: https://bugzilla.redhat.com/show_bug.cgi?id=1306558#c47 Example (for a debug build): http://hg.openjdk.java.net/jdk9/hs-rt/hotspot/file/4216fd7e4301/src/share/vm/opto/node.hpp#l217 n->_in is being assigned before it's constructed. In JDK 8 there is n- >_out being assigned to outside the ifdef ASSERT. Cheers, Severin