From 24153880bd9e4f7f7cf825cebc8b476c32717ba0 Mon Sep 17 00:00:00 2001 From: steven Date: Tue, 2 Jan 2007 18:50:33 +0000 Subject: [PATCH] * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120353 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 7 +++++ gcc/config/alpha/alpha.md | 4 +-- gcc/config/arm/arm.c | 4 +-- gcc/config/darwin.c | 3 +- gcc/config/frv/frv.md | 12 +++----- gcc/config/m32r/m32r.c | 3 +- gcc/config/mn10300/mn10300.md | 6 ++-- gcc/config/pa/pa.c | 5 ++-- gcc/config/rs6000/rs6000.c | 3 +- gcc/config/s390/s390.md | 69 ++++++++++++++++--------------------------- gcc/config/sh/sh.md | 45 ++++++++++++---------------- gcc/config/sparc/sparc.c | 3 +- gcc/tree-nested.c | 2 +- 13 files changed, 68 insertions(+), 98 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9406b46185a..e7e62e9caf3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2007-01-02 Steven Bosscher + + * 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 Revert: diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md index 2838499fa86..f49b0dc10f5 100644 --- a/gcc/config/alpha/alpha.md +++ b/gcc/config/alpha/alpha.md @@ -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; diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index c7bf05fc4e4..c7a1ec28eca 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -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) diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c index 1c7747cc04c..7bd916d907b 100644 --- a/gcc/config/darwin.c +++ b/gcc/config/darwin.c @@ -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 diff --git a/gcc/config/frv/frv.md b/gcc/config/frv/frv.md index d0f35927759..43af8c42932 100644 --- a/gcc/config/frv/frv.md +++ b/gcc/config/frv/frv.md @@ -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; }") diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c index e7e1a2d3024..a4d20397bc2 100644 --- a/gcc/config/m32r/m32r.c +++ b/gcc/config/m32r/m32r.c @@ -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; } diff --git a/gcc/config/mn10300/mn10300.md b/gcc/config/mn10300/mn10300.md index f8f320e03e0..5c5bc8de5dc 100644 --- a/gcc/config/mn10300/mn10300.md +++ b/gcc/config/mn10300/mn10300.md @@ -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; }") diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 29e449d2e2e..59f9dfd4d32 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -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; } diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index eaf3db63840..15f263ab016 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -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, diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md index 23484098f79..03bec777bd7 100644 --- a/gcc/config/s390/s390.md +++ b/gcc/config/s390/s390.md @@ -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; }) diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index e6d80300cdd..0186ba5b30e 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -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; }") diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 75c7de729e6..05390096b7c 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -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) diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c index 0b78d0e6e52..fdf39cc4623 100644 --- a/gcc/tree-nested.c +++ b/gcc/tree-nested.c @@ -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; } -- 2.11.4.GIT