RFS(M): 8005031: Some cleanup in c2 to prepare for incremental inlining support

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Dec 13 12:36:49 PST 2012

On 12/13/12 10:32 AM, Roland Westrelin wrote:
> http://cr.openjdk.java.net/~roland/8005031/webrev.00/
> A collection of small changes that were found to be required for the upcoming incremental inlining support and that we intend to push first so that they be tested in isolation.

Why you removed asserts in callnode.cpp?

> With incremental inlining, inlining doesn't happen in parse order anymore so the output of PrintInlining can get confusing. There's some support in this change to keep the PrintInlining output in order.

I think "chunk" word is not appropriate for this. Maybe "Event" or 

PrintInliningChunk --> PrintInliningEvent
_print_inlining_chunks --> _print_inlining_list

Allocate the list in comp arena for use in later inlining: new(comp_arena())

LogCompilation output will be also affected. I remember fixing the tool 
for StringOpts. Could you verify that it works and fix it if it does not?

> Regarding add_node.cpp, I noticed some nodes wouldn't be found as dead by the igvn. I assume it is a bug.

I think you should put it on igvn._worklist because 
PhaseIterGVN::optimize() does removal of nodes with outcount() == 0. I 
don't think it is safe to do it inside Ideal() call.

Also, file RFE (starter_task) to find all similar cases (may be add the 
check for input nodes in transform_old()).


> Roland.

More information about the hotspot-compiler-dev mailing list