/* Form lists of pseudo register references for autoinc optimization
for GNU compiler. This is part of flow optimization.
- Copyright (C) 1999, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005
+ Free Software Foundation, Inc.
Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz)
This file is part of GCC.
#define DF_ALL 255
#define DF_HARD_REGS 1024 /* Mark hard registers. */
#define DF_EQUIV_NOTES 2048 /* Mark uses present in EQUIV/EQUAL notes. */
-#define DF_FOR_REGALLOC 4096 /* If called for the register allocator. */
enum df_ref_type {DF_REF_REG_DEF, DF_REF_REG_USE, DF_REF_REG_MEM_LOAD,
DF_REF_REG_MEM_STORE};
independent. */
DF_REF_READ_WRITE = 1,
- /* This flag is set on register references inside a subreg on
- machines which have CANNOT_CHANGE_MODE_CLASS.
- Note, that this flag can also be set on df_refs representing
- the REG itself (i.e., one might not see the subreg anymore).
- Also note, that this flag is set also for hardreg refs, i.e.,
- you must check yourself if it's a pseudo. */
- DF_REF_MODE_CHANGE = 2,
-
/* This flag is set, if we stripped the subreg from the reference.
In this case we must make conservative guesses, at what the
outer mode was. */
- DF_REF_STRIPPED = 4,
-
- /* This flag is set during register allocation if it's okay for
- the reference's INSN to have one of its operands replaced with a
- memory reference. */
- DF_REF_MEM_OK = 8
+ DF_REF_STRIPPED = 2
};
extern int df_ref_remove (struct df *, struct ref *);
-extern int df_insn_reg_replace (struct df *, basic_block, rtx, rtx, rtx);
-
extern int df_insn_mem_replace (struct df *, basic_block, rtx, rtx, rtx);
extern struct ref *df_bb_def_use_swap (struct df *, basic_block, rtx, rtx,