From 5244079b7d786f54c7289e4a2b7948e887224883 Mon Sep 17 00:00:00 2001 From: rearnsha Date: Sat, 15 Apr 2000 11:16:56 +0000 Subject: * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then call unshare_all_rtl. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33162 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/emit-rtl.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'gcc/emit-rtl.c') diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 8fd559ca928..98009ec1ca1 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -1724,6 +1724,8 @@ unshare_all_rtl_again (insn) rtx insn; { rtx p; + tree decl; + for (p = insn; p; p = NEXT_INSN (p)) if (GET_RTX_CLASS (GET_CODE (p)) == 'i') { @@ -1731,7 +1733,14 @@ unshare_all_rtl_again (insn) reset_used_flags (REG_NOTES (p)); reset_used_flags (LOG_LINKS (p)); } - unshare_all_rtl_1 (insn); + + /* Make sure that virtual parameters are not shared. */ + for (decl = DECL_ARGUMENTS (cfun->decl); decl; decl = TREE_CHAIN (decl)) + reset_used_flags (DECL_RTL (decl)); + + reset_used_flags (stack_slot_list); + + unshare_all_rtl (cfun->decl, insn); } /* Go through all the RTL insn bodies and copy any invalid shared structure. -- cgit v1.2.1