On Mon, May 4, 2015 at 11:25 PM, Thomas Koenig <tkoe...@netcologne.de> wrote: > Hello world, > > this is an update of the matmul inline patch. The only difference to > the last version is that it has the ubound simplification taken out. > > Any further comments? OK for trunk? > > Thomas > > 2015-05-05 Thomas Koenig <tkoe...@gcc.gnu.org> > > PR fortran/37131 > * gfortran.h (gfc_isym_id): Add GFC_ISYM_FE_RUNTIME_ERROR. > (gfc_array_spec): Add resolved flag. > (gfc_intrinsic_sym): Add vararg. > * intrinsic.h (gfc_check_fe_runtime_error): Add prototype. > (gfc_resolve_re_runtime_error): Likewise. > Add prototype for gfc_is_reallocatable_lhs. > * array.c (gfc_resolve_array_spec): Do not resolve if it has > already been resolved. > * trans-array.h (gfc_is_reallocatable_lhs): Remove prototype. > * check.c (gfc_check_fe_runtime_error): New function. > * intrinsic.c (add_sym_1p): New function. > (make_vararg): New function. > (add_subroutines): Add fe_runtime_error. > (gfc_intrinsic_sub_interface): Skip sorting for variable number > of arguments. > * iresolve.c (gfc_resolve_fe_runtime_error): New function. > * lang.opt (inline-matmul-limit): New option. > (gfc_post_options): If no inline matmul limit has been set and > BLAS is called externally, use the BLAS limit. > * frontend-passes.c: Include intrinsic.h. > (var_num): New global counter for naming temporary variablbles. > (matrix_case): Enum for differentiating the different matmul > cases. > (realloc_string_callback): Add "trim" to the variable name. > (create_var): Add optional argument vname as part of the name. > Use var_num. Set dimension of result correctly. Split off block > creation into > (insert_block): New function. > (cfe_expr_0): Use "fcn" as part of temporary variable name. > (optimize_namesapce): Also set gfc_current_ns. Call > inline_matmul_assign. > (combine_array_constructor): Use "constr" as part of > temporary name. > (get_array_inq_function): New function. > (build_logical_expr): New function. > (get_operand): new function. > (inline_limit_check): New function. > (runtime_error_ne): New function. > (matmul_lhs_realloc): New function. > (is_functino_or_op): New function. > (has_function_or_op): New function. > (freeze_expr): New function. > (freeze_references): New function. > (convert_to_index_kind): New function. > (create_do_loop): New function. > (get_size_m1): New function. > (scalarized_expr): New function. > (inline_matmul_assign): New function. > * simplify.c (simplify_bound): Simplify the case of the > lower bound of an assumed-shape argument. >
This caused: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66073 -- H.J.