[gcc(refs/users/mikael/heads/refactor_descriptor_v08)] Refactoring gfc_conv_descriptor_sm_get
Mikael Morin
mikael@gcc.gnu.org
Sun Sep 14 16:34:07 GMT 2025
https://gcc.gnu.org/g:5cf798dfe55ab7dccf0dbec53ec78444eb87eeb0
commit 5cf798dfe55ab7dccf0dbec53ec78444eb87eeb0
Author: Mikael Morin <mikael@gcc.gnu.org>
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 f3d6d83fd902..28031526ad76 100644
--- a/gcc/fortran/trans-descriptor.cc
+++ b/gcc/fortran/trans-descriptor.cc
@@ -586,6 +586,13 @@ gfc_conv_descriptor_ubound_set (stmtblock_t *block, tree desc,
set_value (block, get_descriptor_ubound (desc, dim), 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));
+}
/*******************************************************************************
* Array descriptor higher level routines. *
diff --git a/gcc/fortran/trans-descriptor.h b/gcc/fortran/trans-descriptor.h
index c477e65de0d6..796fdc8452aa 100644
--- a/gcc/fortran/trans-descriptor.h
+++ b/gcc/fortran/trans-descriptor.h
@@ -57,6 +57,7 @@ tree gfc_conv_descriptor_dimension_get (tree desc, int dim);
tree gfc_conv_descriptor_stride_get (tree desc, tree dim);
tree gfc_conv_descriptor_lbound_get (tree desc, tree dim);
tree gfc_conv_descriptor_ubound_get (tree desc, tree dim);
+tree gfc_conv_descriptor_sm_get (tree desc, tree dim);
void gfc_conv_descriptor_data_set (stmtblock_t *block, tree desc, tree value);
void gfc_conv_descriptor_data_set (stmtblock_t *block, tree desc, tree value);
diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 536bbe543e8a..c4e01fbf32eb 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -6212,10 +6212,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. */
More information about the Gcc-cvs
mailing list