This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Peculiar XPASS of gcc.dg/guality/inline-params.c


On Tue, Mar 30, 2010 at 10:42 AM, Martin Jambor <mjambor@suse.cz> wrote:
> Hi,
>
> On Tue, Mar 30, 2010 at 10:14:16AM -0700, Janis Johnson wrote:
>> On Tue, Mar 30, 2010 at 7:09 AM, Martin Jambor <mjambor@suse.cz> wrote:
>> > On Tue, Mar 30, 2010 at 12:43:39AM +0200, Jan Hubicka wrote:
>> >> > I have run the testcase with the early inliner disabled and noticed
>> >> > that gcc.dg/guality/inline-params.c XPASSes with early inlining and
>> >> > XFAILs without it. ?The reason for the (expected) failure is that
>> >> > IPA-CP removes a parameter which is constant (but also unused?). ?I
>> >> > reckon this is the reason for the xfail mark and so I guess that early
>> >> > inlining should be disabled in the particular testcase, am I right?
>> >>
>> >> Well, I guess we should be able to maintain debug info with IPA-CP changes
>> >> (only case where debugging info is difficult to maintain IMO is the case
>> >> of unused argument removal that is explicitely disabled here). ?So I guess
>> >> in a way this is correct XFAIL...
>> >
>> > I thought so. ?The patch below turns at least some of the XPASSes into
>> > XFAILs. ?The XPASSes remain with switch combinations when IPA-CP is
>> > not run, I don't know how to get rid of them. ?Specifically it turns
>> >
>> > XPASS: gcc.dg/guality/inline-params.c ?-O0 ?execution test
>> > XPASS: gcc.dg/guality/inline-params.c ?-O1 ?execution test
>> > XPASS: gcc.dg/guality/inline-params.c ?-O2 ?execution test
>> > XPASS: gcc.dg/guality/inline-params.c ?-O3 -fomit-frame-pointer ?execution test
>> > XPASS: gcc.dg/guality/inline-params.c ?-O3 -g ?execution test
>> > XPASS: gcc.dg/guality/inline-params.c ?-Os ?execution test
>> > XFAIL: gcc.dg/guality/inline-params.c ?-O2 -flto ?execution test
>> > XFAIL: gcc.dg/guality/inline-params.c ?-O2 -fwhopr ?execution test
>> >
>> > into
>> >
>> > XPASS: gcc.dg/guality/inline-params.c ?-O0 ?execution test
>> > XPASS: gcc.dg/guality/inline-params.c ?-O1 ?execution test
>> > XFAIL: gcc.dg/guality/inline-params.c ?-O2 ?execution test
>> > XFAIL: gcc.dg/guality/inline-params.c ?-O3 -fomit-frame-pointer ?execution test
>> > XFAIL: gcc.dg/guality/inline-params.c ?-O3 -g ?execution test
>> > XFAIL: gcc.dg/guality/inline-params.c ?-Os ?execution test
>> > XFAIL: gcc.dg/guality/inline-params.c ?-O2 -flto ?execution test
>> > XPASS: gcc.dg/guality/inline-params.c ?-O2 -fwhopr ?execution test
>> >
>> > Only now I have noticed the XFAIL->XPASS in whopr, I wonder what to do
>> > with that (if anything)...
>>
>> Take a look at the documentation for dg-xfail-run-if in
>> http://gcc.gnu.org/onlinedocs/gccint/Directives.html#Directives and see if
>> that helps.
>>
>
> Thanks!. ?The improved patch below turns the output into what it
> should be:
>
> PASS: gcc.dg/guality/inline-params.c ?-O0 ?execution test
> PASS: gcc.dg/guality/inline-params.c ?-O1 ?execution test
> XFAIL: gcc.dg/guality/inline-params.c ?-O2 ?execution test
> XFAIL: gcc.dg/guality/inline-params.c ?-O3 -fomit-frame-pointer ?execution test
> XFAIL: gcc.dg/guality/inline-params.c ?-O3 -g ?execution test
> XFAIL: gcc.dg/guality/inline-params.c ?-Os ?execution test
> XFAIL: gcc.dg/guality/inline-params.c ?-O2 -flto ?execution test
> PASS: gcc.dg/guality/inline-params.c ?-O2 -fwhopr ?execution test
>
> OK for trunk?
>
> Martin

OK.

Janis

> 2010-03-30 ?Martin Jambor ?<mjambor@suse.cz>
>
> ? ? ? ?* inline-params.c: Disable early inlining. ?Xfail run only with -O2,
> ? ? ? ?-O3 or -Os and not with -fwhopr.
>
> Index: gcc/testsuite/gcc.dg/guality/inline-params.c
> ===================================================================
> --- gcc/testsuite/gcc.dg/guality/inline-params.c ? ? ? ?(revision 157786)
> +++ gcc/testsuite/gcc.dg/guality/inline-params.c ? ? ? ?(working copy)
> @@ -1,6 +1,10 @@
> -/* { dg-do run { xfail *-*-* } } */
> -/* IPA-SRA removes the argumet as dead, so we don't see their values. ?*/
> -/* { dg-options "-g -fno-ipa-sra" } */
> +/* { dg-do run } */
> +/* IPA-SRA removes the argumet as dead, so we don't see their values, early
> + ? inlining inlines the functions too early to test the real IPA passes (such
> + ? as IPA-CP). */
> +/* { dg-options "-g -fno-early-inlining -fno-ipa-sra" } */
> +/* { dg-xfail-run-if "" { "*-*-*" } { "-O2" "-O3" "-Os" } { "-fwhopr" } } */
> +
> ?#define GUALITY_DONT_FORCE_LIVE_AFTER -1
>
> ?#ifndef STATIC_INLINE
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]