mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-25 17:05:59 +08:00
re PR rtl-optimization/37333 (ICE in ira_flattening, at ira-build.c:2146)
2008-09-09 Vladimir Makarov <vmakarov@redhat.com> PR rtl-opt/37333 * ira-build.c (ira_create_allocno): Setup frequency to 0. * ira-color.c (update_conflict_hard_regno_costs): Remove assert. Check zero freq and increase if necessary. From-SVN: r140160
This commit is contained in:
parent
496071caa6
commit
854bd721f8
@ -1,3 +1,12 @@
|
||||
2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
PR rtl-opt/37333
|
||||
|
||||
* ira-build.c (ira_create_allocno): Setup frequency to 0.
|
||||
|
||||
* ira-color.c (update_conflict_hard_regno_costs): Remove assert.
|
||||
Check zero freq and increase if necessary.
|
||||
|
||||
2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
* ira-conflicts.c (process_regs_for_copy): Check that the hard
|
||||
|
@ -443,7 +443,7 @@ ira_create_allocno (int regno, bool cap_p, ira_loop_tree_node_t loop_tree_node)
|
||||
COPY_HARD_REG_SET (ALLOCNO_CONFLICT_HARD_REGS (a), ira_no_alloc_regs);
|
||||
COPY_HARD_REG_SET (ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a), ira_no_alloc_regs);
|
||||
ALLOCNO_NREFS (a) = 0;
|
||||
ALLOCNO_FREQ (a) = 1;
|
||||
ALLOCNO_FREQ (a) = 0;
|
||||
ALLOCNO_HARD_REGNO (a) = -1;
|
||||
ALLOCNO_CALL_FREQ (a) = 0;
|
||||
ALLOCNO_CALLS_CROSSED_NUM (a) = 0;
|
||||
|
@ -210,7 +210,7 @@ static void
|
||||
update_conflict_hard_regno_costs (int *costs, ira_allocno_t allocno,
|
||||
int divisor, bool decr_p)
|
||||
{
|
||||
int i, cost, class_size, mult, div;
|
||||
int i, cost, class_size, freq, mult, div;
|
||||
int *conflict_costs;
|
||||
bool cont_p;
|
||||
enum machine_mode mode;
|
||||
@ -258,9 +258,11 @@ update_conflict_hard_regno_costs (int *costs, ira_allocno_t allocno,
|
||||
cont_p = true;
|
||||
else
|
||||
{
|
||||
ira_assert (ALLOCNO_FREQ (another_allocno) != 0);
|
||||
mult = cp->freq;
|
||||
div = ALLOCNO_FREQ (another_allocno) * divisor;
|
||||
freq = ALLOCNO_FREQ (another_allocno);
|
||||
if (freq == 0)
|
||||
freq = 1;
|
||||
div = freq * divisor;
|
||||
cont_p = false;
|
||||
for (i = class_size - 1; i >= 0; i--)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user