diff options
author | Bernd Schmidt <bernd.schmidt@analog.com> | 2005-06-15 09:35:15 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2005-06-15 09:35:15 +0000 |
commit | d7f88d86489c2d9868994347173c0b9d5f7ef285 (patch) | |
tree | b40cadba77aa51e2ccdab31a99a181393d469ee4 /gcc/reload.h | |
parent | ae973d6ae8d82bb7612603c8a08b21374a8aab29 (diff) | |
download | gcc-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.h | 7 |
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; |