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