RFS(M): 8005031: Some cleanup in c2 to prepare for incremental inlining support
vladimir.kozlov at oracle.com
Thu Dec 13 12:36:49 PST 2012
On 12/13/12 10:32 AM, Roland Westrelin wrote:
> 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()).
More information about the hotspot-compiler-dev