This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


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;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]