aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira-build.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl@gcc.gnu.org>2010-05-10 07:02:43 -0700
committerH.J. Lu <hjl@gcc.gnu.org>2010-05-10 07:02:43 -0700
commit46044dd988812b122ba11b1d517f936eaeec4a52 (patch)
tree2fda4aa4952632a4263d4074b76f5bf5b41f4506 /gcc/ira-build.c
parent6aaf13579feca751fe5dfffcca429b80a8170233 (diff)
downloadgcc-46044dd988812b122ba11b1d517f936eaeec4a52.zip
gcc-46044dd988812b122ba11b1d517f936eaeec4a52.tar.gz
gcc-46044dd988812b122ba11b1d517f936eaeec4a52.tar.bz2
Nullify regno_allocno_map of the removed allocno.
gcc/ 2010-05-10 H.J. Lu<hongjiu.lu@intel.com> Vladimir Makarov<vmakarov@redhat.com> PR rtl-optimization/44012 * ira-build.c (remove_unnecessary_allocnos): Nullify regno_allocno_map of the removed allocno. gcc/testsuite/ 2010-05-10 H.J. Lu <hongjiu.lu@intel.com> PR rtl-optimization/44012 * gcc.dg/pr44012.c: New. From-SVN: r159223
Diffstat (limited to 'gcc/ira-build.c')
-rw-r--r--gcc/ira-build.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ira-build.c b/gcc/ira-build.c
index 16909a9..c879efa 100644
--- a/gcc/ira-build.c
+++ b/gcc/ira-build.c
@@ -1978,6 +1978,10 @@ remove_unnecessary_allocnos (void)
merged_p = true;
ALLOCNO_LIVE_RANGES (a) = NULL;
propagate_some_info_from_allocno (parent_a, a);
+ /* Remove it from the corresponding regno allocno
+ map to avoid info propagation of subsequent
+ allocno into this already removed allocno. */
+ a_node->regno_allocno_map[regno] = NULL;
finish_allocno (a);
}
}