Commit 22129589 by Andreas Schwab

re PR rtl-optimization/36929 (internal compiler error: Segmentation fault)

PR rtl-optimization/36929
* dse.c (replace_inc_dec): Use emit_insn_before instead of
add_insn_before and fix argument order.
(replace_inc_dec_mem): Handle NULL rtx.

From-SVN: r138333
parent 2a9cc4de
2008-07-30 Andreas Schwab <schwab@suse.de>
PR rtl-optimization/36929
* dse.c (replace_inc_dec): Use emit_insn_before instead of
add_insn_before and fix argument order.
(replace_inc_dec_mem): Handle NULL rtx.
2008-07-30 Andrew Jenner <andrew@codesourcery.com>
* config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
......
......@@ -783,10 +783,9 @@ replace_inc_dec (rtx *r, void *d)
{
rtx r1 = XEXP (x, 0);
rtx c = gen_int_mode (Pmode, data->size);
add_insn_before (data->insn,
gen_rtx_SET (Pmode, r1,
emit_insn_before (gen_rtx_SET (Pmode, r1,
gen_rtx_PLUS (Pmode, r1, c)),
NULL);
data->insn);
return -1;
}
......@@ -795,10 +794,9 @@ replace_inc_dec (rtx *r, void *d)
{
rtx r1 = XEXP (x, 0);
rtx c = gen_int_mode (Pmode, -data->size);
add_insn_before (data->insn,
gen_rtx_SET (Pmode, r1,
emit_insn_before (gen_rtx_SET (Pmode, r1,
gen_rtx_PLUS (Pmode, r1, c)),
NULL);
data->insn);
return -1;
}
......@@ -809,8 +807,7 @@ replace_inc_dec (rtx *r, void *d)
insn that contained it. */
rtx add = XEXP (x, 0);
rtx r1 = XEXP (add, 0);
add_insn_before (data->insn,
gen_rtx_SET (Pmode, r1, add), NULL);
emit_insn_before (gen_rtx_SET (Pmode, r1, add), data->insn);
return -1;
}
......@@ -827,12 +824,12 @@ static int
replace_inc_dec_mem (rtx *r, void *d)
{
rtx x = *r;
if (GET_CODE (x) == MEM)
if (x != NULL_RTX && MEM_P (x))
{
struct insn_size data;
data.size = GET_MODE_SIZE (GET_MODE (x));
data.insn = (rtx)d;
data.insn = (rtx) d;
for_each_rtx (&XEXP (x, 0), replace_inc_dec, &data);
......
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