summaryrefslogtreecommitdiff
path: root/gcc/cse.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2004-10-28 16:26:25 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2004-10-28 16:26:25 +0000
commit89333dfeb60066c312c10707b3b3038944feb9c1 (patch)
tree06b58d61337f5b3e05ca35e21974ddc88d12f300 /gcc/cse.c
parent4b0a9554ad900aa505ed8774de9ac4d700c93234 (diff)
downloadgcc-89333dfeb60066c312c10707b3b3038944feb9c1.tar.gz
* cse.c (memory_extend_rtx): Remove.
(cse_main): Don't set it. (cse_insn): Use a local buffer instead. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89765 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cse.c')
-rw-r--r--gcc/cse.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index 13133998ca6..2b21852544b 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -400,12 +400,6 @@ static int recorded_label_ref;
static int do_not_record;
-#ifdef LOAD_EXTEND_OP
-
-/* Scratch rtl used when looking for load-extended copy of a MEM. */
-static rtx memory_extend_rtx;
-#endif
-
/* canon_hash stores 1 in hash_arg_in_memory
if it notices a reference to memory within the expression being hashed. */
@@ -5154,10 +5148,13 @@ cse_insn (rtx insn, rtx libcall_insn)
&& MEM_P (src) && ! do_not_record
&& LOAD_EXTEND_OP (mode) != UNKNOWN)
{
+ struct rtx_def memory_extend_buf;
+ rtx memory_extend_rtx = &memory_extend_buf;
enum machine_mode tmode;
/* Set what we are trying to extend and the operation it might
have been extended with. */
+ memset (memory_extend_rtx, 0, sizeof(*memory_extend_rtx));
PUT_CODE (memory_extend_rtx, LOAD_EXTEND_OP (mode));
XEXP (memory_extend_rtx, 0) = src;
@@ -6675,13 +6672,6 @@ cse_main (rtx f, int nregs, FILE *file)
reg_eqv_table = xmalloc (nregs * sizeof (struct reg_eqv_elem));
-#ifdef LOAD_EXTEND_OP
-
- /* Allocate scratch rtl here. cse_insn will fill in the memory reference
- and change the code and mode as appropriate. */
- memory_extend_rtx = gen_rtx_ZERO_EXTEND (VOIDmode, NULL_RTX);
-#endif
-
/* Reset the counter indicating how many elements have been made
thus far. */
n_elements_made = 0;