RFR (S): 8024067: Missing replace_in_map() calls following null checks

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Sep 3 14:18:43 PDT 2013


Then why not do that in null_check_oop()? And why we need safe_for_replace?

Vladimir

PS: Roland, please, include previous mails text (with webrev link) in 
your responses.

On 9/3/13 1:48 PM, Roland Westrelin wrote:
>
>> Why you need this when null_check_common() does this already?
>
> GraphKit::null_check_oop() sets (*null_control) = top()
> then GraphKit::null_check_common() does:
> if (null_control != NULL) {
> (*null_control) = null_true;
> so (*null_control) is no longer top and:
>
>     if (null_control == NULL || (*null_control) == top())
>        replace_in_map(value, cast);
>
> doesn't help. Back in GraphKit::null_check_oop():
>
>    if (never_see_null && (*null_control) != top()) {
>
> is where the uncommon trap is added and (*null_control) = top() is set back to top and nothing does the replace_in_map.
>
> Roland.
>


More information about the hotspot-compiler-dev mailing list