Backward Branch Counts

Rouhollah Gougol rgougol at
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

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.


R. Gougol
-------------- next part --------------
An HTML attachment was scrubbed...

More information about the hotspot-compiler-dev mailing list