summaryrefslogtreecommitdiff
path: root/gcc/reload.h
diff options
context:
space:
mode:
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2005-06-15 09:35:15 +0000
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2005-06-15 09:35:15 +0000
commitd5058a954b173f22eba48ed05469f54841f6f107 (patch)
treeb40cadba77aa51e2ccdab31a99a181393d469ee4 /gcc/reload.h
parent97844b15249cfb7e07cee640649b49e989519ecf (diff)
downloadgcc-d5058a954b173f22eba48ed05469f54841f6f107.tar.gz
* Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
* local-alloc.c: Include "ggc.h" and "reload.h". (struct equivalence): New member is_arg_equivalence. (local_alloc): Always call update_equiv_regs. (update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size. Detect equivalences made by stores to memory in a second pass. Return early if not optimizing. Initialize reg_equiv_init for all equivalences; treat equivalences for REG_EQUIV notes existing before this pass specially. (no_equiv): Don't clear reg_equiv_init or remove notes if the is_arg_equivalence field is set. * reload.h (reg_equiv_init, reg_equiv_init_size): Declare. * reload1.c (reg_equiv_init): No longer static. (reg_equiv_init_size): New variable. (reload): Don't allocate reg_equiv_init; don't free it when done but clear it. Restructure equivalence set up code not to set reg_equiv_init, but to clear it when we can't use an equivalence. Undo change disabling equivalences for MEM_READONLY_P memrefs. Dump equivalencing insns to dump_file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100975 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload.h')
-rw-r--r--gcc/reload.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/reload.h b/gcc/reload.h
index 1c5463d3d5b..bbf235ef3b2 100644
--- a/gcc/reload.h
+++ b/gcc/reload.h
@@ -170,6 +170,13 @@ extern rtx *reg_equiv_memory_loc;
extern rtx *reg_equiv_address;
extern rtx *reg_equiv_mem;
+/* Element N is the list of insns that initialized reg N from its equivalent
+ constant or memory slot. */
+extern GTY((length("reg_equiv_init_size"))) rtx *reg_equiv_init;
+
+/* The size of the previous array, for GC purposes. */
+extern GTY(()) int reg_equiv_init_size;
+
/* All the "earlyclobber" operands of the current insn
are recorded here. */
extern int n_earlyclobbers;