diff options
author | Zhouyi Zhou <yizhouzhou@ict.ac.cn> | 2015-06-25 15:03:33 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2015-06-25 15:03:33 +0000 |
commit | 06fbce663e9b7f230d3cbaf9131de2cd786c819c (patch) | |
tree | 2c8e1344cae6f9428de60d122fd369c8efb4275b /gcc | |
parent | 1ffbaa3fec7f3dcbc3d1f999e8fa3f0930b3e1ad (diff) | |
download | gcc-06fbce663e9b7f230d3cbaf9131de2cd786c819c.zip gcc-06fbce663e9b7f230d3cbaf9131de2cd786c819c.tar.gz gcc-06fbce663e9b7f230d3cbaf9131de2cd786c819c.tar.bz2 |
ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
2015-06-25 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
Vladimir Makarov <vmakarov@redhat.com>
* ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
Add assert.
Co-Authored-By: Vladimir Makarov <vmakarov@redhat.com>
From-SVN: r224944
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ira-color.c | 25 |
2 files changed, 22 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 604b763..157c23e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-06-25 Zhouyi Zhou <yizhouzhou@ict.ac.cn> + Vladimir Makarov <vmakarov@redhat.com> + + * ira-color.c (assign_hard_reg): Remove unecessary bitmap check. + Add assert. + 2015-06-25 Richard Biener <rguenther@suse.de> * fold-const.c (fold_binary_loc): Move simplification of diff --git a/gcc/ira-color.c b/gcc/ira-color.c index 6c53507..860547c 100644 --- a/gcc/ira-color.c +++ b/gcc/ira-color.c @@ -1733,15 +1733,22 @@ assign_hard_reg (ira_allocno_t a, bool retry_p) /* Reload can give another class so we need to check all allocnos. */ if (!retry_p - && (!bitmap_bit_p (consideration_allocno_bitmap, - ALLOCNO_NUM (conflict_a)) - || ((!ALLOCNO_ASSIGNED_P (conflict_a) - || ALLOCNO_HARD_REGNO (conflict_a) < 0) - && !(hard_reg_set_intersect_p - (profitable_hard_regs, - ALLOCNO_COLOR_DATA - (conflict_a)->profitable_hard_regs))))) - continue; + && ((!ALLOCNO_ASSIGNED_P (conflict_a) + || ALLOCNO_HARD_REGNO (conflict_a) < 0) + && !(hard_reg_set_intersect_p + (profitable_hard_regs, + ALLOCNO_COLOR_DATA + (conflict_a)->profitable_hard_regs)))) + { + /* All conflict allocnos are in consideration bitmap + when retry_p is false. It might change in future and + if it happens the assert will be broken. It means + the code should be modified for the new + assumptions. */ + ira_assert (bitmap_bit_p (consideration_allocno_bitmap, + ALLOCNO_NUM (conflict_a))); + continue; + } conflict_aclass = ALLOCNO_CLASS (conflict_a); ira_assert (ira_reg_classes_intersect_p [aclass][conflict_aclass]); |