trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Use the old caf- interface where...
authorAndre Vehreschild <vehre@gcc.gnu.org>
Fri, 23 Sep 2016 10:17:22 +0000 (12:17 +0200)
committerAndre Vehreschild <vehre@gcc.gnu.org>
Fri, 23 Sep 2016 10:17:22 +0000 (12:17 +0200)
gcc/fortran/ChangeLog:

2016-09-23  Andre Vehreschild  <vehre@gcc.gnu.org>

* trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Use the old caf-
interface where possible.

gcc/testsuite/ChangeLog:

2016-09-23  Andre Vehreschild  <vehre@gcc.gnu.org>

* gfortran.dg/coarray_lib_comm_1.f90: Using the old caf-interface
here now.

From-SVN: r240419

gcc/fortran/ChangeLog
gcc/fortran/trans-intrinsic.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/coarray_lib_comm_1.f90

index 9f146aa73879ab05a536cc636355de165bf4e134..7a99c39986f2ad606d5d1fe534fa38fead97e38f 100644 (file)
@@ -1,3 +1,8 @@
+2016-09-22  Andre Vehreschild  <vehre@gcc.gnu.org>
+
+       * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Use the old caf-
+       interface where possible.
+
 2016-09-22  Paul Thomas  <pault@gcc.gnu.org>
 
        * interface.c (check_dtio_interface1): Introduce errors for
index c6883dc856243a523a181207f76b22a160033d1c..d3f684290bb39d8302d6b61889e68f08f4c86a2b 100644 (file)
@@ -1607,10 +1607,9 @@ gfc_conv_intrinsic_caf_get (gfc_se *se, gfc_expr *expr, tree lhs, tree lhs_kind,
   else
     stat = null_pointer_node;
 
-  /* Always use the new get_by_ref ().  When no allocatable components are
-     present and the lhs does not reallocation then the "old" get () might
-     suffice.  */
-  if (true) //caf_attr->alloc_comp && !may_realloc)
+  /* Only use the new get_by_ref () where it is necessary.  I.e., when the lhs
+     is reallocatable or the right-hand side has allocatable components.  */
+  if (caf_attr->alloc_comp || may_realloc)
     {
       /* Get using caf_get_by_ref.  */
       caf_reference = conv_expr_ref_to_caf_ref (&se->pre, array_expr);
index 51b055321566c5b503678b6f2a61a28457c6375d..488e5db5f50d26e65c5654102307bfd7d5d266f0 100644 (file)
@@ -1,3 +1,8 @@
+2016-09-23  Andre Vehreschild  <vehre@gcc.gnu.org>
+
+       * gfortran.dg/coarray_lib_comm_1.f90: Using the old caf-interface
+       here now.
+
 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
 
        * gcc.target/arm/armv8_2-fp16-arith-1.c: Use arm_v8_2a_fp16_neon
index 7ab5ab4477fa0d089b777e2f90cf0cc4c51a6df3..cfd1e642a41c22d725548b2696a54bf5aba98ba1 100644 (file)
@@ -40,7 +40,7 @@ end
 
 ! { dg-final { scan-tree-dump-times "_gfortran_caf_sendget \\\(caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) a, _gfortran_caf_this_image \\\(0\\\), &parm.\[0-9\]+, 0B, caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, 4, 4, 0, 0B\\\);" 1 "original" } }
 ! { dg-final { scan-tree-dump-times "_gfortran_caf_sendget \\\(caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) a, _gfortran_caf_this_image \\\(0\\\), &parm.\[0-9\]+, 0B, caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, 4, 4, 1, 0B\\\);" 1 "original" } }
-! { dg-final { scan-tree-dump-times "_gfortran_caf_get_by_ref \\\(caf_token.0, 1, &p, &caf_ref.\[0-9\]+, 4, 4, 1, 0, 0B\\\);" 1 "original" } }
-! { dg-final { scan-tree-dump-times "_gfortran_caf_get_by_ref \\\(caf_token.1, 1, &p, &caf_ref.\[0-9\]+, 4, 4, 0, 0, 0B\\\);" 1 "original" } }
+! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.0, \\\(integer\\\(kind=8\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=8\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, &p, 4, 4, 1, 0B\\\);" 1 "original" } }
+! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.1, \\\(integer\\\(kind=8\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=8\\\)\\\) b, 1, &parm.\[0-9\]+, 0B, &p, 4, 4, 0, 0B\\\);" 1 "original" } }
 ! { dg-final { scan-tree-dump-times "_gfortran_caf_sendget \\\(caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, 4, 4, 0, 0B\\\);" 1 "original" } }