public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "rguenther at suse dot de" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug target/63679] [5.0 Regression][AArch64] Failure to constant fold. Date: Mon, 24 Nov 2014 11:31:00 -0000 [thread overview] Message-ID: <bug-63679-4-H2pIQ3lUYs@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-63679-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63679 --- Comment #18 from rguenther at suse dot de <rguenther at suse dot de> --- On Mon, 24 Nov 2014, belagod at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63679 > > --- Comment #17 from Tejas Belagod <belagod at gcc dot gnu.org> --- > > - > > /* Do a block move either if the size is so small as to make > > each individual move a sub-unit move on average, or if it > > - is so large as to make individual moves inefficient. */ > > + is so large as to make individual moves inefficient. Reuse > > + the same costs logic as we use in the SRA passes. */ > > + unsigned max_scalarization_size > > + = optimize_function_for_size_p (cfun) > > + ? PARAM_VALUE (PARAM_SRA_MAX_SCALARIZATION_SIZE_SIZE) > > + : PARAM_VALUE (PARAM_SRA_MAX_SCALARIZATION_SIZE_SPEED); > > + > > if (size > 0 > > && num_nonzero_elements > 1 > > && (size < num_nonzero_elements > > - || !can_move_by_pieces (size, align))) > > + || size > max_scalarization_size)) > > { > > if (notify_temp_creation) > > return GS_ERROR; > > I think both move_by_pieces and SRA can co-exist here: > > diff --git a/gcc/gimplify.c b/gcc/gimplify.c > index 8e3dd83..be51ce7 100644 > --- a/gcc/gimplify.c > +++ b/gcc/gimplify.c > @@ -70,6 +70,7 @@ along with GCC; see the file COPYING3. If not see > #include "omp-low.h" > #include "gimple-low.h" > #include "cilk.h" > +#include "params.h" > > #include "langhooks-def.h" /* FIXME: for lhd_set_decl_assembler_name */ > #include "tree-pass.h" /* FIXME: only for PROP_gimple_any */ > @@ -3895,7 +3896,6 @@ gimplify_init_constructor (tree *expr_p, gimple_seq > *pre_p, gimple_seq *post_p, > DECL_ATTRIBUTES (current_function_decl)))) > { > HOST_WIDE_INT size = int_size_in_bytes (type); > unsigned int align; > > /* ??? We can still get unbounded array types, at least > from the C++ front end. This seems wrong, but attempt > @@ -3907,20 +3907,19 @@ gimplify_init_constructor (tree *expr_p, gimple_seq > *pre_p, gimple_seq *post_p, > TREE_TYPE (ctor) = type = TREE_TYPE (object); > } > > /* Find the maximum alignment we can assume for the object. */ > /* ??? Make use of DECL_OFFSET_ALIGN. */ > if (DECL_P (object)) > align = DECL_ALIGN (object); > else > align = TYPE_ALIGN (type); > > /* Do a block move either if the size is so small as to make > each individual move a sub-unit move on average, or if it > - is so large as to make individual moves inefficient. */ > + is so large as to make individual moves inefficient. Reuse > + the same costs logic as we use in the SRA passes. */ > + unsigned max_scalarization_size > + = optimize_function_for_size_p (cfun) > + ? PARAM_VALUE (PARAM_SRA_MAX_SCALARIZATION_SIZE_SIZE) > + : PARAM_VALUE (PARAM_SRA_MAX_SCALARIZATION_SIZE_SPEED); > + > if (size > 0 > && num_nonzero_elements > 1 > && (size < num_nonzero_elements > + || size > max_scalarization_size > || !can_move_by_pieces (size, align)) > { > if (notify_temp_creation) > return GS_ERROR; > > If it isn't profitable to do an SRA, we can fall-back to the backend hook to > move it by pieces. This way, I think we'll have move opportunity for > optimization. But that wouldn't fix the AARCH64 case as the backend says "no" here anyway? >From gcc-bugs-return-468243-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Mon Nov 24 11:32:32 2014 Return-Path: <gcc-bugs-return-468243-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org> Delivered-To: listarch-gcc-bugs@gcc.gnu.org Received: (qmail 28599 invoked by alias); 24 Nov 2014 11:32:31 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: <gcc-bugs.gcc.gnu.org> List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/> List-Post: <mailto:gcc-bugs@gcc.gnu.org> List-Help: <mailto:gcc-bugs-help@gcc.gnu.org> Sender: gcc-bugs-owner@gcc.gnu.org Delivered-To: mailing list gcc-bugs@gcc.gnu.org Received: (qmail 28572 invoked by uid 48); 24 Nov 2014 11:32:28 -0000 From: "kugan at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug target/64045] New: fortran.dg/pr45636.f90 fails for AArch64 - memcpy and memset are not combined Date: Mon, 24 Nov 2014 11:32:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 5.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: kugan at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter Message-ID: <bug-64045-4@http.gcc.gnu.org/bugzilla/> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-11/txt/msg02715.txt.bz2 Content-length: 548 https://gcc.gnu.org/bugzilla/show_bug.cgi?idd045 Bug ID: 64045 Summary: fortran.dg/pr45636.f90 fails for AArch64 - memcpy and memset are not combined Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: kugan at gcc dot gnu.org In current trunk, fortran.dg/pr45636.f90 fails for AArch64 as memcpy and memset are not combined.
next prev parent reply other threads:[~2014-11-24 11:31 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <bug-63679-4@http.gcc.gnu.org/bugzilla/> 2014-10-30 10:04 ` belagod at gcc dot gnu.org 2014-10-30 10:10 ` rguenth at gcc dot gnu.org 2014-11-04 11:41 ` belagod at gcc dot gnu.org 2014-11-04 16:32 ` belagod at gcc dot gnu.org 2014-11-04 20:58 ` rguenth at gcc dot gnu.org 2014-11-20 12:44 ` rguenth at gcc dot gnu.org 2014-11-20 16:21 ` belagod at gcc dot gnu.org 2014-11-20 16:49 ` pinskia at gcc dot gnu.org 2014-11-21 8:48 ` rguenth at gcc dot gnu.org 2014-11-21 10:17 ` rguenth at gcc dot gnu.org 2014-11-21 10:26 ` belagod at gcc dot gnu.org 2014-11-21 10:36 ` rguenther at suse dot de 2014-11-21 10:54 ` belagod at gcc dot gnu.org 2014-11-21 11:25 ` jgreenhalgh at gcc dot gnu.org 2014-11-21 18:20 ` jgreenhalgh at gcc dot gnu.org 2014-11-24 8:52 ` rguenther at suse dot de 2014-11-24 11:16 ` belagod at gcc dot gnu.org 2014-11-24 11:31 ` rguenther at suse dot de [this message] 2014-11-24 12:01 ` jgreenhalgh at gcc dot gnu.org 2014-11-24 12:19 ` rguenther at suse dot de 2014-11-24 13:45 ` rguenth at gcc dot gnu.org 2014-11-24 13:45 ` rguenth at gcc dot gnu.org 2014-11-24 14:07 ` rguenth at gcc dot gnu.org 2015-02-07 10:55 ` [Bug target/63679] [5 " jakub at gcc dot gnu.org 2015-02-09 9:08 ` rguenth at gcc dot gnu.org 2015-02-09 10:10 ` jakub at gcc dot gnu.org 2015-02-09 12:20 ` belagod at gcc dot gnu.org 2015-02-09 13:17 ` rguenther at suse dot de 2015-02-09 13:34 ` belagod at gcc dot gnu.org 2015-03-12 16:53 ` [Bug target/63679] [5 / 6 " ramana at gcc dot gnu.org 2015-07-28 17:15 ` [Bug target/63679] [5/6 " alalaw01 at gcc dot gnu.org 2015-07-28 18:36 ` pinskia at gcc dot gnu.org 2015-07-29 7:23 ` rguenther at suse dot de 2015-07-29 17:50 ` alalaw01 at gcc dot gnu.org 2015-08-03 15:38 ` alalaw01 at gcc dot gnu.org 2015-08-04 9:30 ` rguenther at suse dot de
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=bug-63679-4-H2pIQ3lUYs@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /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: linkBe 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).