gcc/fortran/
* Make-lang.in (fortran/trans-resolve.o): Depend on fortran/dependency.h. * gfortran.h (gfc_expr): Add an "inline_noncopying_intrinsic" flag. * dependency.h (gfc_get_noncopying_intrinsic_argument): Declare. (gfc_check_fncall_dependency): Change prototype. * dependency.c (gfc_get_noncopying_intrinsic_argument): New function. (gfc_check_argument_var_dependency): New function, split from gfc_check_fncall_dependency. (gfc_check_argument_dependency): New function. (gfc_check_fncall_dependency): Replace the expression parameter with separate symbol and argument list parameters. Generalize the function to handle dependencies for any type of expression, not just variables. Accept a further argument giving the intent of the expression being tested. Ignore intent(in) arguments if that expression is also intent(in). * resolve.c: Include dependency.h. (find_noncopying_intrinsics): New function. (resolve_function, resolve_call): Call it on success. * trans-array.h (gfc_conv_array_transpose): Declare. (gfc_check_fncall_dependency): Remove prototype. * trans-array.c (gfc_conv_array_transpose): New function. * trans-intrinsic.c (gfc_conv_intrinsic_function): Don't use the libcall handling if the expression is to be evaluated inline. Add a case for handling inline transpose()s. * trans-expr.c (gfc_trans_arrayfunc_assign): Adjust for the new interface provided by gfc_check_fncall_dependency. libgfortran/ * m4/matmul.m4: Use a different order in the special case of a transposed first argument. * generated/matmul_c4.c, generated/matmul_c8.c, generated/matmul_c10.c, * generated/matmul_c16.c, generated/matmul_i4.c, generated/matmul_i8.c, * generated/matmul_i10.c, generated/matmul_r4.c, generated/matmul_r8.c * generated/matmul_r10.c, generated/matmul_r16.c: Regenerated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108459 138bc75d-0d04-0410-961f-82ee72b054a4
Showing
- gcc/fortran/ChangeLog 29 additions, 0 deletionsgcc/fortran/ChangeLog
- gcc/fortran/Make-lang.in 1 addition, 0 deletionsgcc/fortran/Make-lang.in
- gcc/fortran/dependency.c 104 additions, 28 deletionsgcc/fortran/dependency.c
- gcc/fortran/dependency.h 3 additions, 1 deletiongcc/fortran/dependency.h
- gcc/fortran/gfortran.h 3 additions, 0 deletionsgcc/fortran/gfortran.h
- gcc/fortran/resolve.c 40 additions, 17 deletionsgcc/fortran/resolve.c
- gcc/fortran/trans-array.c 89 additions, 0 deletionsgcc/fortran/trans-array.c
- gcc/fortran/trans-array.h 2 additions, 2 deletionsgcc/fortran/trans-array.h
- gcc/fortran/trans-expr.c 3 additions, 1 deletiongcc/fortran/trans-expr.c
- gcc/fortran/trans-intrinsic.c 11 additions, 1 deletiongcc/fortran/trans-intrinsic.c
- libgfortran/ChangeLog 10 additions, 0 deletionslibgfortran/ChangeLog
- libgfortran/generated/matmul_c10.c 63 additions, 8 deletionslibgfortran/generated/matmul_c10.c
- libgfortran/generated/matmul_c16.c 63 additions, 8 deletionslibgfortran/generated/matmul_c16.c
- libgfortran/generated/matmul_c4.c 63 additions, 8 deletionslibgfortran/generated/matmul_c4.c
- libgfortran/generated/matmul_c8.c 63 additions, 8 deletionslibgfortran/generated/matmul_c8.c
- libgfortran/generated/matmul_i16.c 63 additions, 8 deletionslibgfortran/generated/matmul_i16.c
- libgfortran/generated/matmul_i4.c 63 additions, 8 deletionslibgfortran/generated/matmul_i4.c
- libgfortran/generated/matmul_i8.c 63 additions, 8 deletionslibgfortran/generated/matmul_i8.c
- libgfortran/generated/matmul_r10.c 63 additions, 8 deletionslibgfortran/generated/matmul_r10.c
- libgfortran/generated/matmul_r16.c 63 additions, 8 deletionslibgfortran/generated/matmul_r16.c
Loading
Please register or sign in to comment