[Bug tree-optimization/45314] [4.5 Regression] ICE: error: in remove_unreachable_handlers, at tree-sh.c:3294 with -O2 -floop-interchange

2010-11-09 Thread spop at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45314

Sebastian Pop  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #13 from Sebastian Pop  2010-11-09 
19:16:37 UTC ---
Fixed.


[Bug tree-optimization/45314] [4.5 Regression] ICE: error: in remove_unreachable_handlers, at tree-sh.c:3294 with -O2 -floop-interchange

2010-11-09 Thread spop at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45314

--- Comment #12 from Sebastian Pop  2010-11-09 
19:15:39 UTC ---
Author: spop
Date: Tue Nov  9 19:15:36 2010
New Revision: 166507

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166507
Log:
Fix Changelog entry.

2010-11-09  Sebastian Pop  

   PR tree-optimization/45314
   Backport of revision 163132.
   * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
   of SSA copies on edges except for loop->latch.

Modified:
branches/gcc-4_5-branch/gcc/ChangeLog


[Bug tree-optimization/45314] [4.5 Regression] ICE: error: in remove_unreachable_handlers, at tree-sh.c:3294 with -O2 -floop-interchange

2010-11-09 Thread spop at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45314

--- Comment #11 from Sebastian Pop  2010-11-09 
19:15:19 UTC ---
The patch fixing this has been committed with the wrong PR number on: 

Author: spop
Date: Tue Nov  9 19:08:57 2010
New Revision: 166506

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166506
Log:
Fix PR45314: backport revision 163123.

2010-11-09  Sebastian Pop  

   PR tree-optimization/45902
   Backport of revision 163132.
   * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
   of SSA copies on edges except for loop->latch.

Modified:
   branches/gcc-4_5-branch/gcc/ChangeLog
   branches/gcc-4_5-branch/gcc/graphite-sese-to-poly.c


[Bug tree-optimization/45314] [4.5 Regression] ICE: error: in remove_unreachable_handlers, at tree-sh.c:3294 with -O2 -floop-interchange

2010-11-05 Thread sebpop at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45314

--- Comment #10 from sebpop at gmail dot com  
2010-11-05 18:17:01 UTC ---
Here is the backported patch that fixes the ICE.
I will further test this and will post to gcc-patches.

Sebastian


Re: [Bug tree-optimization/45314] [4.5 Regression] ICE: error: in remove_unreachable_handlers, at tree-sh.c:3294 with -O2 -floop-interchange

2010-11-05 Thread Sebastian Pop
Here is the backported patch that fixes the ICE.
I will further test this and will post to gcc-patches.

Sebastian
From 8f0cc975c09d2e0779f7e25a82a295f3deb9de46 Mon Sep 17 00:00:00 2001
From: Sebastian Pop 
Date: Fri, 5 Nov 2010 13:15:25 -0500
Subject: [PATCH] Fix PR45314: backport revision 163123.

---
 gcc/graphite-sese-to-poly.c |   56 --
 1 files changed, 6 insertions(+), 50 deletions(-)

diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c
index d4bb8a3..b12210b 100644
--- a/gcc/graphite-sese-to-poly.c
+++ b/gcc/graphite-sese-to-poly.c
@@ -2231,58 +2231,14 @@ rewrite_phi_out_of_ssa (gimple_stmt_iterator *psi)
   for (i = 0; i < gimple_phi_num_args (phi); i++)
 {
   tree arg = gimple_phi_arg_def (phi, i);
+  edge e = gimple_phi_arg_edge (phi, i);
 
-  /* Try to avoid the insertion on edges as much as possible: this
-	 would avoid the insertion of code on loop latch edges, making
-	 the pattern matching of the vectorizer happy, or it would
-	 avoid the insertion of useless basic blocks.  Note that it is
-	 incorrect to insert out of SSA copies close by their
-	 definition when they are more than two loop levels apart:
-	 for example, starting from a double nested loop
-
-	 | a = ...
-	 | loop_1
-	 |  loop_2
-	 |b = phi (a, c)
-	 |c = ...
-	 |  end_2
-	 | end_1
-
-	 the following transform is incorrect
-
-	 | a = ...
-	 | Red[0] = a
-	 | loop_1
-	 |  loop_2
-	 |b = Red[0]
-	 |c = ...
-	 |Red[0] = c
-	 |  end_2
-	 | end_1
-
-	 whereas inserting the copy on the incoming edge is correct
-
-	 | a = ...
-	 | loop_1
-	 |  Red[0] = a
-	 |  loop_2
-	 |b = Red[0]
-	 |c = ...
-	 |Red[0] = c
-	 |  end_2
-	 | end_1
-  */
-  if (TREE_CODE (arg) == SSA_NAME
-	  && is_gimple_reg (arg)
-	  && gimple_bb (SSA_NAME_DEF_STMT (arg))
-	  && (flow_bb_inside_loop_p (bb->loop_father,
- gimple_bb (SSA_NAME_DEF_STMT (arg)))
-	  || flow_bb_inside_loop_p (loop_outer (bb->loop_father),
-	gimple_bb (SSA_NAME_DEF_STMT (arg)
-	insert_out_of_ssa_copy (zero_dim_array, arg);
+  /* Avoid the insertion of code in the loop latch to please the
+	 pattern matching of the vectorizer.  */
+  if (e->src == bb->loop_father->latch)
+ 	insert_out_of_ssa_copy (zero_dim_array, arg);
   else
-	insert_out_of_ssa_copy_on_edge (gimple_phi_arg_edge (phi, i),
-	zero_dim_array, arg);
+	insert_out_of_ssa_copy_on_edge (e, zero_dim_array, arg);
 }
 
   var = force_gimple_operand (zero_dim_array, &stmts, true, NULL_TREE);
-- 
1.7.0.4



[Bug tree-optimization/45314] [4.5 Regression] ICE: error: in remove_unreachable_handlers, at tree-sh.c:3294 with -O2 -floop-interchange

2010-11-05 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45314

--- Comment #9 from H.J. Lu  2010-11-05 18:04:46 
UTC ---
Just for the record, this is introduced by revision 155739:

http://gcc.gnu.org/ml/gcc-cvs/2010-01/msg00200.html


[Bug tree-optimization/45314] [4.5 Regression] ICE: error: in remove_unreachable_handlers, at tree-sh.c:3294 with -O2 -floop-interchange

2010-11-05 Thread spop at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45314

Sebastian Pop  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
  Known to work||4.6.0
 AssignedTo|unassigned at gcc dot   |spop at gcc dot gnu.org
   |gnu.org |
Summary|[4.5/4.6 Regression] ICE:   |[4.5 Regression] ICE:
   |error: in   |error: in
   |remove_unreachable_handlers |remove_unreachable_handlers
   |, at tree-sh.c:3294 with|, at tree-sh.c:3294 with
   |-O2 -floop-interchange  |-O2 -floop-interchange
  Known to fail|4.6.0   |

--- Comment #8 from Sebastian Pop  2010-11-05 17:16:48 
UTC ---
Mine.