diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-09 12:53:21 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-09 12:53:21 +0000 |
commit | dd367d39b2a5d2fb8a25fec1c7cfc653c7a16b1b (patch) | |
tree | 1f599de47e1e5ba4b01146509946d8ab73e913f7 /gcc/emit-rtl.c | |
parent | dbd8525d9eaeb9319e670d602202e89694e821f7 (diff) | |
download | gcc-dd367d39b2a5d2fb8a25fec1c7cfc653c7a16b1b.tar.gz |
* 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.c | 7 |
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); |