review request (M): 6912064: type profiles need to be more thorough for dynamic language support

John Rose john.r.rose at oracle.com
Fri Jul 16 11:56:36 PDT 2010


On Jul 16, 2010, at 9:58 AM, Vladimir Kozlov wrote:

> About last changes. Why you not do 'stopped()' check after that call?:
> 
> 2668     cast_obj = maybe_cast_profiled_receiver(not_null_obj, data, tk->klass());

Because the code (in gen_checkcast) works correctly in the case of dead control after the profile cast.  When the obj_path control is dead, the null path might still be live, and the region/phi collect the right results in any case.

Should I add a comment?  (It's not the only way in which the two routines fail to be parallel, BTW.)

Or, the other way to fix it might be to have load_object_klass and gen_subtype_check DTRT with dead control, and remove the explicit check in gen_instanceof.  I took the path of least resistance.

-- John



More information about the hotspot-compiler-dev mailing list