JITWatch tool - why no nested parse tags in buildIR phase?
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Fri Jun 27 21:12:25 UTC 2014
Chris,
Thanks for the report. It's a bug in -XX:+LogCompilation support for C1
- it doesn't follow the convention to wrap output into <parse> tags when
inlining a method as C2 does.
I have a preliminary fix and plan to send it out for review soon.
Best regards,
Vladimir Ivanov
On 6/28/14 1:07 AM, Chris Newland wrote:
> Hi, hope this is the correct place to discuss the hotspot.log output from
> -XX:+LogCompilation ?
>
> I've built a tool called JITWatch
> (https://github.com/AdoptOpenJDK/jitwatch/wiki) for visualising the
> HotSpot log file and experimenting with JIT'd code and I'm having problems
> interpreting some of the output when -XX:+TieredCompilation is enabled.
>
> Given code with a chain of method calls and a loop to call the first
> method enough times to invoke the JIT compiler:
>
> public class SandboxTest
> {
> public int a(int x) { return 1 + b(x); }
>
> public int b(int x) { return 1 + c(x); }
>
> public int c(int x) { return 1 + x; }
>
> public static void main(String[] args)
> {
> SandboxTest test = new SandboxTest();
>
> int sum = 0;
>
> for (int i = 0 ; i < 1_000_000; i++)
> {
> sum = test.a(sum);
> }
>
> System.out.println("Sum:" + sum);
> }
> }
>
> I'm seeing very different output depending on whether tiered compilation
> is enabled.
>
> Without tiered compilation (Java 7 or Java 8 with -XX:-TieredCompilation)
> I get the log file like:
>
> https://gist.github.com/chriswhocodes/ad26dbbb5fc4703a8489
>
> with a <phase name="parse"> where each method call is inside a nested
> <parse></parse> section so I can clearly identify chained method calls.
>
> With tiered compilation enabled I get a log file like:
>
> https://gist.github.com/chriswhocodes/60774526fd00dcf2891a
>
> with only <phase name="buildIR"> which contains only a single parse tag
> and I don't think I can differentiate between chained calls and sequential
> calls in the same method.
>
> This means that under tiered compilation, I can no longer produce compile
> and inlining visualisations like this one:
> https://camo.githubusercontent.com/4470d767930acbce193402771cfee54f2cc281b7/687474703a2f2f7777772e63687269736e65776c616e642e636f6d2f696d616765732f6a697477617463682f636f6d70696c65636861696e312e706e67
>
> Can anyone shed any light on how tiered compilation logs work and if there
> is any way to pull out the same information as I could from Java 7 /
> -XX:-TieredCompilation logs?
>
> Many thanks,
>
> Chris
> @chriswhocodes
>
More information about the hotspot-compiler-dev
mailing list