public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "rguenth at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/60172] [4.9/4.10 Regression] ARM performance regression from trunk@207239
Date: Thu, 15 May 2014 08:01:00 -0000	[thread overview]
Message-ID: <bug-60172-4-VoFbvRPDMe@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-60172-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60172

--- Comment #17 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Thomas Preud'homme from comment #16)
> Hi Richard,
> 
> could you expand on what you said in comment #13? I don't see how reassoc
> could help cse here. From what I understood, reassoc tries to group per
> rank. In our case, we have (view of the source with loop unrolling):
> 
> Arr_2_Par_Ref [Int_Loc] [Int_Loc] = Int_Loc;
> /* some stmts */
> Arr_2_Par_Ref [Int_Loc+10] [Int_Loc] = Arr_1_Par_Ref [Int_Loc];
> 
> If I'm not mistaken, in the first case you'd have:
> 
> Int_Loc * 4
> Int_Loc * 100
> Arr_2_Par_Ref
> 
> that would be added together with several statements. However in the second
> case you'd have:
> 
> Int_Loc * 4
> Int_Loc * 100
> 1000
> Arr_2_Par_Ref
> 
> that would be added together with several statements. I don't see how could
> 1000 being added first or last, it seems to me that it's always going to be
> in an intermediate statement and thus not all redanduncy would be eliminated
> by CSE.
> 
> Please let me know if my reasonning is flawed so that I can progress toward
> a solution.

Citing myself:

On the GIMPLE level before expansion we have

 +40 = Arr_2_Par_Ref_22(D) + (_41 + pretmp_20);

 _51 = Arr_2_Par_Ref_22(D) + (_41 + (pretmp_20 + 1000));

so if _51 were Arr_2_Par_Ref_22(D) + ((_41 + pretmp_20) + 1000);

then _41 + pretmp_20 would be fully redundant with the expression needed
by _40.

Note that IIRC one issue with TER is that it is no longer happening as
there are dead stmts around that confuse its has_single_use logic.  Thus
placing a dce pass right before expand would fix that and might be a good
idea anyway (see comment #3).  Implementing a "proper" poor-mans SSA-based
DCE would be a good way out (out-of-SSA already has one to remove dead
PHIs).


  parent reply	other threads:[~2014-05-15  8:01 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-13  9:54 [Bug tree-optimization/60172] New: " joey.ye at arm dot com
2014-02-14  8:20 ` [Bug tree-optimization/60172] " joey.ye at arm dot com
2014-02-14 10:22 ` rguenth at gcc dot gnu.org
2014-02-14 10:50 ` joey.ye at arm dot com
2014-02-14 12:19 ` rguenth at gcc dot gnu.org
2014-02-14 14:03 ` rguenth at gcc dot gnu.org
2014-02-17  9:56 ` joey.ye at arm dot com
2014-02-17 10:07 ` rguenther at suse dot de
2014-02-19 11:19 ` joey.ye at arm dot com
2014-02-19 11:21 ` joey.ye at arm dot com
2014-02-19 23:06 ` steven at gcc dot gnu.org
2014-02-20 10:02 ` rguenther at suse dot de
2014-04-14  7:58 ` [Bug tree-optimization/60172] [4.9/4.10 Regression] " rguenth at gcc dot gnu.org
2014-05-09  8:51 ` thomas.preudhomme at arm dot com
2014-05-15  3:29 ` thomas.preudhomme at arm dot com
2014-05-15  8:01 ` rguenth at gcc dot gnu.org [this message]
2014-05-15  8:54 ` thomas.preudhomme at arm dot com
2014-05-15  9:51 ` thomas.preudhomme at arm dot com
2014-05-15 10:12 ` rguenther at suse dot de
2014-06-18 14:21 ` bpringlemeir at gmail dot com
2014-06-18 15:15 ` bpringlemeir at gmail dot com
2014-07-16 13:28 ` jakub at gcc dot gnu.org
2014-10-30 10:40 ` [Bug tree-optimization/60172] [4.9/5 " jakub at gcc dot gnu.org
2015-03-13 14:55 ` joey.ye at arm dot com
2015-06-26 19:59 ` [Bug tree-optimization/60172] [4.9/5/6 " jakub at gcc dot gnu.org
2015-06-26 20:30 ` jakub at gcc dot gnu.org

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-60172-4-VoFbvRPDMe@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: 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).