diff options
author | Andreas Jaeger <aj@suse.de> | 2005-05-15 17:37:18 +0200 |
---|---|---|
committer | Andreas Jaeger <aj@gcc.gnu.org> | 2005-05-15 17:37:18 +0200 |
commit | e606fb399e59f59bf0c56e3f2a04c18b85b4ea4f (patch) | |
tree | 86a911fd57b949150311c11e562e0608b3efc89c /libgfortran/intrinsics | |
parent | 6b0215364d3709b555115d4a1bdcdea70350dbc0 (diff) | |
download | gcc-e606fb399e59f59bf0c56e3f2a04c18b85b4ea4f.zip gcc-e606fb399e59f59bf0c56e3f2a04c18b85b4ea4f.tar.gz gcc-e606fb399e59f59bf0c56e3f2a04c18b85b4ea4f.tar.bz2 |
pack_generic.c (pack): Remove unneeded calculation.
* intrinsics/pack_generic.c (pack): Remove unneeded calculation.
* m4/matmull.m4 (matmul_): Remove unneeded calculations, fix
pointer cast to avoid warning.
* generated/matmul_l4.c: Regenerated.
* generated/matmul_l8.c: Regenerated.
* Makefile.am: Remove AM_CFLAGS here.
* configure.ac: Define AM_CFLAGS and AM_FCFLAGS so that warnings
are set. Set additionally -Wstrict-prototypes for CFLAGS.
* Makefile.in: Regenerated
* configure: Regenerated.
From-SVN: r99723
Diffstat (limited to 'libgfortran/intrinsics')
-rw-r--r-- | libgfortran/intrinsics/pack_generic.c | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/libgfortran/intrinsics/pack_generic.c b/libgfortran/intrinsics/pack_generic.c index cdc043b..06298bb 100644 --- a/libgfortran/intrinsics/pack_generic.c +++ b/libgfortran/intrinsics/pack_generic.c @@ -1,5 +1,5 @@ /* Generic implementation of the PACK intrinsic - Copyright (C) 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -37,7 +37,7 @@ Boston, MA 02111-1307, USA. */ /* PACK is specified as follows: 13.14.80 PACK (ARRAY, MASK, [VECTOR]) - + Description: Pack an array into an array of rank one under the control of a mask. @@ -49,7 +49,7 @@ Boston, MA 02111-1307, USA. */ VECTOR (optional) shall be of the same type and type parameters as ARRAY. VECTOR shall have at least as many elements as there are true elements in MASK. If MASK is a scalar - with the value true, VECTOR shall have at least as many + with the value true, VECTOR shall have at least as many elements as there are in ARRAY. Result Characteristics: The result is an array of rank one with the @@ -69,7 +69,7 @@ Boston, MA 02111-1307, USA. */ | 9 0 0 | may be "gathered" by the function PACK. The result of | 0 0 7 | PACK (M, MASK = M.NE.0) is [9,7] and the result of PACK (M, M.NE.0, - VECTOR = (/ 2,4,6,8,10,12 /)) is [9,7,6,8,10,12]. + VECTOR = (/ 2,4,6,8,10,12 /)) is [9,7,6,8,10,12]. There are two variants of the PACK intrinsic: one, where MASK is array valued, and the other one where MASK is scalar. */ @@ -125,7 +125,6 @@ pack (gfc_array_char *ret, const gfc_array_char *array, runtime_error ("Funny sized logical array"); for (n = 0; n < dim; n++) mstride[n] <<= 1; - mstride0 <<= 1; mptr = GFOR_POINTER_L8_TO_L4 (mptr); } @@ -134,15 +133,15 @@ pack (gfc_array_char *ret, const gfc_array_char *array, /* Allocate the memory for the result. */ int total; - if (vector != NULL) - { + if (vector != NULL) + { /* The return array will have as many - elements as there are in VECTOR. */ - total = vector->dim[0].ubound + 1 - vector->dim[0].lbound; - } - else - { - /* We have to count the true elements in MASK. */ + elements as there are in VECTOR. */ + total = vector->dim[0].ubound + 1 - vector->dim[0].lbound; + } + else + { + /* We have to count the true elements in MASK. */ /* TODO: We could speed up pack easily in the case of only few .TRUE. entries in MASK, by keeping track of where we @@ -152,7 +151,7 @@ pack (gfc_array_char *ret, const gfc_array_char *array, only have to traverse the list, and copy those elements into the result array. In the case of datatypes which fit in one of the integer types we could also cache the - value instead of a pointer to it. + value instead of a pointer to it. This approach might be bad from the point of view of cache behavior in the case where our cache is not big enough to hold all elements that have to be copied. */ @@ -195,7 +194,7 @@ pack (gfc_array_char *ret, const gfc_array_char *array, } } } - + /* Setup the array descriptor. */ ret->dim[0].lbound = 0; ret->dim[0].ubound = total - 1; @@ -344,7 +343,7 @@ pack_s (gfc_array_char *ret, const gfc_array_char *array, ret->dim[0].stride = 1; ret->data = internal_malloc_size (0); ret->base = 0; - + return; } } @@ -363,7 +362,7 @@ pack_s (gfc_array_char *ret, const gfc_array_char *array, rstride0 = size; rptr = ret->data; - /* The remaining possibilities are now: + /* The remaining possibilities are now: If MASK is .TRUE., we have to copy the source array into the result array. We then have to fill it up with elements from VECTOR. If MASK is .FALSE., we have to copy VECTOR into the result @@ -404,7 +403,7 @@ pack_s (gfc_array_char *ret, const gfc_array_char *array, } } } - + /* Add any remaining elements from VECTOR. */ if (vector) { |