[PATCH] rs6000: -flto forgets 'no-vsx' function attributes (PR target/70010)

Segher Boessenkool segher@kernel.crashing.org
Tue Oct 15 10:00:00 GMT 2019


Hi!

On Tue, Oct 15, 2019 at 05:15:07PM +0800, Jiufu Guo wrote:
> And another issue: Behavior is still inconsistent between "-mno-vsx
> -flto" and "-mno-vsx" for user code. Previous patch makes it consistent
> between "-mvsx -flto" and "-mvsx". 

>  $GCC_BUILD/gcc/xgcc -B$GCC_BUILD/gcc novsx.c -O2 -mno-vsx
> /home/guojiufu/temp/novsx.c: In function 'main':
> /home/guojiufu/temp/novsx.c:6:1: error: inlining failed in call to 'always_inline' 'foo': target specific option mismatch

So what should we do about this?  There are arguments for *both*
behaviours, and apparently with LTO we do not know which flags are
explicit?

> +      /* Propogate global flags to caller.  */
> +      HOST_WIDE_INT caller_isa = rs6000_isa_flags;

I don't think that is right, or, I don't see why, anyway?

> +
> +      if (((caller_isa & callee_isa) == callee_isa)
> +         && (caller_isa & explicit_isa) == (callee_isa & explicit_isa))
> +       ret = true;
> +    }


Segher



More information about the Gcc-patches mailing list