Bug 38791 - FAIL: gcc.dg/graphite/block-3.c (test for excess errors)
Summary: FAIL: gcc.dg/graphite/block-3.c (test for excess errors)
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: testsuite (show other bugs)
Version: 4.4.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-01-10 11:40 UTC by Dominique d'Humieres
Modified: 2009-01-14 14:46 UTC (History)
2 users (show)

See Also:
Host: i686-apple-darwin9
Target: i686-apple-darwin9
Build: i686-apple-darwin9
Known to work:
Known to fail:
Last reconfirmed:


Attachments
1317_pr38791.diff (343 bytes, patch)
2009-01-10 21:32 UTC, sebpop@gmail.com
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dominique d'Humieres 2009-01-10 11:40:42 UTC
On i686-apple-darwin9 the test gcc/testsuite/gcc.dg/graphite/block-3.c introduced in revision 143159 fails with:

[ibook-dhum] f90/bug% gcc44 /opt/gcc/_gcc_clean/gcc/testsuite/gcc.dg/graphite/block-3.c
/opt/gcc/_gcc_clean/gcc/testsuite/gcc.dg/graphite/block-3.c:6: error: size of array 'A' is too large
Comment 1 Dominique d'Humieres 2009-01-10 11:49:42 UTC
I have forgotten to say that the failure occurs in 32 bit mode, but disappears with -m64.
Comment 2 sebpop@gmail.com 2009-01-10 21:32:44 UTC
Subject: Re:  FAIL: gcc.dg/graphite/block-3.c (test for excess errors)

Does the attached patch fix the fail?

Thanks,
Sebastian
Comment 3 sebpop@gmail.com 2009-01-10 21:32:44 UTC
Created attachment 17072 [details]
1317_pr38791.diff
Comment 4 Dominique d'Humieres 2009-01-10 22:03:26 UTC
> Does the attached patch fix the fail?

With the patch the test compiles (it does with M up to 812) and the "Strip Mining" is done for the second nested loops:

for (s_1=0;s_1<=1;s_1++) {
  for (s_3=0;s_3<=1;s_3++) {
    for (s_5=0;s_5<=1;s_5++) {
      for (s_7=64*s_1;s_7<=min(64*s_1+63,99);s_7++) {
        for (s_9=64*s_3;s_9<=min(64*s_3+63,99);s_9++) {
          for (s_11=64*s_5;s_11<=min(64*s_5+63,99);s_11++) {
            S13(s_1,s_3,s_5,s_7,s_9,s_11) ;
          }
        }
      }
    }
  }
}

I don't know how I can test this file alone without regtesting all gcc (I tried: make -k check-gcc RUNTESTFLAGS="dg.exp=graphite/block-3.c" without success).

Comment 5 Eric Botcazou 2009-01-10 22:06:37 UTC
> I don't know how I can test this file alone without regtesting all gcc (I
> tried: make -k check-gcc RUNTESTFLAGS="dg.exp=graphite/block-3.c" without
> success).

Try make -k check-gcc RUNTESTFLAGS="graphite.exp=block-3.c"
Comment 6 Dominique d'Humieres 2009-01-10 22:09:56 UTC
> Try make -k check-gcc RUNTESTFLAGS="graphite.exp=block-3.c"

Thanks, then I get:

Running /opt/gcc/gcc-4.4-work/gcc/testsuite/gcc.dg/graphite/graphite.exp ...

		=== gcc Summary ===

# of expected passes		1
/Volumes/MacBook/opt/gcc/i686-darwin/gcc/xgcc  version 4.4.0 20090110 (experimental) [trunk revision 143247p1] (GCC) 
Comment 7 Dominique d'Humieres 2009-01-11 11:13:34 UTC
Before closing this pr as fixed, I have a question: usually tests having -fdump-* in dg-options are doing some search of patterns in the dumped file, e.g. in gcc/testsuite/gcc.dg/pr35729.c

/* { dg-options "-Os -fdump-rtl-loop2_invariant" } */
...
/* { dg-final { scan-rtl-dump-times "Decided to move invariant" 0 "loop2_invariant" } } */

I noticed that gcc/testsuite/gcc.dg/graphite/block-3.c has only the cleaning dg-final, but no scan-* one(s). I don't see anything in gcc/testsuite/gcc.dg/graphite/graphite.exp that could supply it either.
Is this the intended behavior or is there something missing in this test (and possibly other graphite ones)?
Comment 8 sebpop@gmail.com 2009-01-14 14:45:32 UTC
Subject: Re:  FAIL: gcc.dg/graphite/block-3.c (test for excess errors)

> Before closing this pr as fixed, I have a question: usually tests having
> -fdump-* in dg-options are doing some search of patterns in the dumped file,
> e.g. in gcc/testsuite/gcc.dg/pr35729.c
>
> /* { dg-options "-Os -fdump-rtl-loop2_invariant" } */
> ...
> /* { dg-final { scan-rtl-dump-times "Decided to move invariant" 0
> "loop2_invariant" } } */
>
> I noticed that gcc/testsuite/gcc.dg/graphite/block-3.c has only the cleaning
> dg-final, but no scan-* one(s). I don't see anything in
> gcc/testsuite/gcc.dg/graphite/graphite.exp that could supply it either.
> Is this the intended behavior or is there something missing in this test (and
> possibly other graphite ones)?

The test for loop blocking is missing in block-3.c.  We will have to
clean up the graphite testsuite and making the tests more reliable,
but probably this will be done in GCC4.5.

Sebastian
Comment 9 Sebastian Pop 2009-01-14 14:46:21 UTC
Fixed.