From 82e766f55e3e82859e209db082c63034b84de5a4 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Wed, 11 May 2005 21:19:54 +0000 Subject: [PATCH] revert: backport: function.c (fixup_var_refs): Save volatile_ok and set to 1. Revert: 2005-05-10 H.J. Lu Backport from mainline 2004-02-12 Richard Kenner * function.c (fixup_var_refs): Save volatile_ok and set to 1. * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok. 2005-05-09 Grigory Tolstolytkin Backport from mainline 2004-02-12 Richard Kenner * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill previous MEM_VOLATILE in REF. From-SVN: r99595 --- gcc/ChangeLog | 15 +++++++++++++++ gcc/emit-rtl.c | 2 +- gcc/expr.c | 5 ++--- gcc/function.c | 6 ------ 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6be5a36b676f..8b6d26aa49ee 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,18 @@ +2005-05-11 Mark Mitchell + + Revert: + 2005-05-10 H.J. Lu + Backport from mainline + 2004-02-12 Richard Kenner + * function.c (fixup_var_refs): Save volatile_ok and set to 1. + * expr.c (emit_block_move_via_movstr): Save and restore + volatile_ok. + 2005-05-09 Grigory Tolstolytkin + Backport from mainline + 2004-02-12 Richard Kenner + * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill previous + MEM_VOLATILE in REF. + 2005-05-11 Ben Elliston * dwarf2out.c: Revert my 2005-05-10 patch. diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 92832256f93b..9df2d6c4f8dd 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -1592,7 +1592,7 @@ set_mem_attributes_minus_bitpos (rtx ref, tree t, int objectp, front-end routine) and use it. */ alias = get_alias_set (t); - MEM_VOLATILE_P (ref) |= TYPE_VOLATILE (type); + MEM_VOLATILE_P (ref) = TYPE_VOLATILE (type); MEM_IN_STRUCT_P (ref) = AGGREGATE_TYPE_P (type); RTX_UNCHANGING_P (ref) |= ((lang_hooks.honor_readonly diff --git a/gcc/expr.c b/gcc/expr.c index 1ce2fa4b793c..fcb5b0c78d68 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -1452,7 +1452,6 @@ static bool emit_block_move_via_movstr (rtx x, rtx y, rtx size, unsigned int align) { rtx opalign = GEN_INT (align / BITS_PER_UNIT); - int save_volatile_ok = volatile_ok; enum machine_mode mode; /* Since this is a move insn, we don't care about volatility. */ @@ -1502,7 +1501,7 @@ emit_block_move_via_movstr (rtx x, rtx y, rtx size, unsigned int align) if (pat) { emit_insn (pat); - volatile_ok = save_volatile_ok; + volatile_ok = 0; return true; } else @@ -1510,7 +1509,7 @@ emit_block_move_via_movstr (rtx x, rtx y, rtx size, unsigned int align) } } - volatile_ok = save_volatile_ok; + volatile_ok = 0; return false; } diff --git a/gcc/function.c b/gcc/function.c index 206b11ddddee..087467cc0cdd 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -1517,7 +1517,6 @@ fixup_var_refs (rtx var, enum machine_mode promoted_mode, int unsignedp, rtx first_insn = get_insns (); struct sequence_stack *stack = seq_stack; tree rtl_exps = rtl_expr_chain; - int save_volatile_ok = volatile_ok; /* If there's a hash table, it must record all uses of VAR. */ if (ht) @@ -1529,9 +1528,6 @@ fixup_var_refs (rtx var, enum machine_mode promoted_mode, int unsignedp, return; } - /* Volatile is valid in MEMs because all we're doing in changing the - address inside. */ - volatile_ok = 1; fixup_var_refs_insns (first_insn, var, promoted_mode, unsignedp, stack == 0, may_share); @@ -1559,8 +1555,6 @@ fixup_var_refs (rtx var, enum machine_mode promoted_mode, int unsignedp, end_sequence (); } } - - volatile_ok = save_volatile_ok; } /* REPLACEMENTS is a pointer to a list of the struct fixup_replacement and X is -- 2.47.2