Testsuite fails on PowerPC with: Re: [PATCH][middle-end][i386][version 6]Add -fzero-call-used-regs=[skip|used-gpr-arg|used-arg|all-gpr-arg|all-arg|used-gpr|all-gpr|used|all])

Segher Boessenkool segher@kernel.crashing.org
Wed Nov 4 22:01:49 GMT 2020


On Wed, Nov 04, 2020 at 01:58:26PM -0600, Qing Zhao wrote:
> > On Nov 4, 2020, at 1:00 PM, Segher Boessenkool <segher@kernel.crashing.org> wrote:
> > On Wed, Nov 04, 2020 at 01:20:58PM +0000, Richard Sandiford wrote:
> >> Tobias Burnus <tobias@codesourcery.com> writes:
> >>> Three of the testcases fail on PowerPC: gcc.target/i386/zero-scratch-regs-{9,10,11}.c
> >>>   powerpc64le-linux-gnu/default/gcc.d/zero-scratch-regs-10.c:77:1: sorry, unimplemented: '-fzero-call-used_regs' not supported on this target
> >>> 
> >>> Did you miss some dg-require-effective-target ?
> >> 
> >> No, these are a signal to target maintainers that they need
> >> to decide whether to add support or accept the status quo
> >> (in which case a new effective-target will be needed).  See:
> >> https://urldefense.com/v3/__https://gcc.gnu.org/pipermail/gcc-patches/2020-October/557595.html__;!!GqivPVa7Brio!PD1t9rpXf7lNS8yVbiQckiR5w3bv1eqGZenzRGPMBTAlYpshdQ9qVR0JLhoeNFMg$ :
> >> 
> >>    The new tests are likely to fail on some targets with the sorry()
> >>    message, but I think target maintainers are best placed to decide
> >>    whether (a) that's a fundamental restriction of the target and the
> >>    tests should just be skipped or (b) the target needs to implement
> >>    the new hook.
> > 
> > But why are tests in gcc.target/i386/ run for other targets at all?!
> 
> No,  tests in gcc.target/i386 should not run for PowerPC.
> 
> What Tobias Burnus mentioned are the following tests:
> 
> powerpc64le-linux-gnu-gcc.sum:FAIL: c-c++-common/zero-scratch-regs-10.c  -Wc++-compat  (test for excess errors)
> powerpc64le-linux-gnu-gcc.sum:FAIL: c-c++-common/zero-scratch-regs-11.c  -Wc++-compat  (test for excess errors)
> powerpc64le-linux-gnu-gcc.sum:FAIL: c-c++-common/zero-scratch-regs-9.c  -Wc++-compat  (test for excess errors)
> powerpc64le-linux-gnu-g++.sum:FAIL: c-c++-common/zero-scratch-regs-10.c  -std=gnu++98 (test for excess errors)
> powerpc64le-linux-gnu-g++.sum:FAIL: c-c++-common/zero-scratch-regs-10.c  -std=gnu++14 (test for excess errors)
> powerpc64le-linux-gnu-g++.sum:FAIL: c-c++-common/zero-scratch-regs-10.c  -std=gnu++17 (test for excess errors)
> powerpc64le-linux-gnu-g++.sum:FAIL: c-c++-common/zero-scratch-regs-10.c  -std=gnu++2a (test for excess errors)
> powerpc64le-linux-gnu-g++.sum:FAIL: c-c++-common/zero-scratch-regs-11.c  -std=gnu++98 (test for excess errors)
> 
> 
> They are under c-c++-common, not gcc.target/i386. 

Ah, good.  But the mail said

> >>> Three of the testcases fail on PowerPC: gcc.target/i386/zero-scratch-regs-{9,10,11}.c
> >>>   powerpc64le-linux-gnu/default/gcc.d/zero-scratch-regs-10.c:77:1: sorry, unimplemented: '-fzero-call-used_regs' not supported on this target

so :-)

> These testing cases are added intentionaly on all platforms in order to check whether  the current middle-end default implementation for
> -fzero-call-used-regs works on the specific platform.
> 
> If the default implementation doesn’t work for the specific platform, for example, on PowerPC, it’s better for the Maintainer of PowerPC to decide
> Whether to skip these testing case on this platform or add a PowerPC implementation.

Yeah, we will deal with it.  In stage 3 :-)


Segher


More information about the Gcc-patches mailing list