RFR (S): 7169782: C2: SIGSEGV in LShiftLNode::Ideal(PhaseGVN*, bool)

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Jun 5 18:01:01 PDT 2012


Looks good and thank you for adding regression test from old bug.
One thing about code style in Hotspot - we use 2 spaces indents and no tabs:

+  if (igvn != NULL) {
+      igvn->remove_dead_node(hook);
+  } else {
+      for (int i = 0; i < 4; i++) {
+          hook->set_req(i, NULL);
+      }
+  }

Also, please, run full CTW testing. And I will do the push for you tomorrow.

Thanks,
Vladimir

On 6/5/12 3:31 PM, Vladimir Ivanov wrote:
> http://cr.openjdk.java.net/~vi/7169782/webrev.01/
>
> During compilation, u0 in long_by_long_mulhi can become dead during interim transformations. It makes locally cached
> node pointer useless and the compiler crashes when trying to traverse node's dependencies. The fix is to artificially
> keep u0 node alive till the end of the graph construction using dummy hook node trick.
>
> Also:
> - did a cleanup: fixed lifetimes of other shared interim nodes to avoid similar problems in the future
> - added a regression test for 6732154
>
> Testing: VM regression tests
>
> Thanks!
>
> Best regards,
> Vladimir Ivanov


More information about the hotspot-compiler-dev mailing list