alpha.md, [...]: Always use set_unique_reg_note to add REG_EQUAL notes.

* config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
        m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
        rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
        Always use set_unique_reg_note to add REG_EQUAL notes.

From-SVN: r120353
This commit is contained in:
Steven Bosscher 2007-01-02 18:50:33 +00:00
parent 61465e7563
commit bd94cb6ec8
13 changed files with 68 additions and 98 deletions

View File

@ -1,3 +1,10 @@
2007-01-02 Steven Bosscher <steven@gcc.gnu.org>
* config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
Always use set_unique_reg_note to add REG_EQUAL notes.
2007-01-02 Kazu Hirata <kazu@codesourcery.com>
Revert:

View File

@ -5336,8 +5336,8 @@
emit_insn (gen_ashldi3 (operands[0], operands[0], GEN_INT (32)));
insn2 = emit_insn (gen_umk_lalm (operands[0], operands[0], operands[1]));
insn3 = emit_insn (gen_umk_lal (operands[0], operands[0], operands[1]));
REG_NOTES (insn3) = gen_rtx_EXPR_LIST (REG_EQUAL, operands[1],
REG_NOTES (insn3));
set_unique_reg_note (insn3, REG_EQUAL, operands[1]);
if (GET_CODE (operands[1]) == LABEL_REF)
{
rtx label;

View File

@ -3295,8 +3295,8 @@ legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg)
#endif
/* Put a REG_EQUAL note on this insn, so that it can be optimized
by loop. */
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, orig,
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, orig);
return reg;
}
else if (GET_CODE (orig) == CONST)

View File

@ -742,8 +742,7 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg)
gen_rtx_LO_SUM (Pmode,
hi_sum_reg, offset));
insn = emit_insn (gen_rtx_SET (VOIDmode, reg, mem));
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, pic_ref,
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, pic_ref);
pic_ref = reg;
#else

View File

@ -7904,8 +7904,7 @@
MEM_READONLY_P (SET_SRC (PATTERN (insn))) = 1;
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, operands[1],
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, operands[1]);
DONE;
}")
@ -7985,8 +7984,7 @@
{
rtx insn = emit_insn (gen_symGOTOFF2reg_i (operands[0], operands[1], operands[2], operands[3]));
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, operands[1],
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, operands[1]);
DONE;
}")
@ -8022,8 +8020,7 @@
insn = emit_insn (gen_symGOTOFF2reg_i (operands[0], operands[1],
operands[4], operands[3]));
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, operands[1],
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, operands[1]);
DONE;
}")
@ -8053,8 +8050,7 @@
insn = emit_insn (gen_symGOTOFF2reg_hilo (operands[0], operands[1],
operands[4], operands[3]));
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, operands[1],
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, operands[1]);
DONE;
}")

View File

@ -1681,8 +1681,7 @@ m32r_legitimize_pic_address (rtx orig, rtx reg)
#if 0
/* Put a REG_EQUAL note on this insn, so that it can be optimized
by loop. */
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, orig,
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, orig);
#endif
return reg;
}

View File

@ -2631,8 +2631,7 @@
MEM_READONLY_P (SET_SRC (PATTERN (insn))) = 1;
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, operands[1],
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, operands[1]);
DONE;
}")
@ -2652,8 +2651,7 @@
{
rtx insn = emit_insn (gen_symGOTOFF2reg_i (operands[0], operands[1]));
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, operands[1],
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, operands[1]);
DONE;
}")

View File

@ -662,7 +662,7 @@ legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg)
insn = emit_move_insn (reg, pic_ref);
/* Put a REG_EQUAL note on this insn, so that it can be optimized. */
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, orig, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, orig);
return reg;
}
@ -1978,8 +1978,7 @@ emit_move_sequence (rtx *operands, enum machine_mode mode, rtx scratch_reg)
}
}
REG_NOTES (insn)
= gen_rtx_EXPR_LIST (REG_EQUAL, op1, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, op1);
return 1;
}

View File

@ -3363,8 +3363,7 @@ rs6000_legitimize_tls_address (rtx addr, enum tls_model model)
emit_move_insn (tmp2, mem);
emit_insn (gen_addsi3 (tmp3, tmp1, tmp2));
last = emit_move_insn (got, tmp3);
REG_NOTES (last) = gen_rtx_EXPR_LIST (REG_EQUAL, gsym,
REG_NOTES (last));
set_unique_reg_note (last, REG_EQUAL, gsym);
REG_NOTES (first) = gen_rtx_INSN_LIST (REG_LIBCALL, last,
REG_NOTES (first));
REG_NOTES (last) = gen_rtx_INSN_LIST (REG_RETVAL, first,

View File

@ -4545,12 +4545,10 @@
emit_insn (gen_divmodtidi3 (operands[4], operands[1], operands[2]));
insn = emit_move_insn (operands[0], gen_lowpart (DImode, operands[4]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, div_equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, div_equal);
insn = emit_move_insn (operands[3], gen_highpart (DImode, operands[4]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, mod_equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, mod_equal);
DONE;
})
@ -4616,17 +4614,15 @@
emit_insn (gen_rtx_CLOBBER (VOIDmode, operands[4]));
emit_move_insn (gen_lowpart (DImode, operands[4]), operands[1]);
emit_move_insn (gen_highpart (DImode, operands[4]), const0_rtx);
insn = emit_insn (gen_udivmodtidi3 (operands[4], operands[4], operands[2]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, equal);
insn = emit_move_insn (operands[0], gen_lowpart (DImode, operands[4]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, div_equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, div_equal);
insn = emit_move_insn (operands[3], gen_highpart (DImode, operands[4]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, mod_equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, mod_equal);
DONE;
})
@ -4676,17 +4672,15 @@
operands[4] = gen_reg_rtx(DImode);
emit_insn (gen_extendsidi2 (operands[4], operands[1]));
insn = emit_insn (gen_divmoddisi3 (operands[4], operands[4], operands[2]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, equal);
insn = emit_move_insn (operands[0], gen_lowpart (SImode, operands[4]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, div_equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, div_equal);
insn = emit_move_insn (operands[3], gen_highpart (SImode, operands[4]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, mod_equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, mod_equal);
DONE;
})
@ -4738,17 +4732,15 @@
emit_insn (gen_rtx_CLOBBER (VOIDmode, operands[4]));
emit_move_insn (gen_lowpart (SImode, operands[4]), operands[1]);
emit_move_insn (gen_highpart (SImode, operands[4]), const0_rtx);
insn = emit_insn (gen_udivmoddisi3 (operands[4], operands[4], operands[2]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, equal);
insn = emit_move_insn (operands[0], gen_lowpart (SImode, operands[4]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, div_equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, div_equal);
insn = emit_move_insn (operands[3], gen_highpart (SImode, operands[4]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, mod_equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, mod_equal);
DONE;
})
@ -4813,14 +4805,11 @@
emit_insn (gen_zero_extendsidi2 (operands[3], operands[1]));
insn = emit_insn (gen_divmoddisi3 (operands[3], operands[3],
operands[2]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, equal);
insn = emit_move_insn (operands[0],
gen_lowpart (SImode, operands[3]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL,
udiv_equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, udiv_equal);
}
}
else
@ -4844,14 +4833,12 @@
emit_insn (gen_zero_extendsidi2 (operands[3], operands[1]));
insn = emit_insn (gen_divmoddisi3 (operands[3], operands[3],
operands[2]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, equal);
insn = emit_move_insn (operands[0],
gen_lowpart (SImode, operands[3]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL,
udiv_equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, udiv_equal);
emit_jump (label3);
emit_label (label1);
emit_move_insn (operands[0], operands[1]);
@ -4905,14 +4892,11 @@
emit_insn (gen_zero_extendsidi2 (operands[3], operands[1]));
insn = emit_insn (gen_divmoddisi3 (operands[3], operands[3],
operands[2]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, equal);
insn = emit_move_insn (operands[0],
gen_highpart (SImode, operands[3]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL,
umod_equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, umod_equal);
}
}
else
@ -4936,14 +4920,12 @@
emit_insn (gen_zero_extendsidi2 (operands[3], operands[1]));
insn = emit_insn (gen_divmoddisi3 (operands[3], operands[3],
operands[2]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, equal);
insn = emit_move_insn (operands[0],
gen_highpart (SImode, operands[3]));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL,
umod_equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, umod_equal);
emit_jump (label3);
emit_label (label1);
emit_move_insn (operands[0], const0_rtx);
@ -6275,8 +6257,7 @@
emit_insn (gen_clztidi2 (wide_reg, operands[1], msb));
insn = emit_move_insn (operands[0], gen_highpart (DImode, wide_reg));
REG_NOTES (insn) =
gen_rtx_EXPR_LIST (REG_EQUAL, clz_equal, REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, clz_equal);
DONE;
})

View File

@ -2749,9 +2749,9 @@ label:
See also smulsi3_highpart.
??? Alternatively, we could put this at the calling site of expand_binop,
i.e. expand_expr. */
REG_NOTES (last)
= gen_rtx_EXPR_LIST (REG_EQUAL, copy_rtx (SET_SRC (single_set (first))),
REG_NOTES (last));
set_unique_reg_note (last, REG_EQUAL,
copy_rtx (SET_SRC (single_set (first))));
DONE;
}")
@ -2779,9 +2779,9 @@ label:
See also smulsi3_highpart.
??? Alternatively, we could put this at the calling site of expand_binop,
i.e. expand_expr. */
REG_NOTES (last)
= gen_rtx_EXPR_LIST (REG_EQUAL, copy_rtx (SET_SRC (single_set (first))),
REG_NOTES (last));
set_unique_reg_note (last, REG_EQUAL,
copy_rtx (SET_SRC (single_set (first))));
DONE;
}")
@ -3058,9 +3058,9 @@ label:
See also {,u}mulhisi.
??? Alternatively, we could put this at the calling site of expand_binop,
i.e. expand_mult_highpart. */
REG_NOTES (last)
= gen_rtx_EXPR_LIST (REG_EQUAL, copy_rtx (SET_SRC (single_set (first))),
REG_NOTES (last));
set_unique_reg_note (last, REG_EQUAL,
copy_rtx (SET_SRC (single_set (first))));
DONE;
}")
@ -5113,8 +5113,7 @@ label:
{
rtx insn = emit_insn (gen_movsi_const (operands[0], operands[1]));
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, copy_rtx (operands[1]),
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, copy_rtx (operands[1]));
DONE;
}")
@ -5497,8 +5496,7 @@ label:
else
insn = emit_insn (gen_movdi_const_32bit (operands[0], operands[1]));
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, copy_rtx (operands[1]),
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, copy_rtx (operands[1]));
DONE;
}")
@ -8323,8 +8321,7 @@ label:
insn = emit_move_insn (operands[0], tr);
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, equiv,
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, equiv);
DONE;
}
@ -8433,9 +8430,8 @@ label:
/* ??? Should we have a special alias set for the GOT? */
insn = emit_move_insn (operands[0], mem);
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, XVECEXP (XEXP (operands[1],
0), 0, 0),
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL,
XVECEXP (XEXP (operands[1], 0), 0, 0));
DONE;
}")
@ -8494,8 +8490,7 @@ label:
gen_rtx_PLUS (Pmode, t,
gen_rtx_REG (Pmode, PIC_REG)));
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, operands[1],
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, operands[1]);
DONE;
}")
@ -13203,9 +13198,8 @@ mov.l\\t1f,r0\\n\\
emit_insn (gen_adddi3 (scratch, scratch, GEN_INT (-64)));
emit_insn (gen_movdicc_false (scratch, operands[1], const0_rtx, scratch));
last = emit_insn (gen_subdi3 (operands[0], const0_rtx, scratch));
REG_NOTES (last)
= gen_rtx_EXPR_LIST (REG_EQUAL,
gen_rtx_FFS (DImode, operands[0]), REG_NOTES (last));
set_unique_reg_note (last, REG_EQUAL, gen_rtx_FFS (DImode, operands[0]));
DONE;
}")
@ -13228,9 +13222,8 @@ mov.l\\t1f,r0\\n\\
emit_insn (gen_nsbsi (scratch, discratch));
last = emit_insn (gen_subsi3 (operands[0],
force_reg (SImode, GEN_INT (63)), scratch));
REG_NOTES (last)
= gen_rtx_EXPR_LIST (REG_EQUAL,
gen_rtx_FFS (SImode, operands[0]), REG_NOTES (last));
set_unique_reg_note (last, REG_EQUAL, gen_rtx_FFS (SImode, operands[0]));
DONE;
}")

View File

@ -3257,8 +3257,7 @@ legitimize_pic_address (rtx orig, enum machine_mode mode ATTRIBUTE_UNUSED,
insn = emit_move_insn (reg, pic_ref);
/* Put a REG_EQUAL note on this insn, so that it can be optimized
by loop. */
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, orig,
REG_NOTES (insn));
set_unique_reg_note (insn, REG_EQUAL, orig);
return reg;
}
else if (GET_CODE (orig) == CONST)

View File

@ -183,7 +183,7 @@ build_addr (tree exp, tree context)
save_context = current_function_decl;
current_function_decl = context;
retval = build1 (ADDR_EXPR, build_pointer_type (TREE_TYPE (exp)), exp);
current_function_decl = save_context;;
current_function_decl = save_context;
return retval;
}