Le 23/09/2010 04:06, John Rose a écrit :
On Sep 22, 2010, at 1:24 PM, Tom Rodriguez wrote:

So looking at the hierarchy is of little use for most of those interface types.
CHA starts with the scope type at a use point and tries to prove that there is 
only one method in the scope.

Profiling starts with the set of concrete precise types at a use point and 
tries to prove that there is only one method.

CHA starts with scope types (often abstract) and searches downward.  A downward 
search from an interface fails (always?): this should be fixed.

Profiling starts with concrete types and currently fails if there is upward 
movement required.  This should be fixed.

You guys are right that a more complex profiling mechanism would probably 
capture what's needed.

Basically, if the profile overflows, it could summarize with approximate 
information.

More subtly, we could also profile the target method(s) instead of the receiver 
class(es).  The guard for that would require a vtable probe.

I don't think you need to profile target method(s), you can compute them from profile types or from an approximate profile type (if you implement profile overflow) or even from the declared receiver type.

You don't need to move upward, it can be simpler to gather all possible method implementations and If there is only one, you're done. If there is more than one, you can use the vtable probe or if the callsite is also megamorphic in term of method implementations, emit a vtable call.

-- John

Rémi

--
You received this message because you are subscribed to the Google Groups "JVM 
Languages" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/jvm-languages?hl=en.

Reply via email to