[PATCH V2] rs6000: -flto forgets 'no-vsx' function attributes (PR target/70010)
Jiufu Guo
guojiufu@linux.ibm.com
Wed Oct 16 14:01:00 GMT 2019
Segher Boessenkool <segher@kernel.crashing.org> writes:
> Hi!
>
>> the callee explicitly disables some isa_flags the caller is using.
>
> No trailing spaces please.
Updated.
>
>> + /* The callee's options must be a subset of the caller's options, i.e.
>> + a vsx function may inline an altivec function, but a non-vsx function
>> + must not inline a vsx function. However, for those options that the
>
> no-vsx instead of non-vsx? Or make it clear even more explicitly that this is
> about having something explicitly disabled? (The code is clear
> though).
Thanks.
>
>> +
>> +static inline void __attribute__ ((__always_inline__, target ("no-vsx")))
>> +foo () /* { dg-error "inlining failed in call to .* target specific option mismatch" } */
>
> .* can match across lines. Not a huge deal here of course -- but maybe
> adding (?n) to the regexp works? (Just at the very start of it).
Seems (?n) does not help this case, so keep old one.
>
>> --- /dev/null
>> +++ b/gcc/testsuite/gcc.target/powerpc/pr70010-2.c
>
>> diff --git a/gcc/testsuite/gcc.target/powerpc/pr70010-3.c b/gcc/testsuite/gcc.target/powerpc/pr70010-3.c
>> new file mode 100644
>
> Do you want to test anything in those two new testcases? Other than "it
> compiles"?
If compiling pass, it indicates inlining works fine for the caller and
callee. So, I did not check other thing here.
>
>> +/* { dg-require-effective-target powerpc_vsx_ok } */
>
> This line isn't necessary anymore I think? Or if it is, it is needed in
> all these new testcases.
Updated.
>
> Okay for trunk. Thanks to both of you!
>
> Also okay for 9 and 8, after waiting a week to see if there is fallout.
>
>
> Segher
I just committed the patch.
Thanks all for your helps! Segher, Richard, Peter, Andreas, Iain and all.
Jiufu
BR
More information about the Gcc-patches
mailing list