aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorGeoff Keating <geoffk@cygnus.com>2000-01-27 20:46:26 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2000-01-27 20:46:26 +0000
commitd1b817796193461ca8a39cc93c9662fd9fb3c5c7 (patch)
treea362d5dd6e2bf7c8fcd3a6b2b1e94b123120c60d /gcc/function.c
parent3bc9f12b33e84053451bac3b5f817526c3792627 (diff)
downloadgcc-d1b817796193461ca8a39cc93c9662fd9fb3c5c7.zip
gcc-d1b817796193461ca8a39cc93c9662fd9fb3c5c7.tar.gz
gcc-d1b817796193461ca8a39cc93c9662fd9fb3c5c7.tar.bz2
emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
* emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too. Use unshare_all_rtl_1. (unshare_all_rtl_again): New function. (unshare_all_rtl_1): New function split out of unshare_all_rtl. * function.c (purge_addressof_1): Use unshare_all_rtl_again rather than resetting the 'used' flags ourself. * toplev.c (rest_of_compilation): Add current_function_decl to the unshare_all_rtl call. * tree.h: Prototype unshare_all_rtl. * rtl.h: Prototype unshare_all_rtl_again here. From-SVN: r31651
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 9006d16..8339208 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -2972,13 +2972,7 @@ purge_addressof_1 (loc, insn, force, store, ht)
/* Make sure to unshare any shared rtl that store_bit_field
might have created. */
- for (p = get_insns(); p; p = NEXT_INSN (p))
- {
- reset_used_flags (PATTERN (p));
- reset_used_flags (REG_NOTES (p));
- reset_used_flags (LOG_LINKS (p));
- }
- unshare_all_rtl (get_insns ());
+ unshare_all_rtl_again (get_insns ());
seq = gen_sequence ();
end_sequence ();