gcc/libgfortran/m4
Richard Sandiford 1524f80b1c Make-lang.in (fortran/trans-resolve.o): Depend on fortran/dependency.h.
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.

Co-Authored-By: Victor Leikehman <LEI@il.ibm.com>

From-SVN: r108459
2005-12-13 05:23:12 +00:00
..
all.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
any.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
count.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
cshift1.m4 libgfortran ChangeLog: 2005-11-27 23:03:33 +02:00
dotprod.m4 libgfortran ChangeLog: 2005-11-27 23:03:33 +02:00
dotprodc.m4 libgfortran ChangeLog: 2005-11-27 23:03:33 +02:00
dotprodl.m4 libgfortran ChangeLog: 2005-11-27 23:03:33 +02:00
eoshift1.m4 libgfortran ChangeLog: 2005-11-27 23:03:33 +02:00
eoshift3.m4 libgfortran ChangeLog: 2005-11-27 23:03:33 +02:00
exponent.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
fraction.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
head.m4 All files: Update FSF address. 2005-08-17 02:49:08 +00:00
iforeach.m4 libgfortran ChangeLog: 2005-11-27 23:03:33 +02:00
ifunction.m4 libgfortran ChangeLog: 2005-11-27 23:03:33 +02:00
in_pack.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
in_unpack.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
iparm.m4 re PR libfortran/21127 (reshape of complex broken) 2005-05-18 20:24:32 +00:00
matmul.m4 Make-lang.in (fortran/trans-resolve.o): Depend on fortran/dependency.h. 2005-12-13 05:23:12 +00:00
matmull.m4 re PR libfortran/21468 (vectorizing libfortran) 2005-11-14 21:48:31 +02:00
maxloc0.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
maxloc1.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
maxval.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
minloc0.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
minloc1.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
minval.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
mtype.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
nearest.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
pow.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
product.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
reshape.m4 libgfortran ChangeLog: 2005-11-27 23:03:33 +02:00
set_exponent.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
shape.m4 libgfortran ChangeLog: 2005-11-27 23:03:33 +02:00
specific.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
specific2.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
sum.m4 re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
transpose.m4 libgfortran ChangeLog: 2005-11-27 23:03:33 +02:00
types.m4 Merge tree-ssa-20020619-branch into mainline. 2004-05-13 02:41:07 -04:00