public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libfortran/32972] New: performance of pack/unpack
@ 2007-08-03 6:39 tkoenig at gcc dot gnu dot org
2007-08-10 20:58 ` [Bug libfortran/32972] " tkoenig at gcc dot gnu dot org
` (25 more replies)
0 siblings, 26 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2007-08-03 6:39 UTC (permalink / raw)
To: gcc-bugs
Right now, pack/unpack
a) use memcpy, even if a native type is available
b) convert mask arguments of kind 1 and 2 to default
logical kind, which wastes cycles and memory
Case b) is actually true of all intrinsic functions with mask.
--
Summary: performance of pack/unpack
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: enhancement
Priority: P3
Component: libfortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tkoenig at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
@ 2007-08-10 20:58 ` tkoenig at gcc dot gnu dot org
2007-08-10 21:00 ` tkoenig at gcc dot gnu dot org
` (24 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2007-08-10 20:58 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from tkoenig at gcc dot gnu dot org 2007-08-10 20:58 -------
Hi FX,
I just thought you'd like to be in the loop for this one.
--
tkoenig at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |fxcoudert at gcc dot gnu dot
| |org
AssignedTo|unassigned at gcc dot gnu |tkoenig at gcc dot gnu dot
|dot org |org
Status|UNCONFIRMED |ASSIGNED
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2007-08-10 20:58:28
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
2007-08-10 20:58 ` [Bug libfortran/32972] " tkoenig at gcc dot gnu dot org
@ 2007-08-10 21:00 ` tkoenig at gcc dot gnu dot org
2007-08-11 20:34 ` tkoenig at gcc dot gnu dot org
` (23 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2007-08-10 21:00 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from tkoenig at gcc dot gnu dot org 2007-08-10 20:59 -------
Created an attachment (id=14051)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14051&action=view)
partial patch
Partial patch (doesn't yet remove the conversion of logical(kind=1)
and logical(kind=2) mask arguments).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
2007-08-10 20:58 ` [Bug libfortran/32972] " tkoenig at gcc dot gnu dot org
2007-08-10 21:00 ` tkoenig at gcc dot gnu dot org
@ 2007-08-11 20:34 ` tkoenig at gcc dot gnu dot org
2007-08-16 18:16 ` tkoenig at gcc dot gnu dot org
` (22 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2007-08-11 20:34 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from tkoenig at gcc dot gnu dot org 2007-08-11 20:34 -------
Created an attachment (id=14055)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14055&action=view)
proposed patch
Here's a patch, which is currently regtesting.
We'll absolutely need to check this on a big-endian machine
before committing it, though.
--
tkoenig at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #14051|0 |1
is obsolete| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (2 preceding siblings ...)
2007-08-11 20:34 ` tkoenig at gcc dot gnu dot org
@ 2007-08-16 18:16 ` tkoenig at gcc dot gnu dot org
2007-08-24 16:17 ` tkoenig at gcc dot gnu dot org
` (21 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2007-08-16 18:16 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from tkoenig at gcc dot gnu dot org 2007-08-16 18:16 -------
Hi Dominique,
would you be willing to give the patch at
http://gcc.gnu.org/ml/fortran/2007-08/msg00295.html
a spin on your Mac to check whether this is OK? That would
be great, because I don't have a big-endian system, and the
breakage introduced by an earlier version was on a big-endian
machine.
--
tkoenig at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dominiq at lps dot ens dot
| |fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (3 preceding siblings ...)
2007-08-16 18:16 ` tkoenig at gcc dot gnu dot org
@ 2007-08-24 16:17 ` tkoenig at gcc dot gnu dot org
2007-12-08 18:31 ` jvdelisle at gcc dot gnu dot org
` (20 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2007-08-24 16:17 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from tkoenig at gcc dot gnu dot org 2007-08-24 16:16 -------
Subject: Bug 32972
Author: tkoenig
Date: Fri Aug 24 16:16:16 2007
New Revision: 127774
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=127774
Log:
2007-08-24 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/32972
* iresolve.c: Don't convert array masks.
2007-08-24 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/32972
* libgfortran.h: Remove GFOR_POINTER_L8_TO_L4 macro.
Add GFOR_POINTER_TO_L1 macro.
* m4/iforeach.m4(`m'name`'rtype_qual`_'atype_code):
Change argument 'mask' to gfc_array_l1. Adjust prototype.
Change mask pointer to GFC_LOGICAL_1. Multiply strides
by kind of mask
* m4/ifunction.m4: Likewise.
* intrinsics/pack_generic.c(pack_internal): Likewise.
* intrinsics/unpack_generic.c(unpack_internal): Likewise.
* m4/matmull.m4: Switch to GFC_LOGICAL_1. Multiply strides by
kind of logical arguments a and b.
* generated/matmul_l16.c: Regenerated.
* generated/matmul_l4.c: Regenerated.
* generated/matmul_l8.c: Regenerated.
* generated/maxloc0_16_i1.c: Regenerated.
* generated/maxloc0_16_i16.c: Regenerated.
* generated/maxloc0_16_i2.c: Regenerated.
* generated/maxloc0_16_i4.c: Regenerated.
* generated/maxloc0_16_i8.c: Regenerated.
* generated/maxloc0_16_r10.c: Regenerated.
* generated/maxloc0_16_r16.c: Regenerated.
* generated/maxloc0_16_r4.c: Regenerated.
* generated/maxloc0_16_r8.c: Regenerated.
* generated/maxloc0_4_i1.c: Regenerated.
* generated/maxloc0_4_i16.c: Regenerated.
* generated/maxloc0_4_i2.c: Regenerated.
* generated/maxloc0_4_i4.c: Regenerated.
* generated/maxloc0_4_i8.c: Regenerated.
* generated/maxloc0_4_r10.c: Regenerated.
* generated/maxloc0_4_r16.c: Regenerated.
* generated/maxloc0_4_r4.c: Regenerated.
* generated/maxloc0_4_r8.c: Regenerated.
* generated/maxloc0_8_i1.c: Regenerated.
* generated/maxloc0_8_i16.c: Regenerated.
* generated/maxloc0_8_i2.c: Regenerated.
* generated/maxloc0_8_i4.c: Regenerated.
* generated/maxloc0_8_i8.c: Regenerated.
* generated/maxloc0_8_r10.c: Regenerated.
* generated/maxloc0_8_r16.c: Regenerated.
* generated/maxloc0_8_r4.c: Regenerated.
* generated/maxloc0_8_r8.c: Regenerated.
* generated/maxloc1_16_i1.c: Regenerated.
* generated/maxloc1_16_i16.c: Regenerated.
* generated/maxloc1_16_i2.c: Regenerated.
* generated/maxloc1_16_i4.c: Regenerated.
* generated/maxloc1_16_i8.c: Regenerated.
* generated/maxloc1_16_r10.c: Regenerated.
* generated/maxloc1_16_r16.c: Regenerated.
* generated/maxloc1_16_r4.c: Regenerated.
* generated/maxloc1_16_r8.c: Regenerated.
* generated/maxloc1_4_i1.c: Regenerated.
* generated/maxloc1_4_i16.c: Regenerated.
* generated/maxloc1_4_i2.c: Regenerated.
* generated/maxloc1_4_i4.c: Regenerated.
* generated/maxloc1_4_i8.c: Regenerated.
* generated/maxloc1_4_r10.c: Regenerated.
* generated/maxloc1_4_r16.c: Regenerated.
* generated/maxloc1_4_r4.c: Regenerated.
* generated/maxloc1_4_r8.c: Regenerated.
* generated/maxloc1_8_i1.c: Regenerated.
* generated/maxloc1_8_i16.c: Regenerated.
* generated/maxloc1_8_i2.c: Regenerated.
* generated/maxloc1_8_i4.c: Regenerated.
* generated/maxloc1_8_i8.c: Regenerated.
* generated/maxloc1_8_r10.c: Regenerated.
* generated/maxloc1_8_r16.c: Regenerated.
* generated/maxloc1_8_r4.c: Regenerated.
* generated/maxloc1_8_r8.c: Regenerated.
* generated/maxval_i1.c: Regenerated.
* generated/maxval_i16.c: Regenerated.
* generated/maxval_i2.c: Regenerated.
* generated/maxval_i4.c: Regenerated.
* generated/maxval_i8.c: Regenerated.
* generated/maxval_r10.c: Regenerated.
* generated/maxval_r16.c: Regenerated.
* generated/maxval_r4.c: Regenerated.
* generated/maxval_r8.c: Regenerated.
* generated/minloc0_16_i1.c: Regenerated.
* generated/minloc0_16_i16.c: Regenerated.
* generated/minloc0_16_i2.c: Regenerated.
* generated/minloc0_16_i4.c: Regenerated.
* generated/minloc0_16_i8.c: Regenerated.
* generated/minloc0_16_r10.c: Regenerated.
* generated/minloc0_16_r16.c: Regenerated.
* generated/minloc0_16_r4.c: Regenerated.
* generated/minloc0_16_r8.c: Regenerated.
* generated/minloc0_4_i1.c: Regenerated.
* generated/minloc0_4_i16.c: Regenerated.
* generated/minloc0_4_i2.c: Regenerated.
* generated/minloc0_4_i4.c: Regenerated.
* generated/minloc0_4_i8.c: Regenerated.
* generated/minloc0_4_r10.c: Regenerated.
* generated/minloc0_4_r16.c: Regenerated.
* generated/minloc0_4_r4.c: Regenerated.
* generated/minloc0_4_r8.c: Regenerated.
* generated/minloc0_8_i1.c: Regenerated.
* generated/minloc0_8_i16.c: Regenerated.
* generated/minloc0_8_i2.c: Regenerated.
* generated/minloc0_8_i4.c: Regenerated.
* generated/minloc0_8_i8.c: Regenerated.
* generated/minloc0_8_r10.c: Regenerated.
* generated/minloc0_8_r16.c: Regenerated.
* generated/minloc0_8_r4.c: Regenerated.
* generated/minloc0_8_r8.c: Regenerated.
* generated/minloc1_16_i1.c: Regenerated.
* generated/minloc1_16_i16.c: Regenerated.
* generated/minloc1_16_i2.c: Regenerated.
* generated/minloc1_16_i4.c: Regenerated.
* generated/minloc1_16_i8.c: Regenerated.
* generated/minloc1_16_r10.c: Regenerated.
* generated/minloc1_16_r16.c: Regenerated.
* generated/minloc1_16_r4.c: Regenerated.
* generated/minloc1_16_r8.c: Regenerated.
* generated/minloc1_4_i1.c: Regenerated.
* generated/minloc1_4_i16.c: Regenerated.
* generated/minloc1_4_i2.c: Regenerated.
* generated/minloc1_4_i4.c: Regenerated.
* generated/minloc1_4_i8.c: Regenerated.
* generated/minloc1_4_r10.c: Regenerated.
* generated/minloc1_4_r16.c: Regenerated.
* generated/minloc1_4_r4.c: Regenerated.
* generated/minloc1_4_r8.c: Regenerated.
* generated/minloc1_8_i1.c: Regenerated.
* generated/minloc1_8_i16.c: Regenerated.
* generated/minloc1_8_i2.c: Regenerated.
* generated/minloc1_8_i4.c: Regenerated.
* generated/minloc1_8_i8.c: Regenerated.
* generated/minloc1_8_r10.c: Regenerated.
* generated/minloc1_8_r16.c: Regenerated.
* generated/minloc1_8_r4.c: Regenerated.
* generated/minloc1_8_r8.c: Regenerated.
* generated/minval_i1.c: Regenerated.
* generated/minval_i16.c: Regenerated.
* generated/minval_i2.c: Regenerated.
* generated/minval_i4.c: Regenerated.
* generated/minval_i8.c: Regenerated.
* generated/minval_r10.c: Regenerated.
* generated/minval_r16.c: Regenerated.
* generated/minval_r4.c: Regenerated.
* generated/minval_r8.c: Regenerated.
* generated/product_c10.c: Regenerated.
* generated/product_c16.c: Regenerated.
* generated/product_c4.c: Regenerated.
* generated/product_c8.c: Regenerated.
* generated/product_i1.c: Regenerated.
* generated/product_i16.c: Regenerated.
* generated/product_i2.c: Regenerated.
* generated/product_i4.c: Regenerated.
* generated/product_i8.c: Regenerated.
* generated/product_r10.c: Regenerated.
* generated/product_r16.c: Regenerated.
* generated/product_r4.c: Regenerated.
* generated/product_r8.c: Regenerated.
* generated/sum_c10.c: Regenerated.
* generated/sum_c16.c: Regenerated.
* generated/sum_c4.c: Regenerated.
* generated/sum_c8.c: Regenerated.
* generated/sum_i1.c: Regenerated.
* generated/sum_i16.c: Regenerated.
* generated/sum_i2.c: Regenerated.
* generated/sum_i4.c: Regenerated.
* generated/sum_i8.c: Regenerated.
* generated/sum_r10.c: Regenerated.
* generated/sum_r16.c: Regenerated.
* generated/sum_r4.c: Regenerated.
* generated/sum_r8.c: Regenerated.
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/iresolve.c
trunk/libgfortran/ChangeLog
trunk/libgfortran/generated/matmul_l16.c
trunk/libgfortran/generated/matmul_l4.c
trunk/libgfortran/generated/matmul_l8.c
trunk/libgfortran/generated/maxloc0_16_i1.c
trunk/libgfortran/generated/maxloc0_16_i16.c
trunk/libgfortran/generated/maxloc0_16_i2.c
trunk/libgfortran/generated/maxloc0_16_i4.c
trunk/libgfortran/generated/maxloc0_16_i8.c
trunk/libgfortran/generated/maxloc0_16_r10.c
trunk/libgfortran/generated/maxloc0_16_r16.c
trunk/libgfortran/generated/maxloc0_16_r4.c
trunk/libgfortran/generated/maxloc0_16_r8.c
trunk/libgfortran/generated/maxloc0_4_i1.c
trunk/libgfortran/generated/maxloc0_4_i16.c
trunk/libgfortran/generated/maxloc0_4_i2.c
trunk/libgfortran/generated/maxloc0_4_i4.c
trunk/libgfortran/generated/maxloc0_4_i8.c
trunk/libgfortran/generated/maxloc0_4_r10.c
trunk/libgfortran/generated/maxloc0_4_r16.c
trunk/libgfortran/generated/maxloc0_4_r4.c
trunk/libgfortran/generated/maxloc0_4_r8.c
trunk/libgfortran/generated/maxloc0_8_i1.c
trunk/libgfortran/generated/maxloc0_8_i16.c
trunk/libgfortran/generated/maxloc0_8_i2.c
trunk/libgfortran/generated/maxloc0_8_i4.c
trunk/libgfortran/generated/maxloc0_8_i8.c
trunk/libgfortran/generated/maxloc0_8_r10.c
trunk/libgfortran/generated/maxloc0_8_r16.c
trunk/libgfortran/generated/maxloc0_8_r4.c
trunk/libgfortran/generated/maxloc0_8_r8.c
trunk/libgfortran/generated/maxloc1_16_i1.c
trunk/libgfortran/generated/maxloc1_16_i16.c
trunk/libgfortran/generated/maxloc1_16_i2.c
trunk/libgfortran/generated/maxloc1_16_i4.c
trunk/libgfortran/generated/maxloc1_16_i8.c
trunk/libgfortran/generated/maxloc1_16_r10.c
trunk/libgfortran/generated/maxloc1_16_r16.c
trunk/libgfortran/generated/maxloc1_16_r4.c
trunk/libgfortran/generated/maxloc1_16_r8.c
trunk/libgfortran/generated/maxloc1_4_i1.c
trunk/libgfortran/generated/maxloc1_4_i16.c
trunk/libgfortran/generated/maxloc1_4_i2.c
trunk/libgfortran/generated/maxloc1_4_i4.c
trunk/libgfortran/generated/maxloc1_4_i8.c
trunk/libgfortran/generated/maxloc1_4_r10.c
trunk/libgfortran/generated/maxloc1_4_r16.c
trunk/libgfortran/generated/maxloc1_4_r4.c
trunk/libgfortran/generated/maxloc1_4_r8.c
trunk/libgfortran/generated/maxloc1_8_i1.c
trunk/libgfortran/generated/maxloc1_8_i16.c
trunk/libgfortran/generated/maxloc1_8_i2.c
trunk/libgfortran/generated/maxloc1_8_i4.c
trunk/libgfortran/generated/maxloc1_8_i8.c
trunk/libgfortran/generated/maxloc1_8_r10.c
trunk/libgfortran/generated/maxloc1_8_r16.c
trunk/libgfortran/generated/maxloc1_8_r4.c
trunk/libgfortran/generated/maxloc1_8_r8.c
trunk/libgfortran/generated/maxval_i1.c
trunk/libgfortran/generated/maxval_i16.c
trunk/libgfortran/generated/maxval_i2.c
trunk/libgfortran/generated/maxval_i4.c
trunk/libgfortran/generated/maxval_i8.c
trunk/libgfortran/generated/maxval_r10.c
trunk/libgfortran/generated/maxval_r16.c
trunk/libgfortran/generated/maxval_r4.c
trunk/libgfortran/generated/maxval_r8.c
trunk/libgfortran/generated/minloc0_16_i1.c
trunk/libgfortran/generated/minloc0_16_i16.c
trunk/libgfortran/generated/minloc0_16_i2.c
trunk/libgfortran/generated/minloc0_16_i4.c
trunk/libgfortran/generated/minloc0_16_i8.c
trunk/libgfortran/generated/minloc0_16_r10.c
trunk/libgfortran/generated/minloc0_16_r16.c
trunk/libgfortran/generated/minloc0_16_r4.c
trunk/libgfortran/generated/minloc0_16_r8.c
trunk/libgfortran/generated/minloc0_4_i1.c
trunk/libgfortran/generated/minloc0_4_i16.c
trunk/libgfortran/generated/minloc0_4_i2.c
trunk/libgfortran/generated/minloc0_4_i4.c
trunk/libgfortran/generated/minloc0_4_i8.c
trunk/libgfortran/generated/minloc0_4_r10.c
trunk/libgfortran/generated/minloc0_4_r16.c
trunk/libgfortran/generated/minloc0_4_r4.c
trunk/libgfortran/generated/minloc0_4_r8.c
trunk/libgfortran/generated/minloc0_8_i1.c
trunk/libgfortran/generated/minloc0_8_i16.c
trunk/libgfortran/generated/minloc0_8_i2.c
trunk/libgfortran/generated/minloc0_8_i4.c
trunk/libgfortran/generated/minloc0_8_i8.c
trunk/libgfortran/generated/minloc0_8_r10.c
trunk/libgfortran/generated/minloc0_8_r16.c
trunk/libgfortran/generated/minloc0_8_r4.c
trunk/libgfortran/generated/minloc0_8_r8.c
trunk/libgfortran/generated/minloc1_16_i1.c
trunk/libgfortran/generated/minloc1_16_i16.c
trunk/libgfortran/generated/minloc1_16_i2.c
trunk/libgfortran/generated/minloc1_16_i4.c
trunk/libgfortran/generated/minloc1_16_i8.c
trunk/libgfortran/generated/minloc1_16_r10.c
trunk/libgfortran/generated/minloc1_16_r16.c
trunk/libgfortran/generated/minloc1_16_r4.c
trunk/libgfortran/generated/minloc1_16_r8.c
trunk/libgfortran/generated/minloc1_4_i1.c
trunk/libgfortran/generated/minloc1_4_i16.c
trunk/libgfortran/generated/minloc1_4_i2.c
trunk/libgfortran/generated/minloc1_4_i4.c
trunk/libgfortran/generated/minloc1_4_i8.c
trunk/libgfortran/generated/minloc1_4_r10.c
trunk/libgfortran/generated/minloc1_4_r16.c
trunk/libgfortran/generated/minloc1_4_r4.c
trunk/libgfortran/generated/minloc1_4_r8.c
trunk/libgfortran/generated/minloc1_8_i1.c
trunk/libgfortran/generated/minloc1_8_i16.c
trunk/libgfortran/generated/minloc1_8_i2.c
trunk/libgfortran/generated/minloc1_8_i4.c
trunk/libgfortran/generated/minloc1_8_i8.c
trunk/libgfortran/generated/minloc1_8_r10.c
trunk/libgfortran/generated/minloc1_8_r16.c
trunk/libgfortran/generated/minloc1_8_r4.c
trunk/libgfortran/generated/minloc1_8_r8.c
trunk/libgfortran/generated/minval_i1.c
trunk/libgfortran/generated/minval_i16.c
trunk/libgfortran/generated/minval_i2.c
trunk/libgfortran/generated/minval_i4.c
trunk/libgfortran/generated/minval_i8.c
trunk/libgfortran/generated/minval_r10.c
trunk/libgfortran/generated/minval_r16.c
trunk/libgfortran/generated/minval_r4.c
trunk/libgfortran/generated/minval_r8.c
trunk/libgfortran/generated/product_c10.c
trunk/libgfortran/generated/product_c16.c
trunk/libgfortran/generated/product_c4.c
trunk/libgfortran/generated/product_c8.c
trunk/libgfortran/generated/product_i1.c
trunk/libgfortran/generated/product_i16.c
trunk/libgfortran/generated/product_i2.c
trunk/libgfortran/generated/product_i4.c
trunk/libgfortran/generated/product_i8.c
trunk/libgfortran/generated/product_r10.c
trunk/libgfortran/generated/product_r16.c
trunk/libgfortran/generated/product_r4.c
trunk/libgfortran/generated/product_r8.c
trunk/libgfortran/generated/sum_c10.c
trunk/libgfortran/generated/sum_c16.c
trunk/libgfortran/generated/sum_c4.c
trunk/libgfortran/generated/sum_c8.c
trunk/libgfortran/generated/sum_i1.c
trunk/libgfortran/generated/sum_i16.c
trunk/libgfortran/generated/sum_i2.c
trunk/libgfortran/generated/sum_i4.c
trunk/libgfortran/generated/sum_i8.c
trunk/libgfortran/generated/sum_r10.c
trunk/libgfortran/generated/sum_r16.c
trunk/libgfortran/generated/sum_r4.c
trunk/libgfortran/generated/sum_r8.c
trunk/libgfortran/intrinsics/pack_generic.c
trunk/libgfortran/intrinsics/unpack_generic.c
trunk/libgfortran/libgfortran.h
trunk/libgfortran/m4/iforeach.m4
trunk/libgfortran/m4/ifunction.m4
trunk/libgfortran/m4/matmull.m4
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (4 preceding siblings ...)
2007-08-24 16:17 ` tkoenig at gcc dot gnu dot org
@ 2007-12-08 18:31 ` jvdelisle at gcc dot gnu dot org
2007-12-08 20:26 ` tkoenig at gcc dot gnu dot org
` (19 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2007-12-08 18:31 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from jvdelisle at gcc dot gnu dot org 2007-12-08 18:30 -------
Thomas, is this patch the final on this?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (5 preceding siblings ...)
2007-12-08 18:31 ` jvdelisle at gcc dot gnu dot org
@ 2007-12-08 20:26 ` tkoenig at gcc dot gnu dot org
2007-12-08 21:30 ` fxcoudert at gcc dot gnu dot org
` (18 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2007-12-08 20:26 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from tkoenig at gcc dot gnu dot org 2007-12-08 20:26 -------
(In reply to comment #6)
> Thomas, is this patch the final on this?
Hi Jerry,
we could make specific versions of all those intrinsic that
currently use memcpy(), including pack.
Should we leave this bug open for this?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (6 preceding siblings ...)
2007-12-08 20:26 ` tkoenig at gcc dot gnu dot org
@ 2007-12-08 21:30 ` fxcoudert at gcc dot gnu dot org
2007-12-08 21:57 ` jvdelisle at verizon dot net
` (17 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: fxcoudert at gcc dot gnu dot org @ 2007-12-08 21:30 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from fxcoudert at gcc dot gnu dot org 2007-12-08 21:30 -------
(In reply to comment #7)
> we could make specific versions of all those intrinsic that
> currently use memcpy(), including pack.
Thomas, your patch for this bug produces warnings when building libgfortran
(see the bottom of comment #14 in PR 22423). Could you please look into it?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (7 preceding siblings ...)
2007-12-08 21:30 ` fxcoudert at gcc dot gnu dot org
@ 2007-12-08 21:57 ` jvdelisle at verizon dot net
2007-12-09 10:33 ` tkoenig at netcologne dot de
` (16 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: jvdelisle at verizon dot net @ 2007-12-08 21:57 UTC (permalink / raw)
To: gcc-bugs
------- Comment #9 from jvdelisle at verizon dot net 2007-12-08 21:57 -------
Subject: Re: performance of pack/unpack
tkoenig at gcc dot gnu dot org wrote:
> we could make specific versions of all those intrinsic that
> currently use memcpy(), including pack.
>
> Should we leave this bug open for this?
>
Yes.
Is this related to the following:
http://gcc.gnu.org/ml/fortran/2007-12/msg00051.html ?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (8 preceding siblings ...)
2007-12-08 21:57 ` jvdelisle at verizon dot net
@ 2007-12-09 10:33 ` tkoenig at netcologne dot de
2008-03-19 9:27 ` tkoenig at gcc dot gnu dot org
` (15 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at netcologne dot de @ 2007-12-09 10:33 UTC (permalink / raw)
To: gcc-bugs
------- Comment #10 from tkoenig at netcologne dot de 2007-12-09 10:33 -------
Subject: Re: performance of pack/unpack
On Sat, 2007-12-08 at 21:57 +0000, jvdelisle at verizon dot net wrote:
>
> ------- Comment #9 from jvdelisle at verizon dot net 2007-12-08 21:57 -------
> Subject: Re: performance of pack/unpack
>
> tkoenig at gcc dot gnu dot org wrote:
> > we could make specific versions of all those intrinsic that
> > currently use memcpy(), including pack.
> >
> > Should we leave this bug open for this?
> >
>
> Yes.
>
> Is this related to the following:
>
> http://gcc.gnu.org/ml/fortran/2007-12/msg00051.html ?
Yes, this would take care of it for the intrinsic types.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (9 preceding siblings ...)
2007-12-09 10:33 ` tkoenig at netcologne dot de
@ 2008-03-19 9:27 ` tkoenig at gcc dot gnu dot org
2008-03-19 15:44 ` tkoenig at gcc dot gnu dot org
` (14 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-03-19 9:27 UTC (permalink / raw)
To: gcc-bugs
------- Comment #11 from tkoenig at gcc dot gnu dot org 2008-03-19 09:26 -------
Here's something for internal_pack and internal_unpack:
http://gcc.gnu.org/ml/gcc-patches/2008-03/msg01121.html
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (10 preceding siblings ...)
2008-03-19 9:27 ` tkoenig at gcc dot gnu dot org
@ 2008-03-19 15:44 ` tkoenig at gcc dot gnu dot org
2008-03-19 16:49 ` dominiq at lps dot ens dot fr
` (13 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-03-19 15:44 UTC (permalink / raw)
To: gcc-bugs
------- Comment #12 from tkoenig at gcc dot gnu dot org 2008-03-19 15:43 -------
Subject: Bug 32972
Author: tkoenig
Date: Wed Mar 19 15:42:55 2008
New Revision: 133344
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133344
Log:
2008-03-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32972
* Makefile.am (in_pack_c): Add in_pack_i1.c, in_pack_i2.c,
in_pack_r4.c, in_pack_r8.c, in_pack_r10.c and in_pack_r16.c.
(in_unpack_c): Add in_unpack_i1.c, in_unpack_i2.c,
in_unpack_r4.c, in_unpack_r8.c, in_unpack_r10.c and
in_unpack_r16.c.
* Makefile.in: Regenerate.
* libgfortran.h: Add prototypes for internal_pack_1,
internal_pack_2, internal_pack_16, internal_pack_r4,
internal_pack_r8, internal_pack_r10, internal_pack_r16,
internal_pack_c10 and internal_pack_c16. Add prototypes for
internal_unpack_1, internal_unpack_2, internal_unpack_16,
internal_unpack_r4, internal_unpack_r8, internal_unpack_r10,
internal_unpack_r16, internal_unpack_c10 and
internal_unpack_c16.
* runtime/in_pack_generic.c (internal_pack): Use sizeof instead
of hardwired sizes.
Add calls to internal_pack_1, internal_pack_2,
internal_pack_16, internal_pack_r4, internal_pack_r8,
internal_pack_r10, internal_pack_r16, internal_pack_c10 and
internal_pack_c16.
* runtime/in_unpack_generic.c (internal_unpack): Use sizeof
instead of hardwired sizes.
Add calls to internal_unpack_1, internal_unpack_2,
internal_unpack_16, internal_unpack_r4, internal_unpack_r8,
internal_unpack_r10, internal_unpack_r16, internal_unpack_c10
and internal_unpack_c16.
* generated/in_pack_r4.c: New file.
* generated/in_pack_i2.c: New file.
* generated/in_unpack_i1.c: New file.
* generated/in_pack_r10.c: New file.
* generated/in_unpack_r4.c: New file.
* generated/in_unpack_i2.c: New file.
* generated/in_unpack_r16.c: New file.
* generated/in_pack_r8.c: New file.
* generated/in_unpack_r10.c: New file.
* generated/in_unpack_r8.c: New file.
* generated/in_pack_r16.c: New file.
* generated/in_pack_i1.c: New file.
2008-03-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32972
* gfortran.dg/internal_pack_1.f90: New test case.
* gfortran.dg/internal_pack_2.f90: New test case.
* gfortran.dg/internal_pack_3.f90: New test case.
Added:
trunk/gcc/testsuite/gfortran.dg/internal_pack_1.f90
trunk/gcc/testsuite/gfortran.dg/internal_pack_2.f90
trunk/gcc/testsuite/gfortran.dg/internal_pack_3.f90
trunk/libgfortran/generated/in_pack_i1.c
trunk/libgfortran/generated/in_pack_i2.c
trunk/libgfortran/generated/in_pack_r10.c
trunk/libgfortran/generated/in_pack_r16.c
trunk/libgfortran/generated/in_pack_r4.c
trunk/libgfortran/generated/in_pack_r8.c
trunk/libgfortran/generated/in_unpack_i1.c
trunk/libgfortran/generated/in_unpack_i2.c
trunk/libgfortran/generated/in_unpack_r10.c
trunk/libgfortran/generated/in_unpack_r16.c
trunk/libgfortran/generated/in_unpack_r4.c
trunk/libgfortran/generated/in_unpack_r8.c
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/libgfortran/ChangeLog
trunk/libgfortran/Makefile.am
trunk/libgfortran/Makefile.in
trunk/libgfortran/libgfortran.h
trunk/libgfortran/runtime/in_pack_generic.c
trunk/libgfortran/runtime/in_unpack_generic.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (11 preceding siblings ...)
2008-03-19 15:44 ` tkoenig at gcc dot gnu dot org
@ 2008-03-19 16:49 ` dominiq at lps dot ens dot fr
2008-03-19 16:57 ` tkoenig at gcc dot gnu dot org
` (12 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: dominiq at lps dot ens dot fr @ 2008-03-19 16:49 UTC (permalink / raw)
To: gcc-bugs
------- Comment #13 from dominiq at lps dot ens dot fr 2008-03-19 16:48 -------
There is a typo in libgfortran/runtime/in_pack_generic.c:
--- ../_gcc_clean/libgfortran/runtime/in_pack_generic.c 2008-03-19
16:56:42.000000000 +0100
+++ ../gcc-4.4-work/libgfortran/runtime/in_pack_generic.c 2008-03-19
17:45:27.000000000 +0100
@@ -81,7 +81,7 @@
#if defined(HAVE_GFC_INTEGER_16)
case sizeof (GFC_INTEGER_16):
- return internal_pack_16 (gfc_array_i16 *) source);
+ return internal_pack_16 ((gfc_array_i16 *) source);
#endif
}
break;
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (12 preceding siblings ...)
2008-03-19 16:49 ` dominiq at lps dot ens dot fr
@ 2008-03-19 16:57 ` tkoenig at gcc dot gnu dot org
2008-03-19 16:58 ` tkoenig at gcc dot gnu dot org
` (11 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-03-19 16:57 UTC (permalink / raw)
To: gcc-bugs
------- Comment #14 from tkoenig at gcc dot gnu dot org 2008-03-19 16:57 -------
Subject: Bug 32972
Author: tkoenig
Date: Wed Mar 19 16:56:22 2008
New Revision: 133345
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133345
Log:
2008-03-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32972
* runtime/in_pack_generic.c (internal_pack): Fix typo in
last commit.
Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/runtime/in_pack_generic.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (13 preceding siblings ...)
2008-03-19 16:57 ` tkoenig at gcc dot gnu dot org
@ 2008-03-19 16:58 ` tkoenig at gcc dot gnu dot org
2008-03-20 9:55 ` dominiq at lps dot ens dot fr
` (10 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-03-19 16:58 UTC (permalink / raw)
To: gcc-bugs
------- Comment #15 from tkoenig at gcc dot gnu dot org 2008-03-19 16:58 -------
(In reply to comment #13)
> There is a typo in libgfortran/runtime/in_pack_generic.c:
Fixed.
Thanks a lot for catching that one, Dominique! I would have
hated to break bootstrap.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (14 preceding siblings ...)
2008-03-19 16:58 ` tkoenig at gcc dot gnu dot org
@ 2008-03-20 9:55 ` dominiq at lps dot ens dot fr
2008-03-20 10:55 ` tkoenig at gcc dot gnu dot org
` (9 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: dominiq at lps dot ens dot fr @ 2008-03-20 9:55 UTC (permalink / raw)
To: gcc-bugs
------- Comment #16 from dominiq at lps dot ens dot fr 2008-03-20 09:54 -------
gfortran.dg/internal_pack_3.f90 looks invalid and fails:
FAIL: gfortran.dg/internal_pack_3.f90 -O0 (test for excess errors)
WARNING: gfortran.dg/internal_pack_3.f90 -O0 compilation failed to produce
executable
FAIL: gfortran.dg/internal_pack_3.f90 -O1 (test for excess errors)
WARNING: gfortran.dg/internal_pack_3.f90 -O1 compilation failed to produce
executable
FAIL: gfortran.dg/internal_pack_3.f90 -O2 (test for excess errors)
WARNING: gfortran.dg/internal_pack_3.f90 -O2 compilation failed to produce
executable
FAIL: gfortran.dg/internal_pack_3.f90 -O3 -fomit-frame-pointer (test for
excess errors)
WARNING: gfortran.dg/internal_pack_3.f90 -O3 -fomit-frame-pointer compilation
failed to produce executable
FAIL: gfortran.dg/internal_pack_3.f90 -O3 -fomit-frame-pointer -funroll-loops
(test for excess errors)
WARNING: gfortran.dg/internal_pack_3.f90 -O3 -fomit-frame-pointer
-funroll-loops compilation failed to produce executable
FAIL: gfortran.dg/internal_pack_3.f90 -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions (test for excess errors)
WARNING: gfortran.dg/internal_pack_3.f90 -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions compilation failed to produce executable
FAIL: gfortran.dg/internal_pack_3.f90 -O3 -g (test for excess errors)
WARNING: gfortran.dg/internal_pack_3.f90 -O3 -g compilation failed to produce
executable
FAIL: gfortran.dg/internal_pack_3.f90 -Os (test for excess errors)
WARNING: gfortran.dg/internal_pack_3.f90 -Os compilation failed to produce
executable
The following changes seem to work:
--- /opt/gcc/_gcc_clean/gcc/testsuite/gfortran.dg/internal_pack_3.f90
2008-03-19 16:56:40.000000000 +0100
+++ internal_pack_3_db.f90 2008-03-20 10:46:16.000000000 +0100
@@ -13,6 +13,7 @@
end program main
subroutine sub_ik(i)
+ integer,parameter :: k = selected_int_kind (range (0_8) + 1)
integer(kind=k), dimension(2) :: i
if (i(1) /= -1) call abort
if (i(2) /= -3) call abort
or
--- /opt/gcc/_gcc_clean/gcc/testsuite/gfortran.dg/internal_pack_3.f90
2008-03-19 16:56:40.000000000 +0100
+++ internal_pack_3_db_1.f90 2008-03-20 10:48:28.000000000 +0100
@@ -10,12 +10,15 @@
ik = (/ -1, 1, -3 /)
call sub_ik(ik(1:3:2))
if (any(ik /= (/ 3, 1, 2 /))) call abort
-end program main
-subroutine sub_ik(i)
- integer(kind=k), dimension(2) :: i
- if (i(1) /= -1) call abort
- if (i(2) /= -3) call abort
- i(1) = 3
- i(2) = 2
-end subroutine sub_ik
+contains
+
+ subroutine sub_ik(i)
+ integer(kind=k), dimension(2) :: i
+ if (i(1) /= -1) call abort
+ if (i(2) /= -3) call abort
+ i(1) = 3
+ i(2) = 2
+ end subroutine sub_ik
+
+end program main
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (15 preceding siblings ...)
2008-03-20 9:55 ` dominiq at lps dot ens dot fr
@ 2008-03-20 10:55 ` tkoenig at gcc dot gnu dot org
2008-03-20 11:59 ` tkoenig at gcc dot gnu dot org
` (8 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-03-20 10:55 UTC (permalink / raw)
To: gcc-bugs
------- Comment #17 from tkoenig at gcc dot gnu dot org 2008-03-20 10:54 -------
Subject: Bug 32972
Author: tkoenig
Date: Thu Mar 20 10:54:04 2008
New Revision: 133368
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133368
Log:
2008-03-20 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32972
* gfortran.dg/internal_pack_3.f90: Add missing parameter
in subroutine.
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/internal_pack_3.f90
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (16 preceding siblings ...)
2008-03-20 10:55 ` tkoenig at gcc dot gnu dot org
@ 2008-03-20 11:59 ` tkoenig at gcc dot gnu dot org
2008-03-21 14:38 ` tkoenig at gcc dot gnu dot org
` (7 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-03-20 11:59 UTC (permalink / raw)
To: gcc-bugs
------- Comment #18 from tkoenig at gcc dot gnu dot org 2008-03-20 11:58 -------
(In reply to comment #16)
> gfortran.dg/internal_pack_3.f90 looks invalid and fails:
Again, thanks.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (17 preceding siblings ...)
2008-03-20 11:59 ` tkoenig at gcc dot gnu dot org
@ 2008-03-21 14:38 ` tkoenig at gcc dot gnu dot org
2008-03-21 15:34 ` tkoenig at gcc dot gnu dot org
` (6 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-03-21 14:38 UTC (permalink / raw)
To: gcc-bugs
------- Comment #19 from tkoenig at gcc dot gnu dot org 2008-03-21 14:37 -------
Subject: Bug 32972
Author: tkoenig
Date: Fri Mar 21 14:37:03 2008
New Revision: 133427
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133427
Log:
2008-03-21 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32972
* Makefile.am: Add new variable, i_pack_c, containing
pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, pack_i16.c,
pack_r4.c, pack_r8.c, pack_r10.c, pack_r16.c, pack_c4.c,
pack_c8.c, pack_c10.c, pack_c16.c.
Add m4/pack.m4 to m4_files.
Add i_pack_c to gfor_built_src.
Add rule to generate i_pack_c from m4/pack.m4.
* Makefile.in: Regenerated.
* libgfortran.h: Add prototypes for pack_i1, pack_i2, pack_i4,
pack_i8, pack_i16, pack_r4, pack_r8, pack_c4, pack_c8,
pack_c10, pack_c16.
* intrinsics/pack_generic.c: Add calls to specific
pack functions.
* m4/pack.m4: New file.
* generated/pack_i1.c: New file.
* generated/pack_i2.c: New file.
* generated/pack_i4.c: New file.
* generated/pack_i8.c: New file.
* generated/pack_i16.c: New file.
* generated/pack_r4.c: New file.
* generated/pack_r8.c: New file.
* generated/pack_r10.c: New file.
* generated/pack_r16.c: New file.
* generated/pack_c4.c: New file.
* generated/pack_c8.c: New file.
* generated/pack_c10.c: New file.
* generated/pack_c16.c: New file.
2008-03-21 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32972
* internal_pack_1.f90: New test case.
* internal_pack_2.f90: New test case.
* internal_pack_3.f90: New test case.
Added:
trunk/gcc/testsuite/gfortran.dg/intrinsic_pack_1.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_pack_2.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_pack_3.f90
trunk/libgfortran/generated/pack_c10.c
trunk/libgfortran/generated/pack_c16.c
trunk/libgfortran/generated/pack_c4.c
trunk/libgfortran/generated/pack_c8.c
trunk/libgfortran/generated/pack_i1.c
trunk/libgfortran/generated/pack_i16.c
trunk/libgfortran/generated/pack_i2.c
trunk/libgfortran/generated/pack_i4.c
trunk/libgfortran/generated/pack_i8.c
trunk/libgfortran/generated/pack_r10.c
trunk/libgfortran/generated/pack_r16.c
trunk/libgfortran/generated/pack_r4.c
trunk/libgfortran/generated/pack_r8.c
trunk/libgfortran/m4/pack.m4
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/libgfortran/ChangeLog
trunk/libgfortran/Makefile.am
trunk/libgfortran/Makefile.in
trunk/libgfortran/intrinsics/pack_generic.c
trunk/libgfortran/libgfortran.h
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (18 preceding siblings ...)
2008-03-21 14:38 ` tkoenig at gcc dot gnu dot org
@ 2008-03-21 15:34 ` tkoenig at gcc dot gnu dot org
2008-03-23 22:21 ` tkoenig at gcc dot gnu dot org
` (5 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-03-21 15:34 UTC (permalink / raw)
To: gcc-bugs
------- Comment #20 from tkoenig at gcc dot gnu dot org 2008-03-21 15:33 -------
Subject: Bug 32972
Author: tkoenig
Date: Fri Mar 21 15:33:13 2008
New Revision: 133428
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133428
Log:
2008-03-21 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32972
* runtime/in_pack_generic.c (internal_pack): Call correct
function, pack_i16, for GFC_INTEGER_16.
Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/intrinsics/pack_generic.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (19 preceding siblings ...)
2008-03-21 15:34 ` tkoenig at gcc dot gnu dot org
@ 2008-03-23 22:21 ` tkoenig at gcc dot gnu dot org
2008-03-28 23:24 ` tkoenig at gcc dot gnu dot org
` (4 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-03-23 22:21 UTC (permalink / raw)
To: gcc-bugs
------- Comment #21 from tkoenig at gcc dot gnu dot org 2008-03-23 22:20 -------
Subject: Bug 32972
Author: tkoenig
Date: Sun Mar 23 22:19:19 2008
New Revision: 133469
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133469
Log:
2007-03-23 Thomas Koenig <tkoenig@gcc.gnu.org
PR libfortran/32972
* Makefile.am: Add new variable, i_unpack_c, containing
unpack_i1.c, unpack_i2.c, unpack_i4.c, unpack_i8.c,
unpack_i16.c, unpack_r4.c, unpack_r8.c, unpack_r10.c,
unpack_r16.c, unpack_c4.c, unpack_c8.c, unpack_c10.c
and unpack_c16.c
Add i_unpack_c to gfor_built_src.
Add rule to generate i_unpack_c from m4/unpack.m4.
* Makefile.in: Regenerated.
* libgfortran.h: Add prototypes for unpack0_i1, unpack0_i2,
unpack0_i4, unpack0_i8, unpack0_i16, unpack0_r4, unpack0_r8,
unpack0_r10, unpack0_r16, unpack0_c4, unpack0_c8, unpack0_c10,
unpack0_c16, unpack1_i1, unpack1_i2, unpack1_i4, unpack1_i8,
unpack1_i16, unpack1_r4, unpack1_r8, unpack1_r10, unpack1_r16,
unpack1_c4, unpack1_c8, unpack1_c10 and unpack1_c16.
* intrinsics/pack_generic.c (unpack1): Add calls to specific
unpack1 functions.
(unpack0): Add calls to specific unpack0 functions.
* m4/unpack.m4: New file.
* generated/unpack_i1.c: New file.
* generated/unpack_i2.c: New file.
* generated/unpack_i4.c: New file.
* generated/unpack_i8.c: New file.
* generated/unpack_i16.c: New file.
* generated/unpack_r4.c: New file.
* generated/unpack_r8.c: New file.
* generated/unpack_r10.c: New file.
* generated/unpack_r16.c: New file.
* generated/unpack_c4.c: New file.
* generated/unpack_c8.c: New file.
* generated/unpack_c10.c: New file.
* generated/unpack_c16.c: New file.
2007-03-23 Thomas Koenig <tkoenig@gcc.gnu.org
PR libfortran/32972
* gfortran.dg/intrinsic_unpack_1.f90: New test case.
* gfortran.dg/intrinsic_unpack_2.f90: New test case.
* gfortran.dg/intrinsic_unpack_3.f90: New test case.
Added:
trunk/gcc/testsuite/gfortran.dg/intrinsic_unpack_1.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_unpack_2.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_unpack_3.f90
trunk/libgfortran/generated/unpack_c10.c
trunk/libgfortran/generated/unpack_c16.c
trunk/libgfortran/generated/unpack_c4.c
trunk/libgfortran/generated/unpack_c8.c
trunk/libgfortran/generated/unpack_i1.c
trunk/libgfortran/generated/unpack_i16.c
trunk/libgfortran/generated/unpack_i2.c
trunk/libgfortran/generated/unpack_i4.c
trunk/libgfortran/generated/unpack_i8.c
trunk/libgfortran/generated/unpack_r10.c
trunk/libgfortran/generated/unpack_r16.c
trunk/libgfortran/generated/unpack_r4.c
trunk/libgfortran/generated/unpack_r8.c
trunk/libgfortran/m4/unpack.m4
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/libgfortran/ChangeLog
trunk/libgfortran/Makefile.am
trunk/libgfortran/Makefile.in
trunk/libgfortran/intrinsics/unpack_generic.c
trunk/libgfortran/libgfortran.h
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (20 preceding siblings ...)
2008-03-23 22:21 ` tkoenig at gcc dot gnu dot org
@ 2008-03-28 23:24 ` tkoenig at gcc dot gnu dot org
2008-04-13 20:17 ` tkoenig at gcc dot gnu dot org
` (3 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-03-28 23:24 UTC (permalink / raw)
To: gcc-bugs
------- Comment #22 from tkoenig at gcc dot gnu dot org 2008-03-28 23:23 -------
Subject: Bug 32972
Author: tkoenig
Date: Fri Mar 28 23:22:49 2008
New Revision: 133702
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133702
Log:
2008-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32972
PR libfortran/32512
* Makefile.am: Add new variable, i_spread_c, containing
pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, spread_i16.c,
spread_r4.c, spread_r8.c, spread_r10.c, spread_r16.c,
spread_c4.c, spread_c8.c, spread_c10.c, spread_c16.c.
* Makefile.in: Regenerated.
* libgfortran.h: Add prototypes for spread_i1, spread_i2,
spread_i4, spread_i8, spread_i16, spread_r4, spread_r8,
spread_c4, spread_c8, spread_c10, spread_c16,
spread_scalar_i1, spread_scalar_i2, spread_scalar_i4,
spread_scalar_i8, spread_scalar_i16, spread_scalar_r4
spread_scalar_r8, spread_scalar_c4, spread_scalar_c8,
spread_scalar_c10 and spread_scalar_c16.
Add macros to isolate both type and size information
from array descriptors with a single mask operation.
* intrinsics/spread_generic.c: Add calls to specific
spread functions.
* m4/spread.m4: New file.
* generated/spread_i1.c: New file.
* generated/spread_i2.c: New file.
* generated/spread_i4.c: New file.
* generated/spread_i8.c: New file.
* generated/spread_i16.c: New file.
* generated/spread_r4.c: New file.
* generated/spread_r8.c: New file.
* generated/spread_r10.c: New file.
* generated/spread_r16.c: New file.
* generated/spread_c4.c: New file.
* generated/spread_c8.c: New file.
* generated/spread_c10.c: New file.
* generated/spread_c16.c: New file.
2008-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32972
PR libfortran/32512
* intrinsic_spread_1.f90: New file.
* intrinsic_spread_2.f90: New file.
* intrinsic_spread_3.f90: New file.
Added:
trunk/gcc/testsuite/gfortran.dg/intrinsic_spread_1.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_spread_2.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_spread_3.f90
trunk/libgfortran/generated/spread_c10.c
trunk/libgfortran/generated/spread_c16.c
trunk/libgfortran/generated/spread_c4.c
trunk/libgfortran/generated/spread_c8.c
trunk/libgfortran/generated/spread_i1.c
trunk/libgfortran/generated/spread_i16.c
trunk/libgfortran/generated/spread_i2.c
trunk/libgfortran/generated/spread_i4.c
trunk/libgfortran/generated/spread_i8.c
trunk/libgfortran/generated/spread_r10.c
trunk/libgfortran/generated/spread_r16.c
trunk/libgfortran/generated/spread_r4.c
trunk/libgfortran/generated/spread_r8.c
trunk/libgfortran/m4/spread.m4
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/libgfortran/ChangeLog
trunk/libgfortran/Makefile.am
trunk/libgfortran/Makefile.in
trunk/libgfortran/intrinsics/spread_generic.c
trunk/libgfortran/libgfortran.h
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (21 preceding siblings ...)
2008-03-28 23:24 ` tkoenig at gcc dot gnu dot org
@ 2008-04-13 20:17 ` tkoenig at gcc dot gnu dot org
2008-04-14 18:52 ` tkoenig at gcc dot gnu dot org
` (2 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-04-13 20:17 UTC (permalink / raw)
To: gcc-bugs
------- Comment #23 from tkoenig at gcc dot gnu dot org 2008-04-13 20:16 -------
Subject: Bug 32972
Author: tkoenig
Date: Sun Apr 13 20:15:58 2008
New Revision: 134245
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=134245
Log:
2008-04-13 Thomas Koenig <tkoenig@gcc.gnu.org>
Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR libfortran/32972
PR libfortran/32512
configure.ac: Add test for uintptr_t.
configure: Regenerated.
config.h.in: Regenerated.
* libgfortran.h: GFC_DTYPE_DERIVED_1: New macro.
GFC_DTYPE_DERIVED_2: New macro.
GFC_DTYPE_DERIVED_4: New macro.
GFC_DTYPE_DERIVED_8: New macro.
GFC_DTYPE_DERIVED_16: New macro.
GFC_UNALIGNED_2: New macro.
GFC_UNALIGNED_4: New macro.
GFC_UNALIGNED_8: New macro.
GFC_UNALIGNED_16: New macro.
intptr_t: Define if we don't have it.
uintptr_t: Likewise.
* runtime/backtrace.c (show_backtrace): Use intptr_t.
* intrinsics/signal.c (signal_sub): Likewise.
(signal_sub_int): Likewise.
(alarm_sub_int_i4): Likewise.
* intrinsics/spread_generic.c (spread): Use the integer
routines for handling derived types of sizes 1, 2, 4, 8 and 16
if the alignment of all pointers is correct.
(spread_scalar): Likewise.
* intrinsics/pack_generic.c (pack): Likewise.
Use GFD_DTYPE_TYPE_SIZE to avoid nested switch statements.
* intrinsics/unpack_generic.c (unpack1): Likewise.
(unpack0): Likewise.
* runtime/in_pack_generic.c (internal_pack): Likewise.
* runtime/in_unpack_generic.c (internal_unpack): Likewise.
2008-04-13 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32972
PR libfortran/32512
* gfortran.dg/internal_pack_1.f90: Add test for derived type.
* gfortran.dg/intrinsic_spread_1.f90: Likewise.
* gfortran.dg/intrinsic_pack_1.f90: Likewise.
* gfortran.dg/intrinsic_unpack_1.f90: Likewise.
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/internal_pack_1.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_pack_1.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_spread_1.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_unpack_1.f90
trunk/libgfortran/ChangeLog
trunk/libgfortran/config.h.in
trunk/libgfortran/configure
trunk/libgfortran/configure.ac
trunk/libgfortran/intrinsics/pack_generic.c
trunk/libgfortran/intrinsics/signal.c
trunk/libgfortran/intrinsics/spread_generic.c
trunk/libgfortran/intrinsics/unpack_generic.c
trunk/libgfortran/libgfortran.h
trunk/libgfortran/runtime/backtrace.c
trunk/libgfortran/runtime/in_pack_generic.c
trunk/libgfortran/runtime/in_unpack_generic.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (22 preceding siblings ...)
2008-04-13 20:17 ` tkoenig at gcc dot gnu dot org
@ 2008-04-14 18:52 ` tkoenig at gcc dot gnu dot org
2010-02-20 22:12 ` burnus at gcc dot gnu dot org
2010-03-01 22:54 ` tkoenig at gcc dot gnu dot org
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-04-14 18:52 UTC (permalink / raw)
To: gcc-bugs
------- Comment #24 from tkoenig at gcc dot gnu dot org 2008-04-14 18:51 -------
Subject: Bug 32972
Author: tkoenig
Date: Mon Apr 14 18:50:57 2008
New Revision: 134286
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=134286
Log:
2008-04-14 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32972
* intrinsics/spread_generic.c (spread): Use spread_i2()
for GFC_DTYPE_DERIVED_2 (fix typo from previous commit).
Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/intrinsics/spread_generic.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (23 preceding siblings ...)
2008-04-14 18:52 ` tkoenig at gcc dot gnu dot org
@ 2010-02-20 22:12 ` burnus at gcc dot gnu dot org
2010-03-01 22:54 ` tkoenig at gcc dot gnu dot org
25 siblings, 0 replies; 27+ messages in thread
From: burnus at gcc dot gnu dot org @ 2010-02-20 22:12 UTC (permalink / raw)
To: gcc-bugs
------- Comment #25 from burnus at gcc dot gnu dot org 2010-02-20 22:11 -------
Can you summarize what it left to do?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Bug libfortran/32972] performance of pack/unpack
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
` (24 preceding siblings ...)
2010-02-20 22:12 ` burnus at gcc dot gnu dot org
@ 2010-03-01 22:54 ` tkoenig at gcc dot gnu dot org
25 siblings, 0 replies; 27+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2010-03-01 22:54 UTC (permalink / raw)
To: gcc-bugs
------- Comment #26 from tkoenig at gcc dot gnu dot org 2010-03-01 22:53 -------
I think pack and unpack are OK now.
Closing.
--
tkoenig at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32972
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2010-03-01 22:54 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-03 6:39 [Bug libfortran/32972] New: performance of pack/unpack tkoenig at gcc dot gnu dot org
2007-08-10 20:58 ` [Bug libfortran/32972] " tkoenig at gcc dot gnu dot org
2007-08-10 21:00 ` tkoenig at gcc dot gnu dot org
2007-08-11 20:34 ` tkoenig at gcc dot gnu dot org
2007-08-16 18:16 ` tkoenig at gcc dot gnu dot org
2007-08-24 16:17 ` tkoenig at gcc dot gnu dot org
2007-12-08 18:31 ` jvdelisle at gcc dot gnu dot org
2007-12-08 20:26 ` tkoenig at gcc dot gnu dot org
2007-12-08 21:30 ` fxcoudert at gcc dot gnu dot org
2007-12-08 21:57 ` jvdelisle at verizon dot net
2007-12-09 10:33 ` tkoenig at netcologne dot de
2008-03-19 9:27 ` tkoenig at gcc dot gnu dot org
2008-03-19 15:44 ` tkoenig at gcc dot gnu dot org
2008-03-19 16:49 ` dominiq at lps dot ens dot fr
2008-03-19 16:57 ` tkoenig at gcc dot gnu dot org
2008-03-19 16:58 ` tkoenig at gcc dot gnu dot org
2008-03-20 9:55 ` dominiq at lps dot ens dot fr
2008-03-20 10:55 ` tkoenig at gcc dot gnu dot org
2008-03-20 11:59 ` tkoenig at gcc dot gnu dot org
2008-03-21 14:38 ` tkoenig at gcc dot gnu dot org
2008-03-21 15:34 ` tkoenig at gcc dot gnu dot org
2008-03-23 22:21 ` tkoenig at gcc dot gnu dot org
2008-03-28 23:24 ` tkoenig at gcc dot gnu dot org
2008-04-13 20:17 ` tkoenig at gcc dot gnu dot org
2008-04-14 18:52 ` tkoenig at gcc dot gnu dot org
2010-02-20 22:12 ` burnus at gcc dot gnu dot org
2010-03-01 22:54 ` tkoenig at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).