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).
next prev 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).