summaryrefslogtreecommitdiff
path: root/gcc/local-alloc.c
diff options
context:
space:
mode:
authorcrux <crux@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-06 09:46:58 +0000
committercrux <crux@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-06 09:46:58 +0000
commitaa6872fe97fcd5523a63d1e3e59db190a9448279 (patch)
tree4a4d83ca960f72aad7788486bf93b9692d85c584 /gcc/local-alloc.c
parent3e37cfcc9c70c3da5d39e0b9ead8f335bc155293 (diff)
downloadgcc-aa6872fe97fcd5523a63d1e3e59db190a9448279.tar.gz
Don't use CLASS_LIKELY_SPILLED in local-alloc
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36197 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/local-alloc.c')
-rw-r--r--gcc/local-alloc.c23
1 files changed, 2 insertions, 21 deletions
diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c
index 7e57c82951e..666faca1705 100644
--- a/gcc/local-alloc.c
+++ b/gcc/local-alloc.c
@@ -349,19 +349,14 @@ local_alloc ()
/* Determine which pseudo-registers can be allocated by local-alloc.
In general, these are the registers used only in a single block and
- which only die once. However, if a register's preferred class has only
- a few entries, don't allocate this register here unless it is preferred
- or nothing since retry_global_alloc won't be able to move it to
- GENERAL_REGS if a reload register of this class is needed.
+ which only die once.
We need not be concerned with which block actually uses the register
since we will never see it outside that block. */
for (i = FIRST_PSEUDO_REGISTER; i < max_regno; i++)
{
- if (REG_BASIC_BLOCK (i) >= 0 && REG_N_DEATHS (i) == 1
- && (reg_alternate_class (i) == NO_REGS
- || ! CLASS_LIKELY_SPILLED_P (reg_preferred_class (i))))
+ if (REG_BASIC_BLOCK (i) >= 0 && REG_N_DEATHS (i) == 1)
reg_qty[i] = -2;
else
reg_qty[i] = -1;
@@ -789,15 +784,6 @@ update_equiv_regs ()
note_stores (set, no_equiv, NULL);
continue;
}
- /* Don't handle the equivalence if the source is in a register
- class that's likely to be spilled. */
- if (GET_CODE (src) == REG
- && REGNO (src) >= FIRST_PSEUDO_REGISTER
- && CLASS_LIKELY_SPILLED_P (reg_preferred_class (REGNO (src))))
- {
- no_equiv (dest, set, NULL);
- continue;
- }
note = find_reg_note (insn, REG_EQUAL, NULL_RTX);
@@ -1653,11 +1639,6 @@ combine_regs (usedreg, setreg, may_save_copy, insn_number, insn, already_dead)
|| ureg == sreg
/* Don't try to connect two different hardware registers. */
|| (ureg < FIRST_PSEUDO_REGISTER && sreg < FIRST_PSEUDO_REGISTER)
- /* Don't use a hard reg that might be spilled. */
- || (ureg < FIRST_PSEUDO_REGISTER
- && CLASS_LIKELY_SPILLED_P (REGNO_REG_CLASS (ureg)))
- || (sreg < FIRST_PSEUDO_REGISTER
- && CLASS_LIKELY_SPILLED_P (REGNO_REG_CLASS (sreg)))
/* Don't connect two different machine modes if they have different
implications as to which registers may be used. */
|| !MODES_TIEABLE_P (GET_MODE (usedreg), GET_MODE (setreg)))