aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira-color.c
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2008-11-19 21:25:00 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2008-11-19 21:25:00 +0000
commitea1c67e6e3fe69c1926b8bbba75998d147dd5565 (patch)
treeabbc12ec53d3e488d10d9e7e19b31568683777b9 /gcc/ira-color.c
parent3553f0bb324124195a64ce30c0832463e9082461 (diff)
downloadgcc-ea1c67e6e3fe69c1926b8bbba75998d147dd5565.zip
gcc-ea1c67e6e3fe69c1926b8bbba75998d147dd5565.tar.gz
gcc-ea1c67e6e3fe69c1926b8bbba75998d147dd5565.tar.bz2
re PR bootstrap/37859 (Bootstrap failure on mips64octeon-unknown-linux-gnu)
2008-11-19 Vladimir Makarov <vmakarov@redhat.com> PR bootstrap/37859 * ira-int.h (struct ira_loop_tree_node): New member entered_from_non_parent_p. * ira-color.c (print_loop_title): Print loop bbs. * ira-emit.c (entered_from_non_parent_p, setup_entered_from_non_parent_p): New functions. (not_modified_p): Rename to store_can_be_removed_p. Check there is no side entries. (generate_edge_moves): Use store_can_be_removed_p instead of not_modified_p. (ira_emit): Call setup_entered_from_non_parent_p. * ira-build.c (copy_info_to_removed_store_destinations): Accumulate CALL_FREQ, CALL_CROSSED_NUM, and ALLOCNO_EXCESS_PRESSURE_POINTS_NUM. (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always update all accumulated attributes. From-SVN: r142018
Diffstat (limited to 'gcc/ira-color.c')
-rw-r--r--gcc/ira-color.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/gcc/ira-color.c b/gcc/ira-color.c
index 7343e0c..c3b63cc 100644
--- a/gcc/ira-color.c
+++ b/gcc/ira-color.c
@@ -1703,15 +1703,32 @@ print_loop_title (ira_loop_tree_node_t loop_tree_node)
{
unsigned int j;
bitmap_iterator bi;
+ ira_loop_tree_node_t subloop_node, dest_loop_node;
+ edge e;
+ edge_iterator ei;
ira_assert (loop_tree_node->loop != NULL);
fprintf (ira_dump_file,
- "\n Loop %d (parent %d, header bb%d, depth %d)\n all:",
+ "\n Loop %d (parent %d, header bb%d, depth %d)\n bbs:",
loop_tree_node->loop->num,
(loop_tree_node->parent == NULL
? -1 : loop_tree_node->parent->loop->num),
loop_tree_node->loop->header->index,
loop_depth (loop_tree_node->loop));
+ for (subloop_node = loop_tree_node->children;
+ subloop_node != NULL;
+ subloop_node = subloop_node->next)
+ if (subloop_node->bb != NULL)
+ {
+ fprintf (ira_dump_file, " %d", subloop_node->bb->index);
+ FOR_EACH_EDGE (e, ei, subloop_node->bb->succs)
+ if (e->dest != EXIT_BLOCK_PTR
+ && ((dest_loop_node = IRA_BB_NODE (e->dest)->parent)
+ != loop_tree_node))
+ fprintf (ira_dump_file, "(->%d:l%d)",
+ e->dest->index, dest_loop_node->loop->num);
+ }
+ fprintf (ira_dump_file, "\n all:");
EXECUTE_IF_SET_IN_BITMAP (loop_tree_node->all_allocnos, 0, j, bi)
fprintf (ira_dump_file, " %dr%d", j, ALLOCNO_REGNO (ira_allocnos[j]));
fprintf (ira_dump_file, "\n modified regnos:");