aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl-factoring.c
diff options
context:
space:
mode:
authorKenneth Zadeck <zadeck@naturalbridge.com>2008-12-18 13:38:39 +0000
committerKenneth Zadeck <zadeck@gcc.gnu.org>2008-12-18 13:38:39 +0000
commit02b47899e14982d742b91de30d3129b2719c59d0 (patch)
treec64daed76d865d25eb4ef4c4e020e357ce13e831 /gcc/rtl-factoring.c
parentfb5bc08bb353a574a011eaf5b7ae874672e4b289 (diff)
downloadgcc-02b47899e14982d742b91de30d3129b2719c59d0.zip
gcc-02b47899e14982d742b91de30d3129b2719c59d0.tar.gz
gcc-02b47899e14982d742b91de30d3129b2719c59d0.tar.bz2
re PR rtl-optimization/37922 (code generation error)
2008-12-18 Kenneth Zadeck <zadeck@naturalbridge.com> PR rtl-optimization/37922 * dse.c (bb_info): Added regs_live field. (look_for_hardregs): New function. (replace_read): Added regs_live parameter and code to check that shift sequence does not clobber live hardregs. (check_mem_read_rtx): Added parameter to replace_read. (dse_step1): Added regs_live bitmap and initialize it. (rest_of_handle_dse): Added DF_NOTES problem and earlier call to df_analyze. * df-problems.c Renamed to df_simulate_initialize_backwards. (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards. (df_simulate_artificial_refs_at_top): Renamed to df_simulate_finalize_backwards. (df_simulate_initialized_forwards, df_simulate_one_insn_forwards, df_simulate_finalize_backwards): New functions. * df.h (df_simulate_artificial_refs_at_end): Renamed to df_simulate_initialize_backwards. (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards. (df_simulate_artificial_refs_at_top): Renamed to df_simulate_finalize_backwards. (df_simulate_initialized_forwards, df_simulate_one_insn_forwards, df_simulate_finalize_backwards): New functions. * ra-conflict.c (global_conflicts): Renamed df_simulate_artificial_refs_at_end to df_simulate_initialize_backwards. * sel-sched.c (propagate_lv_set): Renamed df_simulate_one_insn to df_simulate_one_insn_backwards. * ifcvt.c (dead_or_predicable): Renamed df_simulate_artificial_refs_at_end to df_simulate_initialize_backwards. Renamed df_simulate_one_insn to df_simulate_one_insn_backwards. * recog.c (peephole2_optimize): Ditto. * rtl-factoring (collect_pattern_seqs, clear_regs_live_in_seq): Ditto. 2008-12-18 Kenneth Zadeck <zadeck@naturalbridge.com> PR rtl-optimization/37922 * g++.dg/torture/pr37922.C: New test. From-SVN: r142809
Diffstat (limited to 'gcc/rtl-factoring.c')
-rw-r--r--gcc/rtl-factoring.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/rtl-factoring.c b/gcc/rtl-factoring.c
index 07c66e2..4c879691 100644
--- a/gcc/rtl-factoring.c
+++ b/gcc/rtl-factoring.c
@@ -464,7 +464,7 @@ collect_pattern_seqs (void)
/* Initialize liveness propagation. */
INIT_REG_SET (&live);
bitmap_copy (&live, DF_LR_OUT (bb));
- df_simulate_artificial_refs_at_end (bb, &live);
+ df_simulate_initialize_backwards (bb, &live);
/* Propagate liveness info and mark insns where a stack reg is live. */
insn = BB_END (bb);
@@ -486,7 +486,7 @@ collect_pattern_seqs (void)
}
if (insn == BB_HEAD (bb))
break;
- df_simulate_one_insn (bb, insn, &live);
+ df_simulate_one_insn_backwards (bb, insn, &live);
insn = prev;
}
@@ -572,11 +572,11 @@ clear_regs_live_in_seq (HARD_REG_SET * regs, rtx insn, int length)
bb = BLOCK_FOR_INSN (insn);
INIT_REG_SET (&live);
bitmap_copy (&live, DF_LR_OUT (bb));
- df_simulate_artificial_refs_at_end (bb, &live);
+ df_simulate_initialize_backwards (bb, &live);
/* Propagate until INSN if found. */
for (x = BB_END (bb); x != insn; x = PREV_INSN (x))
- df_simulate_one_insn (bb, x, &live);
+ df_simulate_one_insn_backwards (bb, x, &live);
/* Clear registers live after INSN. */
renumbered_reg_set_to_hard_reg_set (&hlive, &live);
@@ -586,7 +586,7 @@ clear_regs_live_in_seq (HARD_REG_SET * regs, rtx insn, int length)
for (i = 0; i < length;)
{
rtx prev = PREV_INSN (x);
- df_simulate_one_insn (bb, x, &live);
+ df_simulate_one_insn_backwards (bb, x, &live);
if (INSN_P (x))
{