public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/63962] New: [5 Regression][x86] Code pessimization after r217213
@ 2014-11-19 12:56 izamyatin at gmail dot com
2014-11-19 13:30 ` [Bug tree-optimization/63962] " rguenth at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: izamyatin at gmail dot com @ 2014-11-19 12:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63962
Bug ID: 63962
Summary: [5 Regression][x86] Code pessimization after r217213
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: izamyatin at gmail dot com
Target: x86
While investigating some performance regressions on 32 bits on trunk (just -O2
-m32) I noticed that after r217213 forward propagation makes code worse for
following testcase
struct TT
{
int * c;
int s;
} FF;
long
foo (int t1, int t2)
{
unsigned int i, i1;
static int *c, s;
for (i = 0; i < t1; i++)
{
c = FF.c + FF.s - 1;
s = (int)(*c--);
for (i1 = 2; i1 < t2; i1++)
s += (int)(*c--);
}
return s;
}
For r217212 I see in 068t.forwprop2
-----
<bb 3>:
_8 = FF.c;
_9 = FF.s;
_10 = (sizetype) _9;
_11 = _10 + 1073741823;
_12 = _11 * 4;
c.0_13 = _8 + _12;
c = c.0_13;
c.3_15 = c.0_13 + 4294967292;
c = c.3_15;
s.4_17 = *c.0_13;
s = s.4_17;
# DEBUG i1 => 2
goto <bb 5>;
-----
while for r217213 code contains one more addition
----- |
<bb 3>: |
_8 = FF.c; |
_9 = FF.s; |
_10 = (sizetype) _9; |
_11 = _10 + 1073741823; |
_12 = _11 * 4; |
c.0_13 = _8 + _12; |
c = c.0_13; |
_31 = _12 + 4294967292; <-------------------
c.3_15 = _8 + _31;
c = c.3_15;
s.4_17 = *c.0_13;
s = s.4_17;
# DEBUG i1 => 2
goto <bb 5>;
-----
Can try to cook runtime test if it is necessary.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug tree-optimization/63962] [5 Regression][x86] Code pessimization after r217213
2014-11-19 12:56 [Bug tree-optimization/63962] New: [5 Regression][x86] Code pessimization after r217213 izamyatin at gmail dot com
@ 2014-11-19 13:30 ` rguenth at gcc dot gnu.org
2014-11-19 14:23 ` rguenth at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-11-19 13:30 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63962
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |5.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug tree-optimization/63962] [5 Regression][x86] Code pessimization after r217213
2014-11-19 12:56 [Bug tree-optimization/63962] New: [5 Regression][x86] Code pessimization after r217213 izamyatin at gmail dot com
2014-11-19 13:30 ` [Bug tree-optimization/63962] " rguenth at gcc dot gnu.org
@ 2014-11-19 14:23 ` rguenth at gcc dot gnu.org
2014-11-20 9:27 ` rguenth at gcc dot gnu.org
2014-11-20 9:27 ` rguenth at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-11-19 14:23 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63962
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2014-11-19
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed. I missed a !has_single_use when converting this pattern:
/* Associate (p +p off1) +p off2 as (p +p (off1 + off2)). */
ptr = gimple_assign_rhs1 (stmt);
off1 = gimple_assign_rhs2 (stmt);
if (TREE_CODE (ptr) != SSA_NAME
|| !has_single_use (ptr))
return false;
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug tree-optimization/63962] [5 Regression][x86] Code pessimization after r217213
2014-11-19 12:56 [Bug tree-optimization/63962] New: [5 Regression][x86] Code pessimization after r217213 izamyatin at gmail dot com
` (2 preceding siblings ...)
2014-11-20 9:27 ` rguenth at gcc dot gnu.org
@ 2014-11-20 9:27 ` rguenth at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-11-20 9:27 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63962
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug tree-optimization/63962] [5 Regression][x86] Code pessimization after r217213
2014-11-19 12:56 [Bug tree-optimization/63962] New: [5 Regression][x86] Code pessimization after r217213 izamyatin at gmail dot com
2014-11-19 13:30 ` [Bug tree-optimization/63962] " rguenth at gcc dot gnu.org
2014-11-19 14:23 ` rguenth at gcc dot gnu.org
@ 2014-11-20 9:27 ` rguenth at gcc dot gnu.org
2014-11-20 9:27 ` rguenth at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-11-20 9:27 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63962
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Thu Nov 20 09:26:48 2014
New Revision: 217828
URL: https://gcc.gnu.org/viewcvs?rev=217828&root=gcc&view=rev
Log:
2014-11-20 Richard Biener <rguenther@suse.de>
PR middle-end/63962
* match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
Guard with single-use operand 0.
* gcc.dg/tree-ssa/forwprop-30.c: New testcase.
Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/forwprop-30.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/match.pd
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-11-20 9:27 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-19 12:56 [Bug tree-optimization/63962] New: [5 Regression][x86] Code pessimization after r217213 izamyatin at gmail dot com
2014-11-19 13:30 ` [Bug tree-optimization/63962] " rguenth at gcc dot gnu.org
2014-11-19 14:23 ` rguenth at gcc dot gnu.org
2014-11-20 9:27 ` rguenth at gcc dot gnu.org
2014-11-20 9:27 ` rguenth at gcc dot gnu.org
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).