function.c (purge_addressof_1): Unshare rtl created by store_bit_field.
* function.c (purge_addressof_1): Unshare rtl created by store_bit_field. From-SVN: r23670
This commit is contained in:
parent
8d1d76c1e3
commit
de0dd9345e
@ -1,3 +1,8 @@
|
||||
Mon Nov 16 04:41:41 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||
|
||||
* function.c (purge_addressof_1): Unshare rtl created by
|
||||
store_bit_field.
|
||||
|
||||
Mon Nov 16 04:23:06 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||
|
||||
* regmove.c (regmove_optimize): Don't do anything but
|
||||
|
@ -2918,6 +2918,8 @@ purge_addressof_1 (loc, insn, force, store)
|
||||
|
||||
if (store)
|
||||
{
|
||||
rtx p;
|
||||
|
||||
start_sequence ();
|
||||
val = gen_reg_rtx (GET_MODE (x));
|
||||
if (! validate_change (insn, loc, val, 0))
|
||||
@ -2936,6 +2938,16 @@ purge_addressof_1 (loc, insn, force, store)
|
||||
val, GET_MODE_SIZE (GET_MODE (sub)),
|
||||
GET_MODE_SIZE (GET_MODE (sub)));
|
||||
|
||||
/* 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 ());
|
||||
|
||||
seq = gen_sequence ();
|
||||
end_sequence ();
|
||||
emit_insn_after (seq, insn);
|
||||
|
Loading…
Reference in New Issue
Block a user