public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Christophe Lyon <christophe.lyon@linaro.org>
To: koenigni@student.ethz.ch
Cc: Andre Simoes Dias Vieira <Andre.SimoesDiasVieira@arm.com>,
	gcc Patches <gcc-patches@gcc.gnu.org>,
		fortran@gcc.gnu.org, Thomas Koenig <tkoenig@netcologne.de>,
		Ulrich Weigand <uweigand@de.ibm.com>,
	David Edelsohn <dje.gcc@gmail.com>,
	clyon@gcc.gnu.org
Subject: Re: Async I/O patch with compilation fix
Date: Fri, 03 Aug 2018 08:46:00 -0000	[thread overview]
Message-ID: <CAKdteOYFK_J+EDpt0dXSLOUkgpv8rvJvS3oWoJ4TWY1LFrX+UQ@mail.gmail.com> (raw)
In-Reply-To: <20180802170441.aidlg6grthuavogc@student.ethz.ch>

On Thu, 2 Aug 2018 at 19:05, Nicolas Koenig <koenigni@student.ethz.ch> wrote:
>
> On Thu, Aug 02, 2018 at 05:42:46PM +0200, Christophe Lyon wrote:
> > On Thu, 2 Aug 2018 at 13:35, Nicolas Koenig <koenigni@student.ethz.ch> wrote:
> > >
> > >
> > > Hello everyone,
> > >
> > > Here is an updated version of the patch that hopefully fixes the compilation
> > > problems by disabling async I/O if conditions are not supported by the target.
> > >
> > > I would appreciate if people could test it on systems on which it failed
> > > before. As for the array_constructor_8.f90 failure reported in the PR, why
> > > it fails is beyond me, it doesn't even use I/O. Maybe/Probably something
> > > unrelated?
> > >
> >
> > Hi,
> > I'm probably missing something obvious, but after applying this patch
> > on top of r263136, the builds fail while building libgfortran:
> > /tmp/9271913_1.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libgfortran/runtime/error.c:28:10:
> > fatal error: async.h: No such file or directory
> >  #include "async.h"
> >           ^~~~~~~~~
> > compilation terminated.
> > make[3]: *** [error.lo] Error 1
> >
>
> Hi,
>
> It wasn't you who missed something obvious. Typing `svn add` is hard.
> Here is a version of the patch with the two new files.
>

OK,

I applied this patch, and again I still see regressions on
armeb-none-linux-gnueabihf
--with-cpu cortex-a9
--with-fpu neon-fp16

FAIL: gfortran.dg/array_constructor_8.f90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  execution
test
FAIL: gfortran.dg/array_constructor_8.f90   -O3 -g  execution test

gfortran.log contains:
STOP 2
STOP 2

Christophe


>         Nicolas
>
> > >         Nicolas
> > >
> > >
> > > 2018-08-02  Nicolas Koenig  <koenigni@gcc.gnu.org>
> > >         Thomas Koenig <tkoenig@gcc.gnu.org>
> > >
> > >         PR fortran/25829
> > >         * gfortran.texi: Add description of asynchronous I/O.
> > >         * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables
> > >         as volatile.
> > >         * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to
> > >         st_wait_async and change argument spec from ".X" to ".w".
> > >         (gfc_trans_wait): Pass ID argument via reference.
> > >
> > > 2018-08-02  Nicolas Koenig  <koenigni@gcc.gnu.org>
> > >         Thomas Koenig <tkoenig@gcc.gnu.org>
> > >
> > >         PR fortran/25829
> > >         * gfortran.dg/f2003_inquire_1.f03: Add write statement.
> > >         * gfortran.dg/f2003_io_1.f03: Add wait statement.
> > >
> > > 2018-08-02  Nicolas Koenig  <koenigni@gcc.gnu.org>
> > >         Thomas Koenig <tkoenig@gcc.gnu.org>
> > >
> > >         PR fortran/25829
> > >         * Makefile.am: Add async.c to gfor_io_src.
> > >         Add async.h to gfor_io_headers.
> > >         * Makefile.in: Regenerated.
> > >         * gfortran.map: Add _gfortran_st_wait_async.
> > >         * io/async.c: New file.
> > >         * io/async.h: New file.
> > >         * io/close.c: Include async.h.
> > >         (st_close): Call async_wait for an asynchronous unit.
> > >         * io/file_pos.c (st_backspace): Likewise.
> > >         (st_endfile): Likewise.
> > >         (st_rewind): Likewise.
> > >         (st_flush): Likewise.
> > >         * io/inquire.c: Add handling for asynchronous PENDING
> > >         and ID arguments.
> > >         * io/io.h (st_parameter_dt): Add async bit.
> > >         (st_parameter_wait): Correct.
> > >         (gfc_unit): Add au pointer.
> > >         (st_wait_async): Add prototype.
> > >         (transfer_array_inner): Likewise.
> > >         (st_write_done_worker): Likewise.
> > >         * io/open.c: Include async.h.
> > >         (new_unit): Initialize asynchronous unit.
> > >         * io/transfer.c (async_opt): New struct.
> > >         (wrap_scalar_transfer): New function.
> > >         (transfer_integer): Call wrap_scalar_transfer to do the work.
> > >         (transfer_real): Likewise.
> > >         (transfer_real_write): Likewise.
> > >         (transfer_character): Likewise.
> > >         (transfer_character_wide): Likewise.
> > >         (transfer_complex): Likewise.
> > >         (transfer_array_inner): New function.
> > >         (transfer_array): Call transfer_array_inner.
> > >         (transfer_derived): Call wrap_scalar_transfer.
> > >         (data_transfer_init): Check for asynchronous I/O.
> > >         Perform a wait operation on any pending asynchronous I/O
> > >         if the data transfer is synchronous. Copy PDT and enqueue
> > >         thread for data transfer.
> > >         (st_read_done_worker): New function.
> > >         (st_read_done): Enqueue transfer or call st_read_done_worker.
> > >         (st_write_done_worker): New function.
> > >         (st_write_done): Enqueue transfer or call st_read_done_worker.
> > >         (st_wait): Document as no-op for compatibility reasons.
> > >         (st_wait_async): New function.
> > >         * io/unit.c (insert_unit): Use macros LOCK, UNLOCK and TRYLOCK;
> > >         add NOTE where necessary.
> > >         (get_gfc_unit): Likewise.
> > >         (init_units): Likewise.
> > >         (close_unit_1): Likewise. Call async_close if asynchronous.
> > >         (close_unit): Use macros LOCK and UNLOCK.
> > >         (finish_last_advance_record): Likewise.
> > >         (newunit_alloc): Likewise.
> > >         * io/unix.c (find_file): Likewise.
> > >         (flush_all_units_1): Likewise.
> > >         (flush_all_units): Likewise.
> > >         * libgfortran.h (generate_error_common): Add prototype.
> > >         * runtime/error.c: Include io.h and async.h.
> > >         (generate_error_common): New function.
> > >
> > > 2018-08-02  Nicolas Koenig  <koenigni@gcc.gnu.org>
> > >         Thomas Koenig <tkoenig@gcc.gnu.org>
> > >
> > >         PR fortran/25829
> > >         * testsuite/libgomp.fortran/async_io_1.f90: New test.
> > >         * testsuite/libgomp.fortran/async_io_2.f90: New test.
> > >         * testsuite/libgomp.fortran/async_io_3.f90: New test.
> > >         * testsuite/libgomp.fortran/async_io_4.f90: New test.
> > >         * testsuite/libgomp.fortran/async_io_5.f90: New test.
> > >         * testsuite/libgomp.fortran/async_io_6.f90: New test.
> > >         * testsuite/libgomp.fortran/async_io_7.f90: New test.

  reply	other threads:[~2018-08-03  8:46 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4dd07fa7-65e3-a4ea-b9cd-36eb4c75e875@koenigni.com>
2018-07-26 13:31 ` Build fail on gthr-simple.h targets (Re: AsyncI/O patch committed) Ulrich Weigand
2018-07-26 13:40   ` Build fail on gthr-single.h " Ulrich Weigand
2018-07-26 20:54   ` Build fail on gthr-simple.h " Thomas Koenig
2018-07-27  7:31     ` Thomas Koenig
2018-07-27 12:26       ` David Edelsohn
     [not found]         ` <5B6021C0.5060507@arm.com>
2018-08-02 11:35           ` Async I/O patch with compilation fix Nicolas Koenig
2018-08-02 15:43             ` Christophe Lyon
2018-08-02 17:08               ` Nicolas Koenig
2018-08-03  8:46                 ` Christophe Lyon [this message]
2018-08-03 22:43                   ` Thomas König
2018-08-06 11:33                     ` Christophe Lyon
2018-08-17 15:41                   ` Thomas Koenig
2018-08-18 22:44                     ` Christophe Lyon
2018-08-19 13:40                       ` Thomas Koenig
     [not found]                         ` <CAKdteObsx+RK2t-OteU_w6L_Pv7FGLpAcLrHaPY4NDAamV-z7g@mail.gmail.com>
2018-08-21 19:43                           ` Thomas Koenig
2018-08-22 18:49                             ` David Edelsohn
2018-08-22 21:31                               ` Thomas Koenig
2018-08-23 12:25                                 ` David Edelsohn
2018-08-23 17:42                                   ` Thomas Koenig
2018-08-23 12:53                                 ` David Edelsohn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAKdteOYFK_J+EDpt0dXSLOUkgpv8rvJvS3oWoJ4TWY1LFrX+UQ@mail.gmail.com \
    --to=christophe.lyon@linaro.org \
    --cc=Andre.SimoesDiasVieira@arm.com \
    --cc=clyon@gcc.gnu.org \
    --cc=dje.gcc@gmail.com \
    --cc=fortran@gcc.gnu.org \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=koenigni@student.ethz.ch \
    --cc=tkoenig@netcologne.de \
    --cc=uweigand@de.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).