This is the mail archive of the gcc-bugs@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]

[Bug fortran/52473] CSHIFT slow - inline it?


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473

--- Comment #14 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
Author: tkoenig
Date: Sat Jun 24 07:07:56 2017
New Revision: 249620

URL: https://gcc.gnu.org/viewcvs?rev=249620&root=gcc&view=rev
Log:
2017-06-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/52473
        * Makefile.am:  Add i_cshift1a_c.  Add rules to generate files
        from cshift1a.m4.
        * Makefile.in: Regenerated.
        * m4/cshift1a.m4: New file.
        * m4/cshift.m4 (cshift1): Split up inner loop by removing
        condition. Use memcpy where possible.  Call helper functions
        based on dtype.
        * libgfortran.h: Add prototypes for cshift1_16_c10,
        cshift1_16_c16, cshift1_16_c4, cshift1_16_c8, cshift1_16_i1,
        cshift1_16_i16, cshift1_16_i2, cshift1_16_i4, cshift1_16_i8,
        cshift1_16_r10, cshift1_16_r16, cshift1_16_r4, cshift1_16_r8,
        cshift1_4_c10, cshift1_4_c16, cshift1_4_c4, cshift1_4_c8,
        cshift1_4_i1, cshift1_4_i16, cshift1_4_i2, cshift1_4_i4,
        cshift1_4_i8, cshift1_4_r10, cshift1_4_r16, cshift1_4_r4,
        cshift1_4_r8, cshift1_8_c10, cshift1_8_c16, cshift1_8_c4,
        cshift1_8_c8, cshift1_8_i1, cshift1_8_i16, cshift1_8_i2,
        cshift1_8_i4, cshift1_8_i8, cshift1_8_r10, cshift1_8_r16,
        cshift1_8_r4 and cshift1_8_r8.
        * generated/cshift1_16_c10.c: New file, generated from cshift1a.m4.
        * generated/cshift1_16_c16.c: New file, generated from cshift1a.m4.
        * generated/cshift1_16_c4.c: New file, generated from cshift1a.m4.
        * generated/cshift1_16_c8.c: New file, generated from cshift1a.m4.
        * generated/cshift1_16_i1.c: New file, generated from cshift1a.m4.
        * generated/cshift1_16_i16.c: New file, generated from cshift1a.m4.
        * generated/cshift1_16_i2.c: New file, generated from cshift1a.m4.
        * generated/cshift1_16_i4.c: New file, generated from cshift1a.m4.
        * generated/cshift1_16_i8.c: New file, generated from cshift1a.m4.
        * generated/cshift1_16_r10.c: New file, generated from cshift1a.m4.
        * generated/cshift1_16_r16.c: New file, generated from cshift1a.m4.
        * generated/cshift1_16_r4.c: New file, generated from cshift1a.m4.
        * generated/cshift1_16_r8.c: New file, generated from cshift1a.m4.
        * generated/cshift1_4_c10.c: New file, generated from cshift1a.m4.
        * generated/cshift1_4_c16.c: New file, generated from cshift1a.m4.
        * generated/cshift1_4_c4.c: New file, generated from cshift1a.m4.
        * generated/cshift1_4_c8.c: New file, generated from cshift1a.m4.
        * generated/cshift1_4_i1.c: New file, generated from cshift1a.m4.
        * generated/cshift1_4_i16.c: New file, generated from cshift1a.m4.
        * generated/cshift1_4_i2.c: New file, generated from cshift1a.m4.
        * generated/cshift1_4_i4.c: New file, generated from cshift1a.m4.
        * generated/cshift1_4_i8.c: New file, generated from cshift1a.m4.
        * generated/cshift1_4_r10.c: New file, generated from cshift1a.m4.
        * generated/cshift1_4_r16.c: New file, generated from cshift1a.m4.
        * generated/cshift1_4_r4.c: New file, generated from cshift1a.m4.
        * generated/cshift1_4_r8.c: New file, generated from cshift1a.m4.
        * generated/cshift1_8_c10.c: New file, generated from cshift1a.m4.
        * generated/cshift1_8_c16.c: New file, generated from cshift1a.m4.
        * generated/cshift1_8_c4.c: New file, generated from cshift1a.m4.
        * generated/cshift1_8_c8.c: New file, generated from cshift1a.m4.
        * generated/cshift1_8_i1.c: New file, generated from cshift1a.m4.
        * generated/cshift1_8_i16.c: New file, generated from cshift1a.m4.
        * generated/cshift1_8_i2.c: New file, generated from cshift1a.m4.
        * generated/cshift1_8_i4.c: New file, generated from cshift1a.m4.
        * generated/cshift1_8_i8.c: New file, generated from cshift1a.m4.
        * generated/cshift1_8_r10.c: New file, generated from cshift1a.m4.
        * generated/cshift1_8_r16.c: New file, generated from cshift1a.m4.
        * generated/cshift1_8_r4.c: New file, generated from cshift1a.m4.
        * generated/cshift1_8_r8.c: New file, generated from cshift1a.m4.

2017-06-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/52473
        * gfortran.dg/cshift_2.f90:  New test.


Added:
    trunk/gcc/testsuite/gfortran.dg/cshift_2.f90
    trunk/libgfortran/generated/cshift1_16_c10.c
    trunk/libgfortran/generated/cshift1_16_c16.c
    trunk/libgfortran/generated/cshift1_16_c4.c
    trunk/libgfortran/generated/cshift1_16_c8.c
    trunk/libgfortran/generated/cshift1_16_i1.c
    trunk/libgfortran/generated/cshift1_16_i16.c
    trunk/libgfortran/generated/cshift1_16_i2.c
    trunk/libgfortran/generated/cshift1_16_i4.c
    trunk/libgfortran/generated/cshift1_16_i8.c
    trunk/libgfortran/generated/cshift1_16_r10.c
    trunk/libgfortran/generated/cshift1_16_r16.c
    trunk/libgfortran/generated/cshift1_16_r4.c
    trunk/libgfortran/generated/cshift1_16_r8.c
    trunk/libgfortran/generated/cshift1_4_c10.c
    trunk/libgfortran/generated/cshift1_4_c16.c
    trunk/libgfortran/generated/cshift1_4_c4.c
    trunk/libgfortran/generated/cshift1_4_c8.c
    trunk/libgfortran/generated/cshift1_4_i1.c
    trunk/libgfortran/generated/cshift1_4_i16.c
    trunk/libgfortran/generated/cshift1_4_i2.c
    trunk/libgfortran/generated/cshift1_4_i4.c
    trunk/libgfortran/generated/cshift1_4_i8.c
    trunk/libgfortran/generated/cshift1_4_r10.c
    trunk/libgfortran/generated/cshift1_4_r16.c
    trunk/libgfortran/generated/cshift1_4_r4.c
    trunk/libgfortran/generated/cshift1_4_r8.c
    trunk/libgfortran/generated/cshift1_8_c10.c
    trunk/libgfortran/generated/cshift1_8_c16.c
    trunk/libgfortran/generated/cshift1_8_c4.c
    trunk/libgfortran/generated/cshift1_8_c8.c
    trunk/libgfortran/generated/cshift1_8_i1.c
    trunk/libgfortran/generated/cshift1_8_i16.c
    trunk/libgfortran/generated/cshift1_8_i2.c
    trunk/libgfortran/generated/cshift1_8_i4.c
    trunk/libgfortran/generated/cshift1_8_i8.c
    trunk/libgfortran/generated/cshift1_8_r10.c
    trunk/libgfortran/generated/cshift1_8_r16.c
    trunk/libgfortran/generated/cshift1_8_r4.c
    trunk/libgfortran/generated/cshift1_8_r8.c
    trunk/libgfortran/m4/cshift1a.m4
Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/Makefile.am
    trunk/libgfortran/Makefile.in
    trunk/libgfortran/generated/cshift1_16.c
    trunk/libgfortran/generated/cshift1_4.c
    trunk/libgfortran/generated/cshift1_8.c
    trunk/libgfortran/libgfortran.h
    trunk/libgfortran/m4/cshift1.m4

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]