diff options
author | Zhouyi Zhou <yizhouzhou@ict.ac.cn> | 2015-04-16 20:02:01 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2015-04-16 14:02:01 -0600 |
commit | 6e3957da3145a2d2a1d8837d6a78aa1663245764 (patch) | |
tree | fd2ada7b05dd39927a39f15533dd45f1768010ec /gcc | |
parent | 8c292b10e88753bcac440c44577eeb7ae7171232 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ira-color.c | 8 |
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; |