summaryrefslogtreecommitdiff
path: root/gcc/ira-build.c
diff options
context:
space:
mode:
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-10 14:02:43 +0000
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-10 14:02:43 +0000
commit7ec7a88e8e1f3fa1d8934a3e4e0516f0196495e6 (patch)
tree2fda4aa4952632a4263d4074b76f5bf5b41f4506 /gcc/ira-build.c
parenta4ca6d9c5905b5a5cd81346473f222ba75675050 (diff)
downloadgcc-7ec7a88e8e1f3fa1d8934a3e4e0516f0196495e6.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159223 138bc75d-0d04-0410-961f-82ee72b054a4
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 16909a9a42a..c879efa9db2 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);
}
}