From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29640 invoked by alias); 7 Oct 2005 20:02:35 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 29610 invoked by alias); 7 Oct 2005 20:02:32 -0000 Date: Fri, 07 Oct 2005 20:02:00 -0000 Message-ID: <20051007200232.29608.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug libfortran/16339] Unformatted i/o on large arrays inefficient In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "cvs-commit at gcc dot gnu dot org" X-SW-Source: 2005-10/txt/msg00919.txt.bz2 List-Id: ------- 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 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