diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/explow.c | 54 | ||||
-rw-r--r-- | gcc/expr.h | 8 |
3 files changed, 5 insertions, 62 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 750379d5a9a..25b2a9bb921 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-01-15 Kazu Hirata <kazu@cs.umass.edu> + + * explow.c (copy_all_reg, stabilize): Remove. + * expr.h: Remove the corresponding prototypes. + 2005-01-14 David Edelsohn <edelsohn@gnu.org> * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename diff --git a/gcc/explow.c b/gcc/explow.c index a3e28ff16ec..6460bb9bbd7 100644 --- a/gcc/explow.c +++ b/gcc/explow.c @@ -390,44 +390,6 @@ convert_memory_address (enum machine_mode to_mode ATTRIBUTE_UNUSED, x, POINTERS_EXTEND_UNSIGNED); #endif /* defined(POINTERS_EXTEND_UNSIGNED) */ } - -/* Given a memory address or facsimile X, construct a new address, - currently equivalent, that is stable: future stores won't change it. - - X must be composed of constants, register and memory references - combined with addition, subtraction and multiplication: - in other words, just what you can get from expand_expr if sum_ok is 1. - - Works by making copies of all regs and memory locations used - by X and combining them the same way X does. - You could also stabilize the reference to this address - by copying the address to a register with copy_to_reg; - but then you wouldn't get indexed addressing in the reference. */ - -rtx -copy_all_regs (rtx x) -{ - if (REG_P (x)) - { - if (REGNO (x) != FRAME_POINTER_REGNUM -#if HARD_FRAME_POINTER_REGNUM != FRAME_POINTER_REGNUM - && REGNO (x) != HARD_FRAME_POINTER_REGNUM -#endif - ) - x = copy_to_reg (x); - } - else if (MEM_P (x)) - x = copy_to_reg (x); - else if (GET_CODE (x) == PLUS || GET_CODE (x) == MINUS - || GET_CODE (x) == MULT) - { - rtx op0 = copy_all_regs (XEXP (x, 0)); - rtx op1 = copy_all_regs (XEXP (x, 1)); - if (op0 != XEXP (x, 0) || op1 != XEXP (x, 1)) - x = gen_rtx_fmt_ee (GET_CODE (x), Pmode, op0, op1); - } - return x; -} /* Return something equivalent to X but valid as a memory address for something of mode MODE. When X is not itself valid, this @@ -576,22 +538,6 @@ validize_mem (rtx ref) return replace_equiv_address (ref, XEXP (ref, 0)); } -/* Return a modified copy of X with its memory address copied - into a temporary register to protect it from side effects. - If X is not a MEM, it is returned unchanged (and not copied). - Perhaps even if it is a MEM, if there is no need to change it. */ - -rtx -stabilize (rtx x) -{ - if (!MEM_P (x) - || ! rtx_unstable_p (XEXP (x, 0))) - return x; - - return - replace_equiv_address (x, force_reg (Pmode, copy_all_regs (XEXP (x, 0)))); -} - /* Copy the value or contents of X to a new temp reg and return that reg. */ rtx diff --git a/gcc/expr.h b/gcc/expr.h index a7eb1e397dc..b624413e080 100644 --- a/gcc/expr.h +++ b/gcc/expr.h @@ -642,14 +642,6 @@ extern void set_mem_attributes_minus_bitpos (rtx, tree, int, HOST_WIDE_INT); /* Assemble the static constant template for function entry trampolines. */ extern rtx assemble_trampoline_template (void); -/* Given rtx, return new rtx whose address won't be affected by - any side effects. It has been copied to a new temporary reg. */ -extern rtx stabilize (rtx); - -/* Given an rtx, copy all regs it refers to into new temps - and return a modified copy that refers to the new temps. */ -extern rtx copy_all_regs (rtx); - /* Copy given rtx to a new temp reg and return that. */ extern rtx copy_to_reg (rtx); |