public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Michael Meissner <meissner@linux.vnet.ibm.com>
To: Vladimir Makarov <vmakarov@redhat.com>
Cc: Michael Meissner <meissner@linux.vnet.ibm.com>,
	       David Edelsohn <dje.gcc@gmail.com>,
	       gcc-patches <gcc-patches@gcc.gnu.org>,
	       "Bergner, Peter" <bergner@vnet.ibm.com>,
	aavrunin@redhat.com
Subject: Re: RFA: enable LRA for rs6000
Date: Fri, 26 Apr 2013 22:21:00 -0000	[thread overview]
Message-ID: <20130426153038.GA22890@ibm-tiger.the-meissners.org> (raw)
In-Reply-To: <51798564.2040300@redhat.com>

Vlad, in going through the LRA test differences, some of the bswap64 tests are
failing because LRA converts the swaps for register/register converts into
store/load.  For example, if gcc.target/powerpc/bswap64-4.c is compiled on
32-bit, for this function:

long long swap_reg (long long a) { return __builtin_bswap64 (a); }

LRA gives:

swap_reg:
        stwu 1,-16(1)
        li 9,4
        stw 3,8(1)
        stw 4,12(1)
        addi 10,1,8
        lwbrx 3,9,10
        lwbrx 4,0,10
        addi 1,1,16
        blr

And the traditional code generation is:

swap_reg:
        rlwinm 9,4,8,0xffffffff
        rlwinm 10,3,8,0xffffffff
        rlwimi 9,4,24,0,7
        rlwimi 10,3,24,0,7
        rlwimi 9,4,24,16,23
        rlwimi 10,3,24,16,23
        mr 4,10
        mr 3,9

I assume the rlwinm's are to be preferred because there is no LHS, and also in
this case, the 2 registers rlwinm's are done in parallel.

The test gcc.target/powerpc/vect-83_64.c is failing in LRA:

vect-83_64.c: In function ‘main1’:
vect-83_64.c:30:1: internal compiler error: Max. number of generated reload insns per insn is achieved (90)

 }
 ^
0x104dca7f lra_constraints(bool)
        /home/meissner/fsf-src/meissner-lra/gcc/lra-constraints.c:3613
0x104ca67b lra(_IO_FILE*)
        /home/meissner/fsf-src/meissner-lra/gcc/lra.c:2278
0x1047d6eb do_reload
        /home/meissner/fsf-src/meissner-lra/gcc/ira.c:4619
0x1047d6eb rest_of_handle_reload
        /home/meissner/fsf-src/meissner-lra/gcc/ira.c:4731
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

I'm also seeing quite a few Fortran failures for -m32:

gfortran.dg/PR19872.f
gfortran.dg/advance_1.f90
gfortran.dg/advance_4.f90
gfortran.dg/advance_5.f90
gfortran.dg/advance_6.f90
gfortran.dg/append_1.f90
gfortran.dg/associated_2.f90
gfortran.dg/assumed_rank_1.f90
gfortran.dg/assumed_rank_2.f90
gfortran.dg/assumed_rank_7.f90
gfortran.dg/assumed_type_2.f90
gfortran.dg/backspace_10.f90
gfortran.dg/backspace_2.f
gfortran.dg/backspace_8.f
gfortran.dg/backspace_9.f
gfortran.dg/bound_2.f90
gfortran.dg/bound_7.f90
gfortran.dg/bound_8.f90
gfortran.dg/char_cshift_1.f90
gfortran.dg/char_cshift_2.f90
gfortran.dg/char_cshift_3.f90
gfortran.dg/char_eoshift_1.f90
gfortran.dg/char_eoshift_2.f90
gfortran.dg/char_eoshift_3.f90
gfortran.dg/char_eoshift_4.f90
gfortran.dg/char_eoshift_5.f90
gfortran.dg/char_length_8.f90
gfortran.dg/chmod_1.f90
gfortran.dg/chmod_2.f90
gfortran.dg/chmod_3.f90
gfortran.dg/comma.f
gfortran.dg/convert_2.f90
gfortran.dg/convert_implied_open.f90
gfortran.dg/cr_lf.f90
gfortran.dg/cshift_bounds_1.f90
gfortran.dg/cshift_bounds_2.f90
gfortran.dg/cshift_bounds_3.f90
gfortran.dg/cshift_bounds_4.f90
gfortran.dg/cshift_nan_1.f90
gfortran.dg/dev_null.F90
gfortran.dg/direct_io_1.f90
gfortran.dg/direct_io_11.f90
gfortran.dg/direct_io_12.f90
gfortran.dg/direct_io_2.f90
gfortran.dg/direct_io_3.f90
gfortran.dg/direct_io_5.f90
gfortran.dg/direct_io_8.f90
gfortran.dg/endfile.f90
gfortran.dg/endfile_2.f90
gfortran.dg/eof_4.f90
gfortran.dg/eoshift.f90
gfortran.dg/eoshift_bounds_1.f90
gfortran.dg/error_format.f90
gfortran.dg/f2003_inquire_1.f03
gfortran.dg/f2003_io_1.f03
gfortran.dg/f2003_io_5.f03
gfortran.dg/f2003_io_7.f03
gfortran.dg/fmt_cache_1.f
gfortran.dg/fmt_error_4.f90
gfortran.dg/fmt_error_5.f90
gfortran.dg/fmt_t_5.f90
gfortran.dg/fmt_t_7.f
gfortran.dg/ftell_3.f90
gfortran.dg/hollerith4.f90
gfortran.dg/inquire_10.f90
gfortran.dg/inquire_13.f90
gfortran.dg/inquire_15.f90
gfortran.dg/inquire_9.f90
gfortran.dg/inquire_size.f90
gfortran.dg/iomsg_1.f90
gfortran.dg/iostat_2.f90
gfortran.dg/list_read_10.f90
gfortran.dg/list_read_6.f90
gfortran.dg/list_read_7.f90
gfortran.dg/list_read_9.f90
gfortran.dg/matmul_1.f90
gfortran.dg/matmul_5.f90
gfortran.dg/maxloc_bounds_1.f90
gfortran.dg/maxloc_bounds_2.f90
gfortran.dg/maxloc_bounds_3.f90
gfortran.dg/maxloc_bounds_6.f90
gfortran.dg/maxloc_bounds_8.f90
gfortran.dg/namelist_44.f90
gfortran.dg/namelist_45.f90
gfortran.dg/namelist_46.f90
gfortran.dg/namelist_66.f90
gfortran.dg/namelist_72.f
gfortran.dg/namelist_82.f90
gfortran.dg/negative_automatic_size.f90
gfortran.dg/negative_unit.f
gfortran.dg/negative_unit_int8.f
gfortran.dg/newunit_1.f90
gfortran.dg/newunit_3.f90
gfortran.dg/open_access_append_1.f90
gfortran.dg/open_errors.f90
gfortran.dg/open_negative_unit_1.f90
gfortran.dg/open_new.f90
gfortran.dg/open_readonly_1.f90
gfortran.dg/open_status_1.f90
gfortran.dg/open_status_2.f90
gfortran.dg/open_status_3.f90
gfortran.dg/optional_dim_2.f90
gfortran.dg/optional_dim_3.f90
gfortran.dg/overwrite_1.f
gfortran.dg/pr16597.f90
gfortran.dg/pr16935.f90
gfortran.dg/pr20954.f
gfortran.dg/pr39865.f90
gfortran.dg/pr46804.f90
gfortran.dg/pr47878.f90
gfortran.dg/read_comma.f
gfortran.dg/read_eof_4.f90
gfortran.dg/read_eof_8.f90
gfortran.dg/read_eof_all.f90
gfortran.dg/read_list_eof_1.f90
gfortran.dg/read_many_1.f
gfortran.dg/read_no_eor.f90
gfortran.dg/readwrite_unf_direct_eor_1.f90
gfortran.dg/realloc_on_assign_11.f90
gfortran.dg/realloc_on_assign_7.f03
gfortran.dg/record_marker_1.f90
gfortran.dg/record_marker_3.f90
gfortran.dg/runtime_warning_1.f90
gfortran.dg/selected_char_kind_1.f90
gfortran.dg/selected_char_kind_4.f90
gfortran.dg/shift-alloc.f90
gfortran.dg/shift-kind_2.f90
gfortran.dg/stat_1.f90
gfortran.dg/stat_2.f90
gfortran.dg/streamio_1.f90
gfortran.dg/streamio_10.f90
gfortran.dg/streamio_12.f90
gfortran.dg/streamio_14.f90
gfortran.dg/streamio_15.f90
gfortran.dg/streamio_16.f90
gfortran.dg/streamio_2.f90
gfortran.dg/streamio_3.f90
gfortran.dg/streamio_4.f90
gfortran.dg/streamio_5.f90
gfortran.dg/streamio_6.f90
gfortran.dg/streamio_7.f90
gfortran.dg/streamio_8.f90
gfortran.dg/streamio_9.f90
gfortran.dg/tl_editing.f90
gfortran.dg/unf_io_convert_1.f90
gfortran.dg/unf_io_convert_2.f90
gfortran.dg/unf_io_convert_3.f90
gfortran.dg/unf_io_convert_4.f90
gfortran.dg/unf_read_corrupted_1.f90
gfortran.dg/unf_short_record_1.f90
gfortran.dg/unformatted_subrecord_1.f90
gfortran.dg/unpack_bounds_1.f90
gfortran.dg/unpack_bounds_2.f90
gfortran.dg/unpack_bounds_3.f90
gfortran.dg/widechar_intrinsics_10.f90
gfortran.dg/widechar_intrinsics_5.f90
gfortran.dg/write_back.f
gfortran.dg/write_check.f90
gfortran.dg/write_check3.f90
gfortran.dg/write_direct_eor.f90
gfortran.dg/write_rewind_1.f
gfortran.dg/write_rewind_2.f
gfortran.dg/write_to_null.F90
gfortran.dg/x_slash_2.f
gfortran.dg/zero_sized_1.f90
gfortran.fortran-torture/execute/backspace.f90
gfortran.fortran-torture/execute/direct_io.f90
gfortran.fortran-torture/execute/inquire_1.f90
gfortran.fortran-torture/execute/inquire_2.f90
gfortran.fortran-torture/execute/inquire_3.f90
gfortran.fortran-torture/execute/inquire_4.f90
gfortran.fortran-torture/execute/inquire_5.f90
gfortran.fortran-torture/execute/intrinsic_associated.f90
gfortran.fortran-torture/execute/intrinsic_associated_2.f90
gfortran.fortran-torture/execute/intrinsic_cshift.f90
gfortran.fortran-torture/execute/intrinsic_eoshift.f90
gfortran.fortran-torture/execute/intrinsic_size.f90
gfortran.fortran-torture/execute/list_read_1.f90
gfortran.fortran-torture/execute/open_replace.f90
gfortran.fortran-torture/execute/seq_io.f90
gfortran.fortran-torture/execute/slash_edit.f90
gfortran.fortran-torture/execute/unopened_unit_1.f90

-- 
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460, USA
email: meissner@linux.vnet.ibm.com, phone: +1 (978) 899-4797

  reply	other threads:[~2013-04-26 15:30 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-11 20:09 Vladimir Makarov
2013-04-11 20:56 ` David Edelsohn
2013-04-11 22:48   ` Vladimir Makarov
2013-04-12 19:09     ` Vladimir Makarov
2013-04-13 15:02       ` David Edelsohn
2013-04-16  9:13 ` Michael Meissner
2013-04-16  9:19   ` Steven Bosscher
2013-04-16  9:27     ` Michael Meissner
2013-04-17 11:53   ` RFA: enable LRA for rs6000 [patch for WRF] Michael Meissner
2013-04-17 16:13     ` Vladimir Makarov
2013-04-17 19:43       ` Michael Meissner
2013-04-19  8:09         ` Vladimir Makarov
2013-04-19  8:13           ` Michael Meissner
2013-04-19 21:32           ` Vladimir Makarov
2013-04-22 10:56             ` Alan Modra
2013-04-22 20:57               ` Vladimir Makarov
2013-04-22 20:59                 ` Michael Meissner
2013-04-23  8:14                   ` Vladimir Makarov
2013-04-23  9:05                     ` David Edelsohn
2013-04-23 21:02                       ` Vladimir Makarov
2013-04-23 21:32                         ` David Edelsohn
2013-04-23 21:45                           ` Vladimir Makarov
2013-04-23 22:02                             ` David Edelsohn
2013-04-24 22:51                             ` Michael Meissner
2013-04-25 19:27                               ` Vladimir Makarov
2013-04-25 22:29                                 ` Vladimir Makarov
2013-04-26 22:21                                   ` Michael Meissner [this message]
2013-04-27  8:07                                     ` RFA: enable LRA for rs6000 Vladimir Makarov
2013-04-27  8:33                                       ` Michael Meissner
2013-04-28 21:13                                         ` Vladimir Makarov
2013-04-27  0:34                                   ` RFA: enable LRA for rs6000 [32-bit fortran] Michael Meissner
2013-04-27  8:10                                     ` Vladimir Makarov
2013-04-28 14:45                                       ` RFA: enable LRA for rs6000 [lra-constraints] Michael Meissner

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=20130426153038.GA22890@ibm-tiger.the-meissners.org \
    --to=meissner@linux.vnet.ibm.com \
    --cc=aavrunin@redhat.com \
    --cc=bergner@vnet.ibm.com \
    --cc=dje.gcc@gmail.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=vmakarov@redhat.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).