aboutsummaryrefslogtreecommitdiff
path: root/gcc/local-alloc.c
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1998-06-24 21:49:34 +0000
committerJeff Law <law@gcc.gnu.org>1998-06-24 15:49:34 -0600
commitc358412fe862074065968caec2e318a8b5d9f4ee (patch)
tree2700870ac70ef8a36b6f97ce7379ef88b1b3526a /gcc/local-alloc.c
parenta59fb7979dfc98ecd0530be216fb237271af09ed (diff)
downloadgcc-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.c8
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,