diff options
author | H.J. Lu <hjl@gcc.gnu.org> | 2010-05-10 07:02:43 -0700 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2010-05-10 07:02:43 -0700 |
commit | 46044dd988812b122ba11b1d517f936eaeec4a52 (patch) | |
tree | 2fda4aa4952632a4263d4074b76f5bf5b41f4506 /gcc/ira-build.c | |
parent | 6aaf13579feca751fe5dfffcca429b80a8170233 (diff) | |
download | gcc-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.c | 4 |
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); } } |