This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/80167] [6/7 Regression] ICE in translate_isl_ast_to_gimple::is_valid_rename at gcc/graphite-isl-ast-to-gimple.c:1139
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 24 Mar 2017 09:36:53 +0000
- Subject: [Bug tree-optimization/80167] [6/7 Regression] ICE in translate_isl_ast_to_gimple::is_valid_rename at gcc/graphite-isl-ast-to-gimple.c:1139
- Auto-submitted: auto-generated
- References: <bug-80167-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80167
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2017-03-24
Target Milestone|--- |6.4
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.
#1 0x000000000191d29c in translate_isl_ast_to_gimple::is_valid_rename (
this=0x7fffffffd8c0, rename=<ssa_name 0x7ffff69f3240>,
def_bb=<basic_block 0x0>, use_bb=<basic_block 0x7ffff6a00d00 (34)>,
phi_kind=unknown_phi, old_name=<ssa_name 0x7ffff68adaf8>,
old_bb=<basic_block 0x7ffff68aec98 (6)>)
at
/space/rguenther/src/svn/gcc-7-branch/gcc/graphite-isl-ast-to-gimple.c:1139
1139 if (dominated_by_p (CDI_DOMINATORS, use_bb, def_bb))
def_bb is NULL because 'rename' is a default-def.
The rename looks odd to me, renaming _7 to i_25(D)? We register that from
#0 translate_isl_ast_to_gimple::set_rename (this=0x7fffffffd8c0,
old_name=<ssa_name 0x7ffff68adaf8>, expr=<ssa_name 0x7ffff69f3240>)
at
/space/rguenther/src/svn/gcc-7-branch/gcc/graphite-isl-ast-to-gimple.c:1259
#1 0x000000000191f2b3 in translate_isl_ast_to_gimple::rename_uses (
this=0x7fffffffd8c0, copy=<gimple_assign 0x7ffff6a070a0>,
gsi_tgt=0x7fffffffd390, old_bb=<basic_block 0x7ffff68aec98 (6)>,
loop=0x7ffff69ee210, iv_map=...)
at
/space/rguenther/src/svn/gcc-7-branch/gcc/graphite-isl-ast-to-gimple.c:1733
#2 0x00000000019215cd in
translate_isl_ast_to_gimple::graphite_copy_stmts_from_block
(this=0x7fffffffd8c0, bb=<basic_block 0x7ffff68aec98 (6)>,
new_bb=<basic_block 0x7ffff6a00d00 (34)>, iv_map=...)
at
/space/rguenther/src/svn/gcc-7-branch/gcc/graphite-isl-ast-to-gimple.c:2572
#3 0x0000000001921d9b in
translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences
(this=0x7fffffffd8c0, bb=<basic_block 0x7ffff68aec98 (6)>,
next_e=<edge 0x7ffff68af9a0 (30 -> 34)>, iv_map=...)
at
/space/rguenther/src/svn/gcc-7-branch/gcc/graphite-isl-ast-to-gimple.c:2785
#4 0x000000000191ca30 in
translate_isl_ast_to_gimple::translate_isl_ast_node_user (this=0x7fffffffd8c0,
node=0x2a13da0,
hmm, might be still correct in this case.
Fix:
Index: gcc/graphite-isl-ast-to-gimple.c
===================================================================
--- gcc/graphite-isl-ast-to-gimple.c (revision 246437)
+++ gcc/graphite-isl-ast-to-gimple.c (working copy)
@@ -1123,6 +1123,9 @@ bool translate_isl_ast_to_gimple::
is_valid_rename (tree rename, basic_block def_bb, basic_block use_bb,
phi_node_kind phi_kind, tree old_name, basic_block old_bb)
const
{
+ if (SSA_NAME_IS_DEFAULT_DEF (rename))
+ return true;
+
/* The def of the rename must either dominate the uses or come from a
back-edge. Also the def must respect the loop closed ssa form. */
if (!is_loop_closed_ssa_use (use_bb, rename))
@@ -1178,6 +1181,7 @@ get_rename (basic_block new_bb, tree old
basic_block bb = gimple_bb (SSA_NAME_DEF_STMT (rename));
if (is_valid_rename (rename, bb, new_bb, phi_kind, old_name, old_bb)
&& (phi_kind == close_phi
+ || ! bb
|| flow_bb_inside_loop_p (bb->loop_father, new_bb)))
return rename;
return NULL_TREE;