/* Communication between reload.c and reload1.c.
Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1997, 1998,
- 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
This file is part of GCC.
extern int num_not_at_initial_offset;
-struct needs
-{
- /* [0] is normal, [1] is nongroup. */
- short regs[2][N_REG_CLASSES];
- short groups[N_REG_CLASSES];
-};
-
#if defined SET_HARD_REG_BIT && defined CLEAR_REG_SET
/* This structure describes instructions which are relevant for reload.
Apart from all regular insns, this also includes CODE_LABELs, since they
/* Indicates which registers have already been used for spills. */
HARD_REG_SET used_spill_regs;
- /* Describe the needs for reload registers of this insn. */
- struct needs need;
-
/* Nonzero if find_reloads said the insn requires reloading. */
unsigned int need_reload:1;
/* Nonzero if find_reloads needs to be run during reload_as_needed to
Otherwise, return *LOC. */
extern rtx find_replacement (rtx *);
-/* Return nonzero if register in range [REGNO, ENDREGNO)
- appears either explicitly or implicitly in X
- other than being stored into. */
-extern int refers_to_regno_for_reload_p (unsigned int, unsigned int,
- rtx, rtx *);
-
/* Nonzero if modifying X will affect IN. */
extern int reg_overlap_mentioned_for_reload_p (rtx, rtx);
-/* Return nonzero if anything in X contains a MEM. Look also for pseudo
- registers. */
-extern int refers_to_mem_for_reload_p (rtx);
-
/* Check the insns before INSN to see if there is a suitable register
containing the same value as GOAL. */
extern rtx find_equiv_reg (rtx, rtx, enum reg_class, int, short *,
extern void reload_cse_regs (rtx);
/* Functions in reload1.c: */
-extern int reloads_conflict (int, int);
/* Initialize the reload pass once per compilation. */
extern void init_reload (void);
replacement (such as sp), plus an offset. */
extern rtx eliminate_regs (rtx, enum machine_mode, rtx);
-/* Emit code to perform a reload from IN (which may be a reload register) to
- OUT (which may also be a reload register). IN or OUT is from operand
- OPNUM with reload type TYPE. */
-extern rtx gen_reload (rtx, rtx, int, enum reload_type);
-
/* Deallocate the reload register used by reload number R. */
extern void deallocate_reload_reg (int r);