aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload.h
diff options
context:
space:
mode:
authorBernd Schmidt <bernd.schmidt@analog.com>2005-06-15 09:35:15 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2005-06-15 09:35:15 +0000
commitd7f88d86489c2d9868994347173c0b9d5f7ef285 (patch)
treeb40cadba77aa51e2ccdab31a99a181393d469ee4 /gcc/reload.h
parentae973d6ae8d82bb7612603c8a08b21374a8aab29 (diff)
downloadgcc-d7f88d86489c2d9868994347173c0b9d5f7ef285.zip
gcc-d7f88d86489c2d9868994347173c0b9d5f7ef285.tar.gz
gcc-d7f88d86489c2d9868994347173c0b9d5f7ef285.tar.bz2
Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
* 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. From-SVN: r100975
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 1c5463d..bbf235e 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;