re PR tree-optimization/21732 (-ftree-dump-all-details hangs during *.c.t24.copyprop or *.c.t38.copyprop2)

2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/21732
        * tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
        SSA_NAME twice and cause the loop to become finite.  Remove the test
        for val.

From-SVN: r100396
This commit is contained in:
Andrew Pinski 2005-05-31 16:29:16 +00:00 committed by Andrew Pinski
parent 8c7a0ea6ed
commit fb03baf210
2 changed files with 18 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/21732
* tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
SSA_NAME twice and cause the loop to become finite. Remove the test
for val.
2005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
* tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional

View File

@ -475,24 +475,30 @@ static void
dump_copy_of (FILE *dump_file, tree var)
{
tree val;
sbitmap visited;
print_generic_expr (dump_file, var, dump_flags);
if (TREE_CODE (var) != SSA_NAME)
return;
visited = sbitmap_alloc (num_ssa_names);
SET_BIT (visited, SSA_NAME_VERSION (var));
fprintf (dump_file, " copy-of chain: ");
val = var;
print_generic_expr (dump_file, val, 0);
fprintf (dump_file, " ");
while (copy_of[SSA_NAME_VERSION (val)].value
&& copy_of[SSA_NAME_VERSION (val)].value != val)
while (copy_of[SSA_NAME_VERSION (val)].value)
{
fprintf (dump_file, "-> ");
val = copy_of[SSA_NAME_VERSION (val)].value;
print_generic_expr (dump_file, val, 0);
fprintf (dump_file, " ");
if (TEST_BIT (visited, SSA_NAME_VERSION (val)))
break;
SET_BIT (visited, SSA_NAME_VERSION (val));
}
val = get_copy_of_val (var)->value;
@ -502,6 +508,8 @@ dump_copy_of (FILE *dump_file, tree var)
fprintf (dump_file, "[COPY]");
else
fprintf (dump_file, "[NOT A COPY]");
sbitmap_free (visited);
}