> Thanks for the fixes, the forgotten duplication and streaming were quite
> embarrassing, but one reason is that there are few reverse SSO testcases
> in the suite.  Would it be difficult to add some covering the issues you
> fixed?

No, I think I should be able to cover 3 out of the 4 changes, see below.

> ...is this strictly necessary?  I know it is inconsistent but the
> certain flag is fairly special.  More importantly...

No strong opinion, but that's really inconsistent...

> > @@ -3349,6 +3346,7 @@ pull_accesses_from_callee (cgraph_node *caller,
> > isra_param_desc *param_desc,> 
> >       copy->type = argacc->type;
> >       copy->alias_ptr_type = argacc->alias_ptr_type;
> >       copy->certain = true;
> > 
> > +     copy->reverse = argacc->reverse;
> > 
> >       vec_safe_push (param_desc->accesses, copy);
> >     
> >     }
> >     
> >        else if (prop_kinds[j] == ACC_PROP_CERTAIN)
> 
> ...earlier in the function, there is a check doing:
> 
>             if (argacc->alias_ptr_type != pacc->alias_ptr_type
> 
>                 || !types_compatible_p (argacc->type, pacc->type))
> 
>               return "propagated access types would not match existing 
ones";
> 
> Will the types_compatible_p catch the case when one type is a
> reverse-SSO and the other is not?  If not, we probably need to check
> that the flags are the same too.

That's the change I don't know how to cover and I agree that the check looks 
in order, but I presume that the flag still needs to be copied onto "copy"?

-- 
Eric Botcazou


Reply via email to