[gcc(refs/users/mikael/heads/refactor_descriptor_v291.01)] Refactoring gfc_conv_descriptor_sm_get

Mikael Morin via Gcc-cvs <[email protected]>
Newsgroups gmane.comp.gcc.cvs
Message-ID <[email protected]>
https://gcc.gnu.org/g:329db27a5c35c91862c989e04b0a506a58a41008

commit 329db27a5c35c91862c989e04b0a506a58a41008
Author: Mikael Morin <[email protected]>
Date:   Tue Jul 22 11:32:27 2025 +0200

    Refactoring gfc_conv_descriptor_sm_get

Diff:
---
 gcc/fortran/trans-descriptor.cc | 7 +++++++
 gcc/fortran/trans-descriptor.h  | 1 +
 gcc/fortran/trans-expr.cc       | 6 ++----
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/gcc/fortran/trans-descriptor.cc b/gcc/fortran/trans-descriptor.cc
index d375fc27bc2d..6abaff7175f6 100644
--- a/gcc/fortran/trans-descriptor.cc
+++ b/gcc/fortran/trans-descriptor.cc
@@ -595,6 +595,13 @@ gfc_conv_descriptor_ubound_set (stmtblock_t *block, tree desc,
   gfc_add_modify (block, t, fold_convert (TREE_TYPE (t), value));
 }
 
+tree
+gfc_conv_descriptor_sm_get (tree desc, tree dim)
+{
+  return fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type,
+			  gfc_conv_descriptor_stride_get (desc, dim),
+			  gfc_conv_descriptor_span_get (desc));
+}
 
 /* Obtain offsets for trans-types.cc(gfc_get_array_descr_info).  */
 
diff --git a/gcc/fortran/trans-descriptor.h b/gcc/fortran/trans-descriptor.h
index 3999e793a786..17f3a2c11bbc 100644
--- a/gcc/fortran/trans-descriptor.h
+++ b/gcc/fortran/trans-descriptor.h
@@ -35,6 +35,7 @@ tree gfc_conv_descriptor_span_get (tree);
 tree gfc_conv_descriptor_stride_get (tree, tree);
 tree gfc_conv_descriptor_lbound_get (tree, tree);
 tree gfc_conv_descriptor_ubound_get (tree, tree);
+tree gfc_conv_descriptor_sm_get (tree desc, tree dim);
 
 void gfc_conv_descriptor_data_set (stmtblock_t *, tree, tree);
 void gfc_conv_descriptor_offset_set (stmtblock_t *, tree, tree);
diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index be62c19ec026..e0bb1a124bb2 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -6344,10 +6344,8 @@ gfc_conv_gfc_desc_to_cfi_desc (gfc_se *parmse, gfc_expr *e, gfc_symbol *fsym)
       tmp = fold_build2_loc (input_location, PLUS_EXPR, gfc_array_index_type,
 			     tmp, gfc_index_one_node);
       gfc_add_modify (&loop_body, gfc_get_cfi_dim_extent (cfi, idx), tmp);
-      /* d->dim[n].sm = gfc->dim[i].stride  * gfc->span); */
-      tmp = fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type,
-			     gfc_conv_descriptor_stride_get (gfc, idx),
-			     gfc_conv_descriptor_span_get (gfc));
+      /* d->dim[n].sm = gfc->dim[i].stride * gfc->span); */
+      tmp = gfc_conv_descriptor_sm_get (gfc, idx);
       gfc_add_modify (&loop_body, gfc_get_cfi_dim_sm (cfi, idx), tmp);
 
       /* Generate loop.  */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.