https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81278

--- Comment #16 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Seems a different order in release_ssa_name in that function, in one case it is
198, 2, 199, 23, 40, in the other case 199, 2, 40, 23, 198.  Used
--- tree-ssanames.c.xx  2017-07-01 10:15:12.000000000 +0200
+++ tree-ssanames.c     2017-07-03 14:43:13.278636615 +0200
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3.
 #include "stor-layout.h"
 #include "tree-into-ssa.h"
 #include "tree-ssa.h"
+#include "tree-pretty-print.h"

 /* Rewriting a function into SSA form can create a huge number of SSA_NAMEs,
    many of which may be thrown away shortly after their creation if jumps
@@ -309,6 +310,14 @@ make_ssa_name_fn (struct function *fn, t
   else
     SSA_NAME_RANGE_INFO (t) = NULL;

+{
+FILE *f = fopen ("/tmp/ssanames", "a");
+fprintf (f, "@@@make_ssa_name ");
+print_generic_expr (f, t, TDF_VOPS|TDF_MEMSYMS);
+fprintf (f, " %s\n", IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME
(current_function_decl)));
+fclose (f);
+}
+
   SSA_NAME_IN_FREE_LIST (t) = 0;
   SSA_NAME_IS_DEFAULT_DEF (t) = 0;
   imm = &(SSA_NAME_IMM_USE_NODE (t));
@@ -560,6 +569,14 @@ release_ssa_name_fn (struct function *fn
       int saved_ssa_name_version = SSA_NAME_VERSION (var);
       use_operand_p imm = &(SSA_NAME_IMM_USE_NODE (var));

+{
+FILE *f = fopen ("/tmp/ssanames", "a");
+fprintf (f, "@@@release_ssa_name ");
+print_generic_expr (f, var, TDF_VOPS|TDF_MEMSYMS);
+fprintf (f, " %s\n", IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME
(current_function_decl)));
+fclose (f);
+}
+
       if (MAY_HAVE_DEBUG_STMTS)
        insert_debug_temp_for_var_def (NULL, var);

hack to find that out.  Now to debug where those release_ssa_name calls come
from and what is the difference.

Reply via email to