This is the mail archive of the gcc-patches@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: [PATCH] Fix PR64764 && Fix scan-tree-dump for scop-19.c


On 09-02-15 20:01, Dominique d'Humières wrote:

Le 9 févr. 2015 à 19:10, Tom de Vries <Tom_deVries@mentor.com
<mailto:Tom_deVries@mentor.com>> a écrit :

On 09-02-15 18:23, Dominique Dhumieres wrote:
Tom,

After these changes I have the following regressions on
x86_64-apple-darwin1[04]*:

FAIL: gcc.dg/uninit-19.c  (test for warnings, line 22)
FAIL: gcc.dg/uninit-19.c (test for excess errors)
FAIL: gcc.dg/graphite/scop-19.c scan-tree-dump-times graphite "number of
SCoPs: 0" 1

I can prepare and test a fix for darwin unless you beat me!


Dominique,

thanks for finding this.

I don't understand why this breaks. Why is fpic supposed to be different for
darwin?

I don’t either, but the tests succeeds on darwin with the following patch

--- ../_clean/gcc/testsuite/gcc.dg/uninit-19.c2015-02-09 11:38:40.000000000 +0100
+++ gcc/testsuite/gcc.dg/uninit-19.c2015-02-09 19:52:26.000000000 +0100
@@ -22,5 +22,5 @@ fn2 ()
    fn1 (l, &d, &e, &g, &i, &h, &k, n);  /* 22.  */
  }


-/* { dg-warning "may be used uninitialized" "" { target nonpic } 13 } */
-/* { dg-warning "may be used uninitialized" "" { target { ! nonpic } } 22 } */
+/* { dg-warning "may be used uninitialized" "" { target { nonpic ||
x86_64-apple-darwin1[0-9]* } } 13 } */
+/* { dg-warning "may be used uninitialized" "" { target { ! { nonpic ||
x86_64-apple-darwin1[0-9]* } } } 22 } */
--- ../_clean/gcc/testsuite/gcc.dg/graphite/scop-19.c2015-02-09
11:38:40.000000000 +0100
+++ gcc/testsuite/gcc.dg/graphite/scop-19.c2015-02-09 19:55:38.000000000 +0100
@@ -31,7 +31,7 @@ d_growable_string_append_buffer (struct
    if (need > dgs->alc)
      d_growable_string_resize (dgs, need);
  }
-/* { dg-final { scan-tree-dump-times "number of SCoPs: 0" 2 "graphite" { target
nonpic } } } */
-/* { dg-final { scan-tree-dump-times "number of SCoPs: 0" 1 "graphite" { target
{ ! nonpic } } } } */
+/* { dg-final { scan-tree-dump-times "number of SCoPs: 0" 2 "graphite" { target
{ nonpic || x86_64-apple-darwin1[0-9]* } } } } */
+/* { dg-final { scan-tree-dump-times "number of SCoPs: 0" 1 "graphite" { target
{ ! { nonpic || x86_64-apple-darwin1[0-9]* } } } } } */
  /* { dg-final { cleanup-tree-dump "graphite" } } */

I think we need to understand first what's going on.

In both test-cases, on Linux with -fpic the inlining of one function into the other is not done, because we cannot be sure the function call in one function binds to the other function at runtime.

So, is the inlining happening with -fpic for Darwin? If so, is that correct?

Thanks,
- Tom


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