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 libfortran/16339] Unformatted i/o on large arrays inefficient



------- Comment #6 from cvs-commit at gcc dot gnu dot org  2005-10-07 20:02 -------
Subject: Bug 16339

CVSROOT:        /cvs/gcc
Module name:    gcc
Changes by:     tkoenig@gcc.gnu.org     2005-10-07 20:02:28

Modified files:
        libgfortran    : ChangeLog 
        libgfortran/io : io.h unix.c transfer.c 

Log message:
        2005-10-07  Janne Blomqvist <jblomqvi@cc.hut.fi>

        PR fortran/16339
        PR fortran/23363
        * io/io.h: Add read and write members to stream, define access
        macros.
        * io/transfer.c (read_block_direct): New function.
        (write_block_direct): New function.
        (unformatted_read): Change to use read_block_direct.
        (unformatted_write): Change to use write_block_direct.
        * io/unix.c: Remove mmap includes and defines.
        (writen): Remove.
        (readn): Remove.
        (reset_stream): New function.
        (do_read): New function.
        (do_write): New function.
        (fd_flush): Change to use do_write() instead of writen().
        (fd_alloc_r_at): Change to use do_read().
        (fd_seek): Change return type to try, as the prototype. Add check
        to avoid syscall overhead if possible.
        (fd_read): New function.
        (fd_write): New function.
        (fd_open): Set pointers for new functions.
        (mem_read): New function.
        (mem_write): New function.
        (open_internal): Set pointers for new functions.
        (is_seekable): Clean up comment.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/ChangeLog.diff?cvsroot=gcc&r1=1.319&r2=1.320
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/io.h.diff?cvsroot=gcc&r1=1.32&r2=1.33
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/unix.c.diff?cvsroot=gcc&r1=1.42&r2=1.43
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/transfer.c.diff?cvsroot=gcc&r1=1.62&r2=1.63


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16339


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