Loop insn sinking patch

Richard Henderson rth@redhat.com
Sun Jan 7 02:09:00 GMT 2001


On Sun, Jan 07, 2001 at 10:56:07PM +1300, Michael Hayes wrote:
> 	* basic-block.h (struct loop): Add `sink' field.
> 	* loop.h: Include sbitmap.h, hard-reg-set.h, and basic-block.h.
> 	(emit_iv_add_mult): Delete.
> 	(loop_iv_add_mult_hoist, loop_iv_add_mult_sink): Define.
> 	(loop_iv_add_mult_emit_before, loop_insn_sink): Define.
> 	(unroll_loop): Remove end_insert_before argument.
> 	* loop.c (loop_givs_rescan): Remove end_insert_before argument.
> 	(maybe_eliminate_biv_1): Likewise.
> 	(emit_iv_add_mult): Delete.
> 	(gen_add_mult, loop_regs_update): New.
> 	(loop_insn_emit_after, loop_insn_emit_before): New.
> 	(loop_insn_sink, loop_insn_sink_or_swim): New.
> 	(emit_iv_add_mult): Delete.
> 	(scan_loop): Set loop->sink.
> 	(loop_givs_reduce): Use loop_insn_sink and its ilk.
> 	(loop_givs_rescan, strength_reduce, check_dbra_loop): Likewise.
> 	(maybe_eliminate_biv_1): Likewise.
> 	(maybe_eliminate_biv_1): Add basic block argument.
> 	* unroll.c (unroll_loop): Remove end_insert_before argument.
> 	(find_splittable_regs): Likewise.
> 	(find_splittable_regs): Use loop_insn_sink and its ilk.
> 	(find_splittable_givs, final_biv_value, final_giv_value): Likewise.

Ok.


r~


More information about the Gcc-patches mailing list