public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs
@ 2013-10-18 16:23 jakub at gcc dot gnu.org
2013-10-18 16:30 ` [Bug tree-optimization/58791] " jakub at gcc dot gnu.org
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-10-18 16:23 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58791
Bug ID: 58791
Summary: [4.9 Regression] Reassoc reuses SSA_NAMEs
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: jakub at gcc dot gnu.org
Reporter: jakub at gcc dot gnu.org
volatile char v;
unsigned
foo (unsigned x)
{
if (x > 7)
return 0;
unsigned a = x + 1;
unsigned b = x + 2;
unsigned c = a + b;
unsigned d = 3 * x + 4;
unsigned e = x + 3;
unsigned f = d + c + e;
unsigned a2 = a;
unsigned b2 = b;
unsigned c2 = c;
unsigned d2 = d;
unsigned e2 = e;
unsigned f2 = f;
v++;
return f;
}
look at -O2 -fdump-tree-reassoc1-alias, the range info is definitely wrong
there for many of the SSA_NAMEs.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug tree-optimization/58791] [4.9 Regression] Reassoc reuses SSA_NAMEs
2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
@ 2013-10-18 16:30 ` jakub at gcc dot gnu.org
2013-10-18 19:06 ` ktietz at gcc dot gnu.org
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-10-18 16:30 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58791
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 31043
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31043&action=edit
gcc49-pr58791.patch
Preliminary patch that fixes linearize_tree and rewrite_expr_tree. There are
various other places that need verification.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug tree-optimization/58791] [4.9 Regression] Reassoc reuses SSA_NAMEs
2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
2013-10-18 16:30 ` [Bug tree-optimization/58791] " jakub at gcc dot gnu.org
@ 2013-10-18 19:06 ` ktietz at gcc dot gnu.org
2013-10-18 19:17 ` jakub at gcc dot gnu.org
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: ktietz at gcc dot gnu.org @ 2013-10-18 19:06 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58791
Kai Tietz <ktietz at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ktietz at gcc dot gnu.org
--- Comment #2 from Kai Tietz <ktietz at gcc dot gnu.org> ---
well, by applying this patch I see an ICE for testcase provided in pr/58775.
There is an ssa-name generated with NULL-type.
Might be a side-effect.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug tree-optimization/58791] [4.9 Regression] Reassoc reuses SSA_NAMEs
2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
2013-10-18 16:30 ` [Bug tree-optimization/58791] " jakub at gcc dot gnu.org
2013-10-18 19:06 ` ktietz at gcc dot gnu.org
@ 2013-10-18 19:17 ` jakub at gcc dot gnu.org
2013-10-21 8:43 ` rguenth at gcc dot gnu.org
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-10-18 19:17 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58791
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The patch is WIP, untested (except the single testcase here), and I've already
changed some further things in it. It is premature to test it now.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug tree-optimization/58791] [4.9 Regression] Reassoc reuses SSA_NAMEs
2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
` (2 preceding siblings ...)
2013-10-18 19:17 ` jakub at gcc dot gnu.org
@ 2013-10-21 8:43 ` rguenth at gcc dot gnu.org
2013-10-22 9:52 ` jakub at gcc dot gnu.org
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-10-21 8:43 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58791
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code, wrong-debug
Status|UNCONFIRMED |NEW
Last reconfirmed| |2013-10-21
Target Milestone|--- |4.9.0
Ever confirmed|0 |1
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed, an issue in earlier releases because of wrong-debug.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug tree-optimization/58791] [4.9 Regression] Reassoc reuses SSA_NAMEs
2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
` (3 preceding siblings ...)
2013-10-21 8:43 ` rguenth at gcc dot gnu.org
@ 2013-10-22 9:52 ` jakub at gcc dot gnu.org
2013-10-23 16:19 ` jakub at gcc dot gnu.org
2013-10-25 10:31 ` rguenth at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-10-22 9:52 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58791
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #31043|0 |1
is obsolete| |
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 31068
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31068&action=edit
gcc49-pr58791.patch
Updated patch that I'm bootstrapping/regtesting now.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug tree-optimization/58791] [4.9 Regression] Reassoc reuses SSA_NAMEs
2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
` (4 preceding siblings ...)
2013-10-22 9:52 ` jakub at gcc dot gnu.org
@ 2013-10-23 16:19 ` jakub at gcc dot gnu.org
2013-10-25 10:31 ` rguenth at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-10-23 16:19 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58791
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Wed Oct 23 16:19:17 2013
New Revision: 203979
URL: http://gcc.gnu.org/viewcvs?rev=203979&root=gcc&view=rev
Log:
PR tree-optimization/58775
PR tree-optimization/58791
* tree-ssa-reassoc.c (reassoc_stmt_dominates_stmt_p): New function.
(insert_stmt_after): Rewritten, don't move the stmt, but really
insert it.
(get_stmt_uid_with_default): Remove.
(build_and_add_sum): Use insert_stmt_after and
reassoc_stmt_dominates_stmt_p. Fix up uid if bb contains only
labels.
(update_range_test): Set uid on stmts added by
force_gimple_operand_gsi. Don't immediately modify statements
in inter-bb optimization, just update oe->op values.
(optimize_range_tests): Return bool whether any changed have
been made.
(update_ops): New function.
(struct inter_bb_range_test_entry): New type.
(maybe_optimize_range_tests): Perform statement changes here.
(not_dominated_by, appears_later_in_bb, get_def_stmt,
ensure_ops_are_available): Remove.
(find_insert_point): Rewritten.
(rewrite_expr_tree): Remove MOVED argument, add CHANGED argument,
return LHS of the (new resp. old) stmt. Don't call
ensure_ops_are_available, don't reuse SSA_NAMEs, recurse first
instead of last, move new stmt at the right place.
(linearize_expr, repropagate_negates): Don't reuse SSA_NAMEs.
(negate_value): Likewise. Set uids.
(break_up_subtract_bb): Initialize uids.
(reassociate_bb): Adjust rewrite_expr_tree caller.
(do_reassoc): Don't call renumber_gimple_stmt_uids.
* gcc.dg/guality/pr58791-1.c: New test.
* gcc.dg/guality/pr58791-2.c: New test.
* gcc.dg/guality/pr58791-3.c: New test.
* gcc.dg/guality/pr58791-4.c: New test.
* gcc.dg/guality/pr58791-5.c: New test.
* gcc.c-torture/compile/pr58775.c: New test.
* gcc.dg/tree-ssa/reassoc-28.c: Don't scan reassoc1 dump.
Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr58775.c
trunk/gcc/testsuite/gcc.dg/guality/pr58791-1.c
trunk/gcc/testsuite/gcc.dg/guality/pr58791-2.c
trunk/gcc/testsuite/gcc.dg/guality/pr58791-3.c
trunk/gcc/testsuite/gcc.dg/guality/pr58791-4.c
trunk/gcc/testsuite/gcc.dg/guality/pr58791-5.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/reassoc-28.c
trunk/gcc/tree-ssa-reassoc.c
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug tree-optimization/58791] [4.9 Regression] Reassoc reuses SSA_NAMEs
2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
` (5 preceding siblings ...)
2013-10-23 16:19 ` jakub at gcc dot gnu.org
@ 2013-10-25 10:31 ` rguenth at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-10-25 10:31 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58791
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed. I'm not sure we want to backport any of this (well, I'm sure we won't).
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2013-10-25 10:31 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-18 16:23 [Bug tree-optimization/58791] New: [4.9 Regression] Reassoc reuses SSA_NAMEs jakub at gcc dot gnu.org
2013-10-18 16:30 ` [Bug tree-optimization/58791] " jakub at gcc dot gnu.org
2013-10-18 19:06 ` ktietz at gcc dot gnu.org
2013-10-18 19:17 ` jakub at gcc dot gnu.org
2013-10-21 8:43 ` rguenth at gcc dot gnu.org
2013-10-22 9:52 ` jakub at gcc dot gnu.org
2013-10-23 16:19 ` jakub at gcc dot gnu.org
2013-10-25 10:31 ` 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).