Backward Branch Counts

Rouhollah Gougol rgougol at gmail.com
Mon Feb 2 21:39:23 PST 2009


Hello everybody,

Would somebody describe to me the why backward branches of a method for
OnStackReplacement are counted differently when the ProfileInterpreter is
enabled from when ProfileInterpreter is false.

When NOT profiling the interpreter, like in x86_32 client compiler, HotSpot
adds the method invocation count of a given method to the total number of
the backward branches within the method and compare the sum with
InvocationCounter::InterpreterBackwardBranchLimit.

When profiling the interpreter, HotSpot, using the method,
InterpreterMacroAssembler::profile_taken_branch, counts the total number of
branches and compares it with the same backward branch threshold as the
former approach. So WHY, when ProfileInterptere == true, Hotspot adds both
forward and backward branches and the method, profile_taken_branch does not
exclude forward braches? AND WHY, ProfileInterpreter==true, HotSpot does not
add the number of backward branches to the method invocation count?

Lots of Thanks in advance for any feedback.

Sincerely,

R. Gougol
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20090202/f9cd5761/attachment.html 


More information about the hotspot-compiler-dev mailing list