This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, This patch adds m4/transposec.m4 which generates transpose functions transpose_c4 and transpose_c8 functions for complex types. This patch has been bootstrapped and regtested on powerpc-linux and sparc-linux with no regressions and fixes intrinsics_transpose.f90. The generated files, including the diff to Makefile.in, are attached to the bug. Ok for mainline? -- Thanks, Jim http://www.student.cs.uwaterloo.ca/~ja2morri/ http://phython.blogspot.com http://open.nit.ca/wiki/?page=jim
2005-01-20 James A. Morrison <phython@gcc.gnu.org> PR fortran/19294 * iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or transpose_c8 for complex types. * Makefile.am: Generate transpose_c4.c and transpose_c8.c from m4/transposec.m4. * m4/transposec.m4: New file. * Makefile.in: Regenerate. * generated/transpose_c4.c, generated/transpose_c8.c: Generate. Index: gcc/fortran/iresolve.c =================================================================== RCS file: /cvsroot/gcc/gcc/gcc/fortran/iresolve.c,v retrieving revision 1.30 diff -u -p -r1.30 iresolve.c --- gcc/fortran/iresolve.c 18 Jan 2005 12:11:52 -0000 1.30 +++ gcc/fortran/iresolve.c 19 Jan 2005 13:34:08 -0000 @@ -1340,31 +1340,30 @@ gfc_resolve_transpose (gfc_expr * f, gfc mpz_init_set (f->shape[1], matrix->shape[0]); } - switch (matrix->ts.type) - { - case BT_COMPLEX: - kind = matrix->ts.kind * 2; - break; - - case BT_REAL: - case BT_INTEGER: - case BT_LOGICAL: - kind = matrix->ts.kind; - break; - - default: - kind = 0; - break; - - } + kind = matrix->ts.kind; switch (kind) { case 4: case 8: - /* case 16: */ - f->value.function.name = - gfc_get_string (PREFIX("transpose_%d"), kind); + switch (matrix->ts.type) + { + case BT_COMPLEX: + f->value.function.name = + gfc_get_string (PREFIX("transpose_c%d"), kind); + break; + + case BT_REAL: + case BT_INTEGER: + case BT_LOGICAL: + f->value.function.name = + gfc_get_string (PREFIX("transpose_%d"), kind); + break; + + default: + f->value.function.name = PREFIX("transpose"); + break; + } break; default: Index: libgfortran/Makefile.am =================================================================== RCS file: /cvsroot/gcc/gcc/libgfortran/Makefile.am,v retrieving revision 1.28 diff -u -p -r1.28 Makefile.am --- libgfortran/Makefile.am 9 Dec 2004 16:31:19 -0000 1.28 +++ libgfortran/Makefile.am 19 Jan 2005 13:34:34 -0000 @@ -204,6 +204,10 @@ i_transpose_c= \ generated/transpose_i4.c \ generated/transpose_i8.c +i_transposec_c= \ +generated/transpose_c4.c \ +generated/transpose_c8.c + i_shape_c= \ generated/shape_i4.c \ generated/shape_i8.c @@ -268,13 +272,15 @@ m4_files= m4/iparm.m4 m4/ifunction.m4 m4 m4/dotprod.m4 m4/dotprodl.m4 m4/dotprodc.m4 m4/matmul.m4 m4/matmull.m4 \ m4/ctrig.m4 m4/cexp.m4 m4/chyp.m4 m4/mtype.m4 \ m4/specific.m4 m4/specific2.m4 m4/head.m4 m4/shape.m4 m4/reshape.m4 \ - m4/transpose.m4 m4/eoshift1.m4 m4/eoshift3.m4 m4/exponent.m4 \ + m4/transpose.m4 m4/transposec.m4 m4/eoshift1.m4 m4/eoshift3.m4 \ + m4/exponent.m4 \ m4/fraction.m4 m4/nearest.m4 m4/set_exponent.m4 m4/pow.m4 gfor_built_src= $(i_all_c) $(i_any_c) $(i_count_c) $(i_maxloc0_c) \ $(i_maxloc1_c) $(i_maxval_c) $(i_minloc0_c) $(i_minloc1_c) $(i_minval_c) \ $(i_product_c) $(i_sum_c) $(i_dotprod_c) $(i_dotprodl_c) $(i_dotprodc_c) \ - $(i_matmul_c) $(i_matmull_c) $(i_transpose_c) $(i_shape_c) $(i_eoshift1_c) \ + $(i_matmul_c) $(i_matmull_c) $(i_transpose_c) $(i_transposec_c) \ + $(i_shape_c) $(i_eoshift1_c) \ $(i_eoshift3_c) $(i_cshift1_c) $(i_reshape_c) $(in_pack_c) $(in_unpack_c) \ $(i_exponent_c) $(i_fraction_c) $(i_nearest_c) $(i_set_exponent_c) \ $(i_pow_c) \ @@ -458,6 +464,9 @@ $(i_matmull_c): m4/matmull.m4 $(I_M4_DEP $(i_transpose_c): m4/transpose.m4 $(I_M4_DEPS) m4 -Dfile=$@ -I$(srcdir)/m4 transpose.m4 > $(srcdir)/$@ +$(i_transposec_c): m4/transposec.m4 $(I_M4_DEPS) + m4 -Dfile=$@ -I$(srcdir)/m4 transposec.m4 > $(srcdir)/$@ + $(i_shape_c): m4/shape.m4 $(I_M4_DEPS) m4 -Dfile=$@ -I$(srcdir)/m4 shape.m4 > $(srcdir)/$@
Attachment:
transposec.m4
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |