From 7efcf910eeb14928a4230e835a126784e9e196b0 Mon Sep 17 00:00:00 2001 From: Chung-Lin Tang Date: Fri, 18 Feb 2011 17:26:31 +0000 Subject: [PATCH] re PR rtl-optimization/46178 (gcc.target/i386/(u)divmod-[58].c FAIL: ICE: in dec_register_pressure, at ira-lives.c:215 with -fira-algorithm=priority) 2011-02-18 Chung-Lin Tang PR rtl-optimization/46178 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to compute ira_hard_regno_cover_class[]. From-SVN: r170277 --- gcc/ChangeLog | 6 ++++++ gcc/ira.c | 18 +++++------------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3e31b747d3e..32b49216726 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-02-18 Chung-Lin Tang + + PR rtl-optimization/46178 + * ira.c (setup_hard_regno_class): Use ira_class_translate[] to + compute ira_hard_regno_cover_class[]. + 2011-02-18 Richard Guenther PR lto/47798 diff --git a/gcc/ira.c b/gcc/ira.c index 5f27fc2f320..68d47fbb2d5 100644 --- a/gcc/ira.c +++ b/gcc/ira.c @@ -1033,22 +1033,14 @@ find_reg_class_closure (void) static void setup_hard_regno_cover_class (void) { - int i, j; - enum reg_class cl; + int i; for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) { - ira_hard_regno_cover_class[i] = NO_REGS; - for (j = 0; j < ira_reg_class_cover_size; j++) - { - cl = ira_reg_class_cover[j]; - if (ira_class_hard_reg_index[cl][i] >= 0) - { - ira_hard_regno_cover_class[i] = cl; - break; - } - } - + ira_hard_regno_cover_class[i] + = (TEST_HARD_REG_BIT (no_unit_alloc_regs, i) + ? NO_REGS + : ira_class_translate[REGNO_REG_CLASS (i)]); } } -- 2.30.2