Request for reviews (S): 7064302: JDK7 build 147 crashed after testing my java 6-compiled web app

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Jan 12 11:45:32 PST 2012


Thank you, Tom

I will move dumping code as you suggested.

Thanks,
Vladimir

Tom Rodriguez wrote:
> On Jan 12, 2012, at 10:35 AM, Vladimir Kozlov wrote:
> 
>> http://cr.openjdk.java.net/~kvn/7064302/webrev
>>
>> 7064302: JDK7 build 147 crashed after testing my java 6-compiled web app
>>
>> Very rare case when CMoveP control edge is CountedLoop back control. During loop iteration splitting CMoveP clone is placed on entry path of post-loop. Later when pre-loop is created clone_loop() code pulls Bool and Cmp nodes through Phi down to CMoveP clone. Note that Phi's region is above CMoveP clone's control which is fallthrough path of post-loop's zero-trip guard.
>>
>> Split through Phi optimization tries to reverse this merged subgraph and incorrectly splits this CMoveP node. As result 2 clones of CMoveP were placed at the same place as original node. It creates bad graph.
>>
>> The fix itself is very small: don't split CMove node if it's control edge is different from split region. Large part of changes is additional debug output in build_loop_late_post() where bad graph is detected. It helped me investigate this problem.
> 
> The fix looks fine and the new dumping code looks extensive, which should really help debugging these problems.  Can you move the debugging code into it's own function?  It's in the middle of a relatively simple loop and completely dwarfs the body.
> 
> tom
> 
>> I also added missing initialization of local variable.
>>
>> I was not able to construct regression test but customer verified the fix.
>>
>> Thanks,
>> Vladimir
> 


More information about the hotspot-compiler-dev mailing list