aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorZhouyi Zhou <yizhouzhou@ict.ac.cn>2015-06-25 15:03:33 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2015-06-25 15:03:33 +0000
commit06fbce663e9b7f230d3cbaf9131de2cd786c819c (patch)
tree2c8e1344cae6f9428de60d122fd369c8efb4275b /gcc
parent1ffbaa3fec7f3dcbc3d1f999e8fa3f0930b3e1ad (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/ira-color.c25
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]);