Commit b1b0d9ac by John David Anglin Committed by John David Anglin

re PR rtl-optimization/22239 (i-cobol.adb:482: error: unrecognizable insn)

	PR middle-end/22239
	PR target/20126
	* loop.c (loop_givs_rescan): Use expand_simple_binop instead of
	gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)).

From-SVN: r101863
parent b5efa470
2005-07-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR middle-end/22239
PR target/20126
* loop.c (loop_givs_rescan): Use expand_simple_binop instead of
gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)).
2005-07-07 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-structalias.c (struct variable_info): Heapify complex.
......
......@@ -5496,14 +5496,18 @@ loop_givs_rescan (struct loop *loop, struct iv_class *bl, rtx *reg_map)
v->new_reg));
else if (GET_CODE (*v->location) == PLUS
&& REG_P (XEXP (*v->location, 0))
&& REG_P (v->new_reg)
&& CONSTANT_P (XEXP (*v->location, 1)))
loop_insn_emit_before (loop, 0, v->insn,
gen_move_insn (XEXP (*v->location, 0),
gen_rtx_MINUS
(GET_MODE (*v->location),
v->new_reg,
XEXP (*v->location, 1))));
{
rtx tem;
start_sequence ();
tem = expand_simple_binop (GET_MODE (*v->location), MINUS,
v->new_reg, XEXP (*v->location, 1),
NULL_RTX, 0, OPTAB_LIB_WIDEN);
emit_move_insn (XEXP (*v->location, 0), tem);
tem = get_insns ();
end_sequence ();
loop_insn_emit_before (loop, 0, v->insn, tem);
}
else
{
/* If it wasn't a reg, create a pseudo and use that. */
......
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