aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorZhouyi Zhou <yizhouzhou@ict.ac.cn>2015-04-16 20:02:01 +0000
committerJeff Law <law@gcc.gnu.org>2015-04-16 14:02:01 -0600
commit6e3957da3145a2d2a1d8837d6a78aa1663245764 (patch)
treefd2ada7b05dd39927a39f15533dd45f1768010ec /gcc
parent8c292b10e88753bcac440c44577eeb7ae7171232 (diff)
downloadgcc-6e3957da3145a2d2a1d8837d6a78aa1663245764.zip
gcc-6e3957da3145a2d2a1d8837d6a78aa1663245764.tar.gz
gcc-6e3957da3145a2d2a1d8837d6a78aa1663245764.tar.bz2
ira-color.c (setup_left_conflict_sizes_p): Do not process node itself when computing left conflict subnode size.
* ira-color.c (setup_left_conflict_sizes_p): Do not process node itself when computing left conflict subnode size. From-SVN: r222157
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ira-color.c8
2 files changed, 8 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1884300..008bd47 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2015-04-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
+
+ * ira-color.c (setup_left_conflict_sizes_p): Do not process
+ node itself when computing left conflict subnode size.
+
2015-04-16 Uros Bizjak <ubizjak@gmail.com>
* config/i386/predicates.md (register_mixssei387nonimm_operand): New.
diff --git a/gcc/ira-color.c b/gcc/ira-color.c
index ff1fe8a..d2d5102 100644
--- a/gcc/ira-color.c
+++ b/gcc/ira-color.c
@@ -938,7 +938,7 @@ setup_left_conflict_sizes_p (ira_allocno_t a)
subnodes[i].left_conflict_subnodes_size = 0;
}
start = node_preorder_num * allocno_hard_regs_nodes_num;
- for (i = data->hard_regs_subnodes_num - 1; i >= 0; i--)
+ for (i = data->hard_regs_subnodes_num - 1; i > 0; i--)
{
int size, parent_i;
allocno_hard_regs_node_t parent;
@@ -948,12 +948,10 @@ setup_left_conflict_sizes_p (ira_allocno_t a)
- subnodes[i].left_conflict_subnodes_size,
subnodes[i].left_conflict_size));
parent = allocno_hard_regs_nodes[i + node_preorder_num]->parent;
- if (parent == NULL)
- continue;
+ gcc_checking_assert(parent);
parent_i
= allocno_hard_regs_subnode_index[start + parent->preorder_num];
- if (parent_i < 0)
- continue;
+ gcc_checking_assert(parent_i >= 0);
subnodes[parent_i].left_conflict_subnodes_size += size;
}
left_conflict_subnodes_size = subnodes[0].left_conflict_subnodes_size;