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