diff options
author | Jeffrey A Law <law@cygnus.com> | 1998-06-24 21:49:34 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-06-24 15:49:34 -0600 |
commit | c358412fe862074065968caec2e318a8b5d9f4ee (patch) | |
tree | 2700870ac70ef8a36b6f97ce7379ef88b1b3526a /gcc/local-alloc.c | |
parent | a59fb7979dfc98ecd0530be216fb237271af09ed (diff) | |
download | gcc-c358412fe862074065968caec2e318a8b5d9f4ee.zip gcc-c358412fe862074065968caec2e318a8b5d9f4ee.tar.gz gcc-c358412fe862074065968caec2e318a8b5d9f4ee.tar.bz2 |
local-alloc.c (block_alloc): Do not try to avoid false dependencies when SMALL_REGISTER_CLASSES is nonzero.
* local-alloc.c (block_alloc): Do not try to avoid false dependencies
when SMALL_REGISTER_CLASSES is nonzero.
Fixes x86 performance regression.
From-SVN: r20704
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, |