Request for reviews (XS): 6866651: Regression: simple int sum crashes jvm (build 1.6.0_14-b08 and 1.7.0-ea-b59)
Vladimir Kozlov
Vladimir.Kozlov at Sun.COM
Fri Aug 14 15:46:29 PDT 2009
I asked for it to short cut transformations when node's type is known
const or top. Yes, it is not needed for the bug fix but it could
reduce time spent in igvn.optimize().
Vladimir
Tom Rodriguez wrote:
> Why are you including the first part in this fix? I don't see the
> motivation for that change.
>
> tom
>
> On Aug 14, 2009, at 2:50 PM, changpeng fang - Sun Microsystems - Santa
> Clara United States wrote:
>
>> http://cr.openjdk.java.net/~cfang/6866651/webrev.00/
>>
>> Fixed 6866651: Regression: simple int sum crashes jvm (build
>> 1.6.0_14-b08 and 1.7.0-ea-b59)
>>
>> Problem:
>> set_req_X will do dead code elimination if the original input has no
>> other use. However, it is possible to
>> have the current node (this) removed if a dead loop exists. So, dead
>> code elimination in set_req_X is not
>> safe, and may cause undesired consequences (like the segfault in
>> 6866651)
>>
>> Solution:
>> Instead of doing dead code elimination immediately in set_req_X, we
>> put the dead node (original input) into
>> the worklist, and the dead node will eventually be eliminated when it
>> is its turn to be processed.
>>
>> In addition, before ideal transformations, we replace a node with a
>> constant if we know it computes a constant
>> to skip unneeded optimizations on this node. Tests: JPRT,
>> CompileTheWorld, Test case in bug report (Test.java in webrev)
>>
>> Thanks,
>>
>> Changpeng
>
More information about the hotspot-compiler-dev
mailing list