Wed Jan 6 16:08:54 1999 Jeffrey A Law (law@cygnus.com)
+ * pa.h (DONT_RECORD_EQUIVALENCE): Kill.
+ * local-alloc.c (update_equiv_regs): Corresponding changes.
+ * tm.texi (DONT_RECORD_EQUIVALENCE): Kill.
+
* calls.c (special_function_p): Push alloca test inside the large
conditional which excludes functions not at file scope or not
extern.
/* Definitions of target machine for GNU compiler, for the HP Spectrum.
- Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1992, 93-98, 1999 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com) of Cygnus Support
and Tim Moore (moore@defmacro.cs.utah.edu) of the Center for
Software Science at the University of Utah.
#define CLASS_MAX_NREGS(CLASS, MODE) \
(!TARGET_SNAKE && (CLASS) == FP_REGS ? 1 : \
((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD))
-
-/* We do not want to record equivalences for expressions which are
- likely to cause a spill of %r1 if they are used by reload.
-
- Nor do we want to record an equivalence of a constant expression
- that the target can not handle appearing in an insn, but which
- also must be accepted by LEGITIMATE_CONSTANT_P.
-
- On the PA, these two goals are the same -- don't record any equivalences
- for symbolic operands that are not read_only_operands. */
-#define DONT_RECORD_EQUIVALENCE(NOTE) \
- (symbolic_operand (XEXP (NOTE, 0), VOIDmode) \
- && !read_only_operand (XEXP (NOTE, 0), VOIDmode))
-
\f
/* Stack layout; function entry, exit and calling. */
note = find_reg_note (insn, REG_EQUAL, NULL_RTX);
-#ifdef DONT_RECORD_EQUIVALENCE
- /* Allow the target to reject promotions of some REG_EQUAL notes to
- REG_EQUIV notes.
-
- In some cases this can improve register allocation if the existence
- of the REG_EQUIV note is likely to increase the lifetime of a register
- that is likely to be spilled.
-
- It may also be necessary if the target can't handle certain constant
- expressions appearing randomly in insns, but for whatever reason
- those expressions must be considered legitimate constant expressions
- to prevent them from being forced into memory. */
- if (note && DONT_RECORD_EQUIVALENCE (note))
- note = NULL;
-#endif
-
if (REG_N_SETS (regno) != 1
&& (! note
|| ! function_invariant_p (XEXP (note, 0))
-@c Copyright (C) 1988,89,92,93,94,96,97,1998 Free Software Foundation, Inc.
+@c Copyright (C) 1988,89,92,93,94,96,97,98,1999 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@var{x} satisfies @code{CONSTANT_P}, so you need not check this. In fact,
@samp{1} is a suitable definition for this macro on machines where
anything @code{CONSTANT_P} is valid.@refill
-
-@findex DONT_RECORD_EQUIVALENCE
-@item DONT_RECORD_EQUIVALENCE (@var{note})
-A C expression that is nonzero if the @code{REG_EQUAL} note @var{x} should not
-be promoted to a @code{REG_EQUIV} note.
-
-Define this macro if @var{note} refers to a constant that must be accepted
-by @code{LEGITIMATE_CONSTANT_P}, but must not appear as an immediate operand.
-
-Most machine descriptions do not need to define this macro.
@end table
@node Condition Code