Request for reviews (XS): 6866651: Regression: simple int sum crashes jvm (build 1.6.0_14-b08 and 1.7.0-ea-b59)
Tom Rodriguez
Thomas.Rodriguez at Sun.COM
Fri Aug 14 16:19:14 PDT 2009
I don't really like this code. My understanding is that this would
only occur for nodes that are dead because of CCP. A dead node can
only have dead users so doesn't calling add_users_to worklist on a
dead node seem like a bad idea? If we want dead nodes from CCP to be
cleaned up then shouldn't CCP be doing it?
tom
On Aug 14, 2009, at 3:46 PM, Vladimir Kozlov wrote:
> 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