[gcc(refs/users/mikael/heads/refactor_descriptor_v08)] Simplification initialisation offset remap descriptor

Mikael Morin mikael@gcc.gnu.org
Wed Sep 17 10:40:05 GMT 2025


https://gcc.gnu.org/g:238146e371b8a6c067d8f4edf1b106c8fa069219

commit 238146e371b8a6c067d8f4edf1b106c8fa069219
Author: Mikael Morin <mikael@gcc.gnu.org>
Date:   Sat Aug 16 15:13:04 2025 +0200

    Simplification initialisation offset remap descriptor
    
    Modif initialisation stride
    
    Revert partiel initialisation stride
    
    Suppression warning argument inutilisé
    
    Suppression argument inutilisé

Diff:
---
 gcc/fortran/trans-descriptor.cc | 20 ++------------------
 gcc/fortran/trans-descriptor.h  |  2 +-
 gcc/fortran/trans-expr.cc       |  2 +-
 3 files changed, 4 insertions(+), 20 deletions(-)

diff --git a/gcc/fortran/trans-descriptor.cc b/gcc/fortran/trans-descriptor.cc
index 3df958c4ec86..641874104fab 100644
--- a/gcc/fortran/trans-descriptor.cc
+++ b/gcc/fortran/trans-descriptor.cc
@@ -1400,7 +1400,7 @@ gfc_copy_descriptor (stmtblock_t *block, tree dest, tree src, tree ptr,
 
 void
 gfc_conv_remap_descriptor (stmtblock_t *block, tree dest, int dest_rank,
-			   tree src, int src_rank, gfc_array_ref *ar)
+			   tree src, gfc_array_ref *ar)
 {
   /* Set dtype.  */
   gfc_conv_descriptor_dtype_set (block, dest,
@@ -1425,23 +1425,7 @@ gfc_conv_remap_descriptor (stmtblock_t *block, tree dest, int dest_rank,
 
   /* Copy offset but adjust it such that it would correspond
      to a lbound of zero.  */
-  if (src_rank == -1)
-    gfc_conv_descriptor_offset_set (block, dest,
-				    gfc_index_zero_node);
-  else
-    {
-      tree offs = gfc_conv_descriptor_offset_get (src);
-      for (int dim = 0; dim < src_rank; ++dim)
-	{
-	  tree stride = gfc_conv_descriptor_stride_get (src, gfc_rank_cst[dim]);
-	  tree lbound = gfc_conv_descriptor_lbound_get (src, gfc_rank_cst[dim]);
-	  tree tmp = fold_build2_loc (input_location, MULT_EXPR,
-				      gfc_array_index_type, stride, lbound);
-	  offs = fold_build2_loc (input_location, PLUS_EXPR,
-				  gfc_array_index_type, offs, tmp);
-	}
-      gfc_conv_descriptor_offset_set (block, dest, offs);
-    }
+  gfc_conv_descriptor_offset_set (block, dest, gfc_index_zero_node);
 
   /* Set the bounds as declared for the LHS and calculate strides as
      well as another offset update accordingly.  */
diff --git a/gcc/fortran/trans-descriptor.h b/gcc/fortran/trans-descriptor.h
index 35f50c144304..c6a079036902 100644
--- a/gcc/fortran/trans-descriptor.h
+++ b/gcc/fortran/trans-descriptor.h
@@ -113,7 +113,7 @@ void gfc_copy_descriptor (stmtblock_t *, tree, tree, tree, int, gfc_ss *);
 void gfc_copy_descriptor (stmtblock_t *, tree, tree, bool);
 void gfc_copy_descriptor (stmtblock_t *, tree, tree, int);
 
-void gfc_conv_remap_descriptor (stmtblock_t *, tree, int, tree, int,
+void gfc_conv_remap_descriptor (stmtblock_t *, tree, int, tree,
 				gfc_array_ref *);
 
 void gfc_set_descriptor_from_scalar_class (stmtblock_t *, tree, tree, gfc_expr *);
diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 2c513303af5c..7196fd59c40c 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -11067,7 +11067,7 @@ gfc_trans_pointer_assignment (gfc_expr * expr1, gfc_expr * expr2)
 		 converted in rse and now have to build the correct LHS
 		 descriptor for it.  */
 	      gfc_conv_remap_descriptor (&block, desc, expr1->rank,
-					 rse.expr, expr2->rank, &remap->u.ar);
+					 rse.expr, &remap->u.ar);
 	    }
 	  else
 	    /* Bounds remapping.  Just shift the lower bounds.  */


More information about the Gcc-cvs mailing list