summaryrefslogtreecommitdiffstats
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-09 12:53:21 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-09 12:53:21 +0000
commitdd367d39b2a5d2fb8a25fec1c7cfc653c7a16b1b (patch)
tree1f599de47e1e5ba4b01146509946d8ab73e913f7 /gcc/emit-rtl.c
parentdbd8525d9eaeb9319e670d602202e89694e821f7 (diff)
downloadppe42-gcc-dd367d39b2a5d2fb8a25fec1c7cfc653c7a16b1b.tar.gz
ppe42-gcc-dd367d39b2a5d2fb8a25fec1c7cfc653c7a16b1b.zip
* emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
* function.c (fixup_var_refs): Add MAY_SHARE parameter. (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise. (fixup_var_refs_insn, fixup_var_refs_1): Likewise. (pop_function_context): Compute MAY_SHARE parameter for fixup_var_refs. (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR. (gen_mem_addressof): Call fixup_var_refs with new parm. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50493 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index e3d557fe809..4d82afb6885 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -2239,7 +2239,8 @@ reset_used_decls (blk)
}
/* Similar to `copy_rtx' except that if MAY_SHARE is present, it is
- placed in the result directly, rather than being copied. */
+ placed in the result directly, rather than being copied. MAY_SHARE is
+ either a MEM of an EXPR_LIST of MEMs. */
rtx
copy_most_rtx (orig, may_share)
@@ -2251,7 +2252,9 @@ copy_most_rtx (orig, may_share)
RTX_CODE code;
const char *format_ptr;
- if (orig == may_share)
+ if (orig == may_share
+ || (GET_CODE (may_share) == EXPR_LIST
+ && in_expr_list_p (may_share, orig)))
return orig;
code = GET_CODE (orig);
OpenPOWER on IntegriCloud