diff options
author | hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-05-10 14:02:43 +0000 |
---|---|---|
committer | hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-05-10 14:02:43 +0000 |
commit | 7ec7a88e8e1f3fa1d8934a3e4e0516f0196495e6 (patch) | |
tree | 2fda4aa4952632a4263d4074b76f5bf5b41f4506 /gcc/ira-build.c | |
parent | a4ca6d9c5905b5a5cd81346473f222ba75675050 (diff) | |
download | gcc-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.c | 4 |
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); } } |