diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2001-10-01 11:00:47 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-10-01 07:00:47 -0400 |
commit | 173b24b9828c474251cc3bb2515d19399330e8c5 (patch) | |
tree | a2295f973363e17dc793a7b1597e907c1198e6a0 /gcc/reload1.c | |
parent | bab3db73e98108edfe0319d2c36a07bebbce2aac (diff) | |
download | gcc-173b24b9828c474251cc3bb2515d19399330e8c5.zip gcc-173b24b9828c474251cc3bb2515d19399330e8c5.tar.gz gcc-173b24b9828c474251cc3bb2515d19399330e8c5.tar.bz2 |
function.c (keep_stack_depressed): Don't use delete_insn.
* function.c (keep_stack_depressed): Don't use delete_insn.
* expr.h (set_mem_alias_set): Move decl to here.
* rtl.h (mem_attrs): New typedef and struct.
(union rtunion_def): Add field for mem_attrs.
(X0MEMATTR, MEM_ATTRS): New macros.
(MEM_ALIAS_SET): Use MEM_ATTRS.
(MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
(MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
(set_mem_alias_set): Delete decl from here.
* alias.c (set_mem_alias_set): Delete from here.
* emit-rtl.c (mem_attrs_htab): New variable.
(rtx_htab_mark, rtx_htab_mark_1): Deleted.
(mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
(mem_attrs_mark, get_mem_attrs): Likewise.
(gen_rtx_MEM): Clear MEM_ATTRS.
(set_mem_attributes): Move to here.
(set_mem_alias_set): Likewise, and call get_mem_attrs.
(init_emit_once): const_int_htab now deletable htab.
Initialize mem_attrs_htab.
* explow.c (set_mem_attributes): Delete from here.
* function.c (put_var_into_stack): Clear MEM_ATTRS.
(gen_mem_addressof): Likewise; rework to use set_mem_attributes.
* ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
* reload1.c (reload): Rework changing REG to MEM.
From-SVN: r45922
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index bc3456f..7828bf5 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -1130,16 +1130,6 @@ reload (first, global) for (i = FIRST_PSEUDO_REGISTER; i < max_regno; i++) { rtx addr = 0; - int in_struct = 0; - int is_scalar = 0; - int is_readonly = 0; - - if (reg_equiv_memory_loc[i]) - { - in_struct = MEM_IN_STRUCT_P (reg_equiv_memory_loc[i]); - is_scalar = MEM_SCALAR_P (reg_equiv_memory_loc[i]); - is_readonly = RTX_UNCHANGING_P (reg_equiv_memory_loc[i]); - } if (reg_equiv_mem[i]) addr = XEXP (reg_equiv_mem[i], 0); @@ -1152,15 +1142,18 @@ reload (first, global) if (reg_renumber[i] < 0) { rtx reg = regno_reg_rtx[i]; + PUT_CODE (reg, MEM); XEXP (reg, 0) = addr; REG_USERVAR_P (reg) = 0; - RTX_UNCHANGING_P (reg) = is_readonly; - MEM_IN_STRUCT_P (reg) = in_struct; - MEM_SCALAR_P (reg) = is_scalar; - /* We have no alias information about this newly created - MEM. */ - set_mem_alias_set (reg, 0); + if (reg_equiv_memory_loc[i]) + MEM_COPY_ATTRIBUTES (reg, reg_equiv_memory_loc[i]); + else + { + RTX_UNCHANGING_P (reg) = MEM_IN_STRUCT_P (reg) + = MEM_SCALAR_P (reg) = 0; + MEM_ATTRS (reg) = 0; + } } else if (reg_equiv_mem[i]) XEXP (reg_equiv_mem[i], 0) = addr; |