aboutsummaryrefslogtreecommitdiff
path: root/gcc/local-alloc.c
diff options
context:
space:
mode:
authorKenneth Zadeck <zadeck@gcc.gnu.org>2007-06-19 19:04:52 +0000
committerKenneth Zadeck <zadeck@gcc.gnu.org>2007-06-19 19:04:52 +0000
commit89a95777068068a29677510065120620abd202f1 (patch)
treefa9997fc4e323fc1d4610bbda7d845966152ff14 /gcc/local-alloc.c
parenta3a531ecfec77a9b0f30e1bce0c529c543aae332 (diff)
downloadgcc-89a95777068068a29677510065120620abd202f1.zip
gcc-89a95777068068a29677510065120620abd202f1.tar.gz
gcc-89a95777068068a29677510065120620abd202f1.tar.bz2
df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
2007-06-15 Kenneth Zadeck <zadeck@naturalbridge.com> * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed. (struct df_problem.free_blocks_on_set_blocks): New field. (struct dataflow.optional_p): New field. (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed. (df_live_set_all_dirty): New function. * df-scan.c (df_scan_alloc): Initialize optional_p. (problem_SCAN): Initialize free_blocks_on_set_blocks. * df-core.c (df_set_blocks): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now uses df_problem.free_blocks_on_set_blocks to determine which blocks are recycled. (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM. (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now uses dataflow.optional_p to determine if problem should be deleted. (rest_of_handle_df_initialize): Only start live problem if -02 or above. (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed. * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p. (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN, problem_NOTE): Initialize free_blocks_on_set_blocks. (df_lr_bb_local_compute): Recompute luids if df_live problem is not active. (df_live_set_all_dirty, df_note_alloc): New function. * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to df_get_live_*. * sched_ebb.c (compute_jump_reg_dependencies): Ditto. * postreload.c (reload_combine): Ditto. * cse.c (cse_extended_basic_block): Ditto. * regmove.c (mark_flags_life_zones): Ditto. * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq, erase_matching_seqs): Ditto. * bt-load.c (compute_defs_uses_and_gen): Ditto. * integrate (allocate_initial_values): Ditto. * combine.c (reg_dead_at_p): Ditto. * resource.c (mark_target_live_regs): Ditto. * sched-rgn.c (check_live_1, update_live_1): Ditto. * config/sh/sh.c (find_r0_life_regions): Ditto. * global.c (rest_of_handle_global_alloc): Only add back df_live for -O > 1. * local-alloc.c (rest_of_handle_local_alloc): Only remove df_live for -O > 1. * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to df_get_live_*. (if_convert): Make sure df_live is there at -O == 1. (pass_if_after_combine): Cleanup flags. * init-regs.c (initialize_uninitialized_regs): Make sure df_live is there at -O == 1. From-SVN: r125857
Diffstat (limited to 'gcc/local-alloc.c')
-rw-r--r--gcc/local-alloc.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c
index 93bdbfa..59ee52f 100644
--- a/gcc/local-alloc.c
+++ b/gcc/local-alloc.c
@@ -2509,13 +2509,13 @@ rest_of_handle_local_alloc (void)
int max_regno = max_reg_num ();
df_note_add_problem ();
+
+ if (optimize > 1)
+ df_remove_problem (df_live);
+ /* Create a new version of df that has the special version of UR if
+ we are doing optimization. */
if (optimize)
- {
- /* Create a new version of df that has the special version of UR
- if we are doing optimization. */
- df_remove_problem (df_live);
- df_urec_add_problem ();
- }
+ df_urec_add_problem ();
df_analyze ();
regstat_init_n_sets_and_refs ();
regstat_compute_ri ();