This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [dataflow] PATCH: Removed last calls to flow.
- From: Kenneth Zadeck <zadeck at naturalbridge dot com>
- To: Kenneth Zadeck <zadeck at naturalbridge dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, "Berlin, Daniel" <dberlin at dberlin dot org>, Paolo Bonzini <paolo dot bonzini at lu dot unisi dot ch>
- Date: Mon, 24 Jul 2006 14:25:49 -0400
- Subject: Re: [dataflow] PATCH: Removed last calls to flow.
- References: <44C4EC7B.8060404@naturalbridge.com>
Fixed changelog entry for cfgloop.c
it is now:
* cfgloop.c: Ditto.
(establish_preds, flow_loops_find): Removed ref to cfun->max_loop_depth.
Kenny
Kenneth Zadeck wrote:
> This patch finally removes all references to flow.c. (Ding dong the
> witch is dead...)
>
> The patch also fixes more problems that were discovered in the RS6000
> implementation of PRE_MODIFY.
>
> The majority of this patch is documentation or the movement of the few
> remaining calls that were in flow but are still used. Most of these
> had no particular reason to be in flow and many of them were moved in
> the same file as their single remaining caller and then were made
> static.
>
> live_analysis was the most difficult change. Finding the last
> unrelated and undocumented side effects was a difficult process. In
> the end it has been split into several separate passes, each with
> nothing to do with the other parts. There is not any more work being
> done here, because each of these pieces was in fact a separate
> operation, it is just now this is explicit.
>
> There were other small changes and cleanups also done. The
> instruction splitters are now only called by the pass manager and
> various cleanups to debugging were made.
>
> This patch has been bootstrapped and regression tested on three platforms:
>
> powerpc-unknown-linux-gnu
> x86_64-unknown-linux-gnu
> i686-pc-linux-gnu
>
> It adds no new regressions.
>
> It was also tested on arm-elf. This patch does not effect the
> outstanding regressions there.
>
> Kenny
> 2006-07-23 Kenneth Zadeck <zadeck@naturalbridge.com>
>
> * tree-pass.h (pass_regclass_init, pass_no_new_pseudos,
> pass_split_before_sched2): Added.
> (pass_life, pass_remove_death_notes): Deleted.
> * rtlanal.c: Documentation.
> * stack-ptr-mod.c: Ditto.
> * cfgloop.c: Ditto.
> * output.h: Ditto.
> * function.c: Ditto.
> * caller-save.c: Ditto.
> * sched-deps.c: Ditto.
> * jump.c: Ditto.
> * alias.c: Ditto.
> * calls.c: Ditto.
> * final.c: (rest_of_no_new_pseudos, pass_no_new_pseudos): Added.
> * cfg.c (dump_regset, debug_regset): Moved from flow.c.
> * regs.h (regs_may_share): Deleted.
> (allocate_reg_life_data): Added.
> * flow.c: Deleted.
> * global.c (reg_may_share): Deleted.
> (global_alloc): Removed support for regs_may_share.
> * ifcvt.c (rest_or_handel_if_conversion): Removed ref to
> clear_reg_deaths.
> * timevar.def (TV_FLOW): Removed.
> * recog.c (find_single_use, find_single_use_1): Moved to combine
> and made static.
> (split_all_insns, split_all_insns_noflow): Made static.
> (pass_split_before_regclass): Fixed tv_id.
> (gate_handle_split_before_sched2,
> rest_of_handle_split_before_sched2, pass_split_before_sched2): New.
> (pass_split_for_shorten_branches): Renamed and fixed tv_id.
> * recog.h (find_single_use): Removed.
> * regmove.c (find_use_as_address): Moved from flow and made
> static.
> * function.h (max_loop_depth): Removed.
> * cfgcleanup.c (delete_dead_jumptables): Moved from flow.c.
> * subregs-init.c (initialize_uninitialized_subregs): Added call to
> allocate_reg_life_data if new regs were added.
> * regclass.c (max_regno, reg_set_to_hard_reg_set,
> allocate_reg_life_data): Moved from flow.c.
> (regclass_init): Now static and returns unsigned int.
> (pass_regclass_init, find_subregs_of_mode): New.
> (init_subregs_of_mode): Now fills the hash table.
> * rtl.h (find_use_as_address, split_all_insns,
> split_all_insns_noflow, regclass_init): Deleted.
> * combine.c (find_single_use_1, find_single_use): Moved from recog
> and made static.
> (delete_noop_moves): Moved from flow.c and made static.
> (rest_of_handle_combine): Now runs dce as part of df_init.
> * df-problems.c (reg_n_info): Moved from flow.c.
> (df_ri_problem_data.computed): Added field.
> (print_note, df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
> df_create_unused_note, df_ri_bb_compute, df_ri_compute): Changed
> note printing to go to dump_file.
> (df_ri_alloc, df_ri_compute, df_ri_free, df_ri_dump): Added
> support for computed flag.
> * Makefile.in: (flow.c flow.o): Removed.
> * sched-rgn.c (check_dead_notes1, deaths_in_region): Removed.
> (init_regions, add_block1): Removed last of note counting code.
> (rest_of_handle_sched2): Moved call to split_all_insns to separate
> pass.
> * basic_block.h (first_insn_after_basic_block_note,
> update_life_extent, PROP_* flags, life_analysis, update_life_info
> update_life_info_in_dirty_blocks, count_or_remove_death_notes,
> propagate_block, clear_reg_deaths, propagate_block_info,
> propagate_one_insn, init_propagate_block_info,
> free_propagate_block_info): Removed.
> (CLEANUP_*): Renumbered.
> sched_vis.c: (print_exp): Added proper printing for PRE and
> POST_MODIFY.
> * passes.c (init_optimization_passes): Added pass_regclass_init,
> pass_no_new_pseudos, and pass_split_before_sched2. Deleted
> pass_life.
> * struct-equiv.c (struct_equiv_init): Removed dead conditional.
> * config/rs6000/rs6000.c (print_operand): More fixes for
> PRE_MODIFY.
> * config/rs6000/rs6000.md ("*movdf_hardfloat32",
> "*movdf_softfloat32"): Ditto.
> * cfgrtl (first_insn_after_basic_block_note): Moved from flow.c
> and made static.
>
>
> ------------------------------------------------------------------------
>
>