Re: [OG10] Fortran: delinearize multi-dimensional array accesses

2020-12-26 Thread Thomas Koenig via Gcc-patches



Hi Sandra,

The attached patch implements delinearization of array accesses in the 
Fortran front end, something that has been discussed for a long time.


Definitely - among others, this is the subject of PR 14741, which is by
now quite historic.

I've been asked to try to get this patch committed on the OG10 branch 
since it is blocking some further optimization work with Graphite for 
OpenACC kernels regions.  I have a mainline version of this patch as 
well that I can send to anyone interested in trying it out, but TBH, I 
don't think this is ready for mainline yet.


That would be indeed interesting.  Could you post that to the list as
well?

The current status is that
there are still two gfortran tests that are regressing 
(gfortran.dg/graphite/id-9.f and 
gfortran.dg/vect/fast-math-mgrid-resid.f), and while it's been confirmed 
that this helps with Graphite optimizations as intended, we haven't yet 
run any benchmarks to confirm that it doesn't make other things slower. 


It is probably too late; this could go in for the next stage 1.

(It might, for instance, be appropriate to only delinearize when 
Graphite optimizations are also enabled.)


Makes sense.

Does the patch actually make loop interchange for matrix multiplication
work (done with C for loops or Fortran DO loops), or is there additional
work required?

Regarding scalarized loops: We still to not collapse loops for

  subroutine foo(a)
real, dimension(:,:), contiguous :: a
a = 5.
  end subroutine foo

so an extension to scalarized loops would be quite valuable.

It would be interesting to see if

  subroutine foo(a,n,m)
real, dimension(n,m) :: a
do j=1,m
  do i=1,n
a(i,j) = 5.
  end do
end do
  end subroutine foo

is collapsed to a single loop with the patch and Graphite.

Best regards

Thomas


[committed] libstdc++: Update link to Intel/GNU compatibility paper

2020-12-26 Thread Gerald Pfeifer
Pushed. Gerald


commit 9d426e4dbccf1548f2d11866fe18af04af4109de
Author: Gerald Pfeifer 
Date:   Sat Dec 26 00:27:23 2020 +0100

libstdc++: Update link to Intel/GNU compatibility paper

libstdc++-v3:

2020-12-26  Gerald Pfeifer  

* doc/xml/manual/abi.xml: Update link to Intel's compatibility
with GNU compilers document.
* doc/html/manual/abi.html: Regenerate.

diff --git a/libstdc++-v3/doc/html/manual/abi.html 
b/libstdc++-v3/doc/html/manual/abi.html
index 8ed8de64b32..be5676d14f4 100644
--- a/libstdc++-v3/doc/html/manual/abi.html
+++ b/libstdc++-v3/doc/html/manual/abi.html
@@ -535,7 +535,7 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 
/usr/lib/libstdc++.so.
  Itanium C++ ABI

   . 
-   https://software.intel.com/en-us/articles/intel-compilers-for-linux-compatibility-with-gnu-compilers";
 target="_top">
+   https://software.intel.com/content/www/us/en/develop/articles/intel-compilers-for-linux-compatibility-with-gnu-compilers.html";
 target="_top">
Intel Compilers for Linux: Compatibility with GNU Compilers

   . 
diff --git a/libstdc++-v3/doc/xml/manual/abi.xml 
b/libstdc++-v3/doc/xml/manual/abi.xml
index e9f3773186c..e48a536b54e 100644
--- a/libstdc++-v3/doc/xml/manual/abi.xml
+++ b/libstdc++-v3/doc/xml/manual/abi.xml
@@ -1143,7 +1143,7 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 
/usr/lib/libstdc++.so.
   

http://www.w3.org/1999/xlink";
- 
xlink:href="https://software.intel.com/en-us/articles/intel-compilers-for-linux-compatibility-with-gnu-compilers";>
+ 
xlink:href="https://software.intel.com/content/www/us/en/develop/articles/intel-compilers-for-linux-compatibility-with-gnu-compilers.html";>
Intel Compilers for Linux: Compatibility with GNU Compilers

   


Ping: [Patch, fortran] PR97694 - ICE with optional assumed rank class(*) argument (and PR97723)

2020-12-26 Thread Paul Richard Thomas via Gcc-patches
Ping!

On Sat, 12 Dec 2020 at 10:38, Paul Richard Thomas <
paul.richard.tho...@gmail.com> wrote:

> Fortran: Fix some select rank issues [PR97694 and 97723].
>
> Hi All,
>
> Unlike select type, select rank selectors retain the allocatable
> attribute. This is corrected by the chunk in check.c. Note the trailing
> whitespace corrections. Resolution of select rank construct must be done in
> the same way as select type and so the break has been added to ensure that
> the block is resolved in resolve_select_rank. The final chunk prevents
> segfaults for class associate variables that are optional dummies, since
> these apparently are not adorned with the GFC_DECL_SAVED_DESCRIPTOR.
>
> Regtests OK on FC31/x86_64 - OK for master?
>
> Cheers
>
> Paul
>
> 2020-12-12  Paul Thomas  
>
> gcc/fortran
> PR fortran/97694
> PR fortran/97723
> * check.c (allocatable_check): Select rank temporaries are
> permitted even though they are treated as associate variables.
> * resolve.c (gfc_resolve_code): Break on select rank as well as
> select type so that the block os resolved.
> * trans-stmt.c (trans_associate_var): Class associate variables
> that are optional dummies must use the backend_decl.
>
> gcc/testsuite/
> PR fortran/97694
> PR fortran/97723
> * gfortran.dg/select_rank_5.f90: New test.
>
>

-- 
"If you can't explain it simply, you don't understand it well enough" -
Albert Einstein


[PATCH] libcody: Fix build on hppa*-*-hpux11.11

2020-12-26 Thread John David Anglin
The following patch fixes the compilation of libcody/resolver.cc on 
hppa*-*-hpux11.11.  I
believe fstatat was introduced in POSIX 2008.

Okay?

Regards,
Dave

Fix libcody build on hppa*-*-hpux11.11.

libcody/ChangeLog:

* resolver.cc: Only use fstatat when _POSIX_C_SOURCE >= 200809L.

diff --git a/libcody/resolver.cc b/libcody/resolver.cc
index b83880f341e..93997433f15 100644
--- a/libcody/resolver.cc
+++ b/libcody/resolver.cc
@@ -10,7 +10,9 @@
 #include 
 #include 

-#if (defined (__unix__)
\
+#if ((defined (__unix__)   \
+  && defined _POSIX_C_SOURCE   \
+  && (_POSIX_C_SOURCE - 0) >= 200809L) \
  || (defined (__Apple__)   \
 && defined (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \
 && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101000))


Re: Ping: [Patch, fortran] PR97694 - ICE with optional assumed rank class(*) argument (and PR97723)

2020-12-26 Thread Thomas Koenig via Gcc-patches

Hi Paul,


Ping!


OK.

Thanks a lot!

Best regards

Thomas


[pushed] Objective-C++ : Fix up testcase EOF diagnostics.

2020-12-26 Thread Iain Sandoe
Hi

Some Objective-C++ testcases need modification in reponse to the
solution to PR 96045.

Tested on x86_64-darwin9, 16 and 19
pushed to master
thanks
Iain


gcc/testsuite/ChangeLog:

PR c++/96045
* obj-c++.dg/property/property-neg-6.mm: Adjust EOF
diagnostic location.
* obj-c++.dg/syntax-error-10.mm: Likewise.
* obj-c++.dg/syntax-error-8.mm: Likewise.
* obj-c++.dg/syntax-error-9.mm: Likewise.
---
 gcc/testsuite/obj-c++.dg/property/property-neg-6.mm | 2 +-
 gcc/testsuite/obj-c++.dg/syntax-error-10.mm | 2 +-
 gcc/testsuite/obj-c++.dg/syntax-error-8.mm  | 2 +-
 gcc/testsuite/obj-c++.dg/syntax-error-9.mm  | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/gcc/testsuite/obj-c++.dg/property/property-neg-6.mm 
b/gcc/testsuite/obj-c++.dg/property/property-neg-6.mm
index 1db6f0ba1b8..c4a22eb6d20 100644
--- a/gcc/testsuite/obj-c++.dg/property/property-neg-6.mm
+++ b/gcc/testsuite/obj-c++.dg/property/property-neg-6.mm
@@ -6,4 +6,4 @@
   int iVar;
 }
 @property int FooBar /* { dg-error "expected ';' at end of input" } */
-/* { dg-error "-:expected '@end' at end of input" "" { 
target *-*-* } .+1 } */
+/* { dg-error "expected '@end' at end of input" "" { 
target *-*-* } .-1 } */
diff --git a/gcc/testsuite/obj-c++.dg/syntax-error-10.mm 
b/gcc/testsuite/obj-c++.dg/syntax-error-10.mm
index 6fcf96f769e..f8e0c50b146 100644
--- a/gcc/testsuite/obj-c++.dg/syntax-error-10.mm
+++ b/gcc/testsuite/obj-c++.dg/syntax-error-10.mm
@@ -1,2 +1,2 @@
 @interface
-/* { dg-error "-:expected identifier" "" { target *-*-* } .+1 } */
+/* { dg-error "expected identifier" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/obj-c++.dg/syntax-error-8.mm 
b/gcc/testsuite/obj-c++.dg/syntax-error-8.mm
index f7cfe0e0895..c13303fb775 100644
--- a/gcc/testsuite/obj-c++.dg/syntax-error-8.mm
+++ b/gcc/testsuite/obj-c++.dg/syntax-error-8.mm
@@ -1 +1 @@
-@interface A /* { dg-error "-:expected ..end." "" { target *-*-* } .+1 } */
+@interface A /* { dg-error "expected ..end." "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/obj-c++.dg/syntax-error-9.mm 
b/gcc/testsuite/obj-c++.dg/syntax-error-9.mm
index ad8837c28af..e1f8bd17550 100644
--- a/gcc/testsuite/obj-c++.dg/syntax-error-9.mm
+++ b/gcc/testsuite/obj-c++.dg/syntax-error-9.mm
@@ -1,4 +1,4 @@
 // { dg-additional-options "-Wno-objc-root-class" }
 @implementation SaturnDoc /* { dg-warning "cannot find interface declaration" 
} */
 - read: (void*)aStream ggg /* { dg-error "expected .:. at end of input" } */
-/* { dg-error "-:expected ..*. at end of input" "" { target *-*-* } .+1 } */
+/* { dg-error "expected ..*. at end of input" "" { target *-*-* } .-1 } */
-- 
2.24.1