On 10/15/19 4:32 AM, Richard Biener wrote:
> I believe this is going to bite you exactly in the case you want the
> opposite behavior.  If you have CUs compiled with defaults and
> a specialized one with VSX that calls into generic compiled functions
> you _do_ want to allow inlining into the VSX enabled routines.

First off, there's nothing special about VSX/non-VSX here, so when I talk
about VSX below, I'm really just using it as a stand-in for any option.

So what you're saying is that a VSX enabled function that calls a non-VSX
enabled function should be able to inline that non-VSX function.  That is
what the current code allows and I agree that should still be allowed.
My extra code only disallows that scenario *IF* the user explicitly said
DO NOT compile the callee function with VSX.  It still allows it to be
inlined if the callee was compiled without VSX implicitly / by default,
so I don't think my patch disallows the scenario you mention above.

If the user explicitly said not to compile a function with a particular
option, how can we justify ignoring that request just because we're
inlining it?  We don't do that for the out of line version of that callee
function.


> How can it be fatal to inline a non-VSX function into a VSX one?

I can think of scenarios where it could be fatal (again, VSX is just a
stand-in for any option), but maybe the user used -mno-vsx for performance
reasons or maybe this is kernel code and the user knows this function will
be run with VSX hardware disabled or ...


Peter


Reply via email to