re PR fortran/29550 (Optimize -fexternal-blas calls for conjg())
authorThomas Koenig <tkoenig@gcc.gnu.org>
Tue, 18 Sep 2018 19:59:46 +0000 (19:59 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Tue, 18 Sep 2018 19:59:46 +0000 (19:59 +0000)
2018-09-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/29550
* gfortran.h (gfc_expr): Add external_blas flag.
* frontend-passes.c (matrix_case): Add case A2TB2T.
(optimize_namespace): Handle flag_external_blas by
calling call_external_blas.
(get_array_inq_function): Add argument okind. If
it is nonzero, use it as the kind of argument
to be used.
(inline_limit_check): Remove m_case argument, add
limit argument instead.  Remove assert about m_case.
Set the limit for inlining from the limit argument.
(matmul_lhs_realloc): Handle case A2TB2T.
(inline_matmul_assign): Handle inline limit for other cases with
two rank-two matrices.  Remove no-op calls to inline_limit_check.
(call_external_blas): New function.
* trans-intrinsic.c (gfc_conv_intrinsic_funcall): Do not add
argument to external BLAS if external_blas is already set.

2018-09-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/29550
* gfortran.dg/inline_matmul_13.f90: Adjust count for
_gfortran_matmul.
* gfortran.dg/inline_matmul_16.f90: Likewise.
* gfortran.dg/promotion_2.f90: Add -fblas-matmul-limit=1.  Scan
for dgemm instead of dgemm_.  Add call to random_number to make
standard conforming.
* gfortran.dg/matmul_blas_1.f90: New test.
* gfortran.dg/matmul_bounds_14.f: New test.
* gfortran.dg/matmul_bounds_15.f: New test.
* gfortran.dg/matmul_bounds_16.f: New test.
* gfortran.dg/blas_gemm_routines.f: New test / additional file for
preceding tests.

From-SVN: r264411

gcc/fortran/ChangeLog
gcc/testsuite/ChangeLog

index b89ecf8980f92895e11e4c3b18f435076c904f34..4557bc2a5c892c876a0959481e3509e742a0bd6c 100644 (file)
@@ -1,3 +1,23 @@
+2018-09-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/29550
+       * gfortran.h (gfc_expr): Add external_blas flag.
+       * frontend-passes.c (matrix_case): Add case A2TB2T.
+       (optimize_namespace): Handle flag_external_blas by
+       calling call_external_blas.
+       (get_array_inq_function): Add argument okind. If
+       it is nonzero, use it as the kind of argument
+       to be used.
+       (inline_limit_check): Remove m_case argument, add
+       limit argument instead.  Remove assert about m_case.
+       Set the limit for inlining from the limit argument.
+       (matmul_lhs_realloc): Handle case A2TB2T.
+       (inline_matmul_assign): Handle inline limit for other cases with
+       two rank-two matrices.  Remove no-op calls to inline_limit_check.
+       (call_external_blas): New function.
+       * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Do not add
+       argument to external BLAS if external_blas is already set.
+
 2018-09-18  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/87239
index 2be64615b8ba33c92b184bf0cc4105125a2de670..29946077ecde80630ee700efd874b60f37361aef 100644 (file)
@@ -1,3 +1,19 @@
+2018-09-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/29550
+       * gfortran.dg/inline_matmul_13.f90: Adjust count for
+       _gfortran_matmul.
+       * gfortran.dg/inline_matmul_16.f90: Likewise.
+       * gfortran.dg/promotion_2.f90: Add -fblas-matmul-limit=1.  Scan
+       for dgemm instead of dgemm_.  Add call to random_number to make
+       standard conforming.
+       * gfortran.dg/matmul_blas_1.f90: New test.
+       * gfortran.dg/matmul_bounds_14.f: New test.
+       * gfortran.dg/matmul_bounds_15.f: New test.
+       * gfortran.dg/matmul_bounds_16.f: New test.
+       * gfortran.dg/blas_gemm_routines.f: New test / additional file for
+       preceding tests.
+
 2018-09-18  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/87239