Request for reviews (M): 7147416: LogCompilation tool does not work with post parse inlining
vladimir.kozlov at oracle.com
Fri Feb 24 12:19:24 PST 2012
Thank you, Tom
Tom Rodriguez wrote:
> On Feb 22, 2012, at 5:38 PM, Vladimir Kozlov wrote:
>> Search and updating already collected inlined call sites did not work with bimorphic inlining when the same method inlined on both passes. So I removed this change and simple collect late inlining information as separate inlining trace which is dumped after main inline info:
> That seems like an adequate fix for the current output but maybe we should emit some extra information to make it possible to put it back into the call tree. Maybe there's should be an inline_id or call_site_id? Then the late_inline could reference to that to connect up the call tree.
I agree. Next time when I look on this parser I will do it.
>> 5072 weblogic.utils.string.CachingDateFormat::getDate (57 bytes)
>> @ 27 weblogic.utils.string.SimpleCachingDateFormat::format (20 bytes) (end time: 220.5530 nodes: 250)
>> @ 15 java.lang.StringBuffer::toString already compiled into a medium method
>> late inline:
>> @ 27 weblogic.utils.string.SimpleCachingDateFormat::format (20 bytes)
>> @ 16 java.text.DateFormat::format (19 bytes)
>> @ 6 java.lang.StringBuffer::<init> (7 bytes) (end time: 220.5530 nodes: 412)
>> @ 3 java.lang.AbstractStringBuilder::<init> (12 bytes) (end time: 220.5530 nodes: 406)
>> @ 1 java.lang.Object::<init> (1 bytes) (end time: 220.5530 nodes: 358)
>> Vladimir Kozlov wrote:
>>> 7147416: LogCompilation tool does not work with post parse inlining
>>> Parsing tool for LogCompilation output is broken if post parse inlining was done: the name of last late inlinined method is used as main compiled method name and late inlining information is printed out of line.
>>> Don't change compiled method if it is already set to avoid changing it by post parse inlining info. Update already collected inlined call sites with late inline information.
>>> Also the tool throw exceptions when it does not see node='x' in parse_done which could happened when C2 bailout from Parse. Pass default value '1' to search("nodes") to avoid the trow.
More information about the hotspot-compiler-dev