Request for reviews (M): 6674600, 6259129 (last Escape Analysis changes for HS12)

Vladimir Kozlov Vladimir.Kozlov at Sun.COM
Wed Mar 19 15:08:19 PDT 2008


Chuck suggested to add a new method for the next sequence
which I used very often in macro.cpp (6259129 changes):
I added new method into PhaseIterGVN:


+  // Replace old node with new one.
+  void replace_node( Node *old, Node *nn ) {
+    add_users_to_worklist(old);
+    hash_delete(old);
+    subsume_node(old, nn);
+  }
+

But I am wondering why we not always put users of old node
on worklist in subsume_node()?

Thanks,
Vladimir

Vladimir Kozlov wrote:
> Thank you for previous reviews.
> 
> Here are my last EA changes for HS12.
> 
> Note: both changesets have similar memory walking code but
> I don't want to optimize/combine this code now. I will do it later.
> 
> Thanks,
> Vladimir
> 
> ---------------------------------------------------------------------------- 
> 
> http://webrev.invokedynamic.info/kvn/6674600/index.html
> 
> Fixed 6674600: (Escape Analysis) Optimize memory graph for instance's 
> fields
> 
> Problem:
> To reallocate a scalarized object during a deoptimization we need
> to know the state (values) of object's non-static fields at a safepoint.
> 
> Solution:
> Use aggressive memory optimizations during Iterative GVN
> to obtain values assigned to instance's non-static fields.
> 
> ---------------------------------------------------------------------------- 
> 
> http://webrev.invokedynamic.info/kvn/6259129/index.html
> 
> Fixed 6259129: (Escape Analysis) scalar replacement for non-escaping 
> objects
> 
> Problem:
> To reallocate a scalarized object during a deoptimization we need
> to know the state (values) of object's non-static fields at a safepoint.
> 
> Solution:
> Replace non-escaping allocations with SafePointScalarObjectNode
> for a scalar replacement during macro expansion of Allocate nodes.
> Do an additional memory search to obtain values assigned to instance's
> non-static fields. Disable scalar replacement if a field's value
> can't be found.
> ---------------------------------------------------------------------------- 
> 




More information about the hotspot-compiler-dev mailing list