Commit a03ae2b7 authored by wilson's avatar wilson
Browse files

PR optimization/9745

* loop.c (loop_iv_add_mult_emit_before): Call loop_regs_update before
loop_insn_emit_before.
(loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69220 138bc75d-0d04-0410-961f-82ee72b054a4
parent f860362b
2003-07-10 James E Wilson <wilson@tuliptree.org>
PR optimization/9745
* loop.c (loop_iv_add_mult_emit_before): Call loop_regs_update before
loop_insn_emit_before.
(loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
2003-07-10 Zack Weinberg <zack@codesourcery.com>
 
* cppcharset.c: Fix comment.
......
......@@ -7737,11 +7737,12 @@ loop_iv_add_mult_emit_before (const struct loop *loop, rtx b, rtx m, rtx a,
update_reg_last_use (b, before_insn);
update_reg_last_use (m, before_insn);
loop_insn_emit_before (loop, before_bb, before_insn, seq);
/* It is possible that the expansion created lots of new registers.
Iterate over the sequence we just created and record them all. */
Iterate over the sequence we just created and record them all. We
must do this before inserting the sequence. */
loop_regs_update (loop, seq);
loop_insn_emit_before (loop, before_bb, before_insn, seq);
}
......@@ -7764,11 +7765,12 @@ loop_iv_add_mult_sink (const struct loop *loop, rtx b, rtx m, rtx a, rtx reg)
update_reg_last_use (b, loop->sink);
update_reg_last_use (m, loop->sink);
loop_insn_sink (loop, seq);
/* It is possible that the expansion created lots of new registers.
Iterate over the sequence we just created and record them all. */
Iterate over the sequence we just created and record them all. We
must do this before inserting the sequence. */
loop_regs_update (loop, seq);
loop_insn_sink (loop, seq);
}
......@@ -7784,11 +7786,12 @@ loop_iv_add_mult_hoist (const struct loop *loop, rtx b, rtx m, rtx a, rtx reg)
/* Use copy_rtx to prevent unexpected sharing of these rtx. */
seq = gen_add_mult (copy_rtx (b), copy_rtx (m), copy_rtx (a), reg);
loop_insn_hoist (loop, seq);
/* It is possible that the expansion created lots of new registers.
Iterate over the sequence we just created and record them all. */
Iterate over the sequence we just created and record them all. We
must do this before inserting the sequence. */
loop_regs_update (loop, seq);
loop_insn_hoist (loop, seq);
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment