diff options
Diffstat (limited to 'gcc/local-alloc.c')
-rw-r--r-- | gcc/local-alloc.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c index 960e83b..53a3b79 100644 --- a/gcc/local-alloc.c +++ b/gcc/local-alloc.c @@ -1448,7 +1448,9 @@ block_alloc (b) This optimization is only appropriate when we will run a scheduling pass after reload and we are not optimizing for code size. */ - if (flag_schedule_insns_after_reload && !optimize_size) + if (flag_schedule_insns_after_reload + && !optimize_size + && !SMALL_REGISTER_CLASSES) { qty_phys_reg[q] = find_free_reg (qty_min_class[q], @@ -1467,7 +1469,9 @@ block_alloc (b) #ifdef INSN_SCHEDULING /* Similarly, avoid false dependencies. */ - if (flag_schedule_insns_after_reload && !optimize_size + if (flag_schedule_insns_after_reload + && !optimize_size + && !SMALL_REGISTER_CLASSES && qty_alternate_class[q] != NO_REGS) qty_phys_reg[q] = find_free_reg (qty_alternate_class[q], qty_mode[q], q, 0, 0, |