United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6677629 PhaseIterGVN::subsume_node() should call hash_delete() and add_users_to_worklist()
JDK-6677629 : PhaseIterGVN::subsume_node() should call hash_delete() and add_users_to_worklist()

Details
Type:
Enhancement
Submit Date:
2008-03-19
Status:
Closed
Updated Date:
2011-04-23
Project Name:
JDK
Resolved Date:
2011-04-23
Component:
hotspot
OS:
solaris_10
Sub-Component:
compiler
CPU:
sparc
Priority:
P5
Resolution:
Fixed
Affected Versions:
hs12
Fixed Versions:
hs19 (b04)

Related Reports
Backport:
Backport:
Backport:
Backport:

Sub Tasks

Description
C2 has a lot of places with the next calls sequence:

   add_users_to_worklist(old);
   hash_delete(old);
   subsume_node(old, nn);

and without add_users_to_worklist(old).

Investigate a possibility to call hash_delete() and add_users_to_worklist()
from subsume_node().

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/6027dddc26c6
                                     
2010-06-29
PUBLIC COMMENTS

Currently C2 does not check that users of a subsumed node are placed on IGVN worklist. Because of that some expressions are not collapsed as expected.

I suggest to use replace_node() method instead of subsume_node(). Make subsume_node() private and use it only in transform_old().
                                     
2010-06-29



Hardware and Software, Engineered to Work Together