This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
The following patch is part of the changes mention in 4.1 projects as part of SMS improvements. It moves SMS to work in cfg-layout mode. It is the first patch of several that improve SMS and make it applicable to more loops. The patch makes the current loop versioning also available in RTL by making it a cfghook. This patch has wide changes and moves functions between several files, but it couldn't be divided to several patches. I am testing this patch by bootstrap with -funswitch-loops because the later uses the previous tree loop-versioning it should test that it wasn't affected. The testing of the RTL part will be made when the other patches for SMS will be sent. Ok for mainline if bootstrap & regression passes. 2005-03-02 Mostafa Hagog <mustafa@il.ibm.com> * basic-block.h (extract_true_false_edges_from_block): Declare. * cfg.c (extract_true_false_edges_from_block): Move to here. * cfghooks.c (lv_flush_pending_stmts, loop_version_call_back): new. * cfghooks.h (loop_version_call_back, flush_pending_stmts): New in cfg_hooks. (lv_flush_pending_stmts, loop_version_call_back): Declare. * cfgloop.h (create_preheader): Make extern. (duplicate_loop_to_header_edge): Change return type to bool. (loop_version): Declare. * cfgloopmanip.c (cfghooks.h): Include. (duplicate_loop_to_header_edge): Change return type to bool. (create_preheader): Make external. (loop_version): Move here. * cfgrtl.c (cfgloop.h): Include. (rtl_verify_flow_info_1): Fix. (rtl_lv_add_condition_to_bb, rtl_lv_adjust_loop_entry_edge, rtl_loop_version_call_back): New. (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add two new hooks. * tree-cfg.c (lv_adjust_loop_header_phi, tree_lv_add_condition_to_bb, tree_lv_adjust_loop_entry_edge): Move here and rename. (tree_loop_version_call_back): New. (tree_cfg_hooks): Add two new hooks. (extract_true_false_edges_from_block): Remove from here. * tree-flow.h (extract_true_false_edges_from_block): Remove from here. * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove from here. (See attached file: loop_version_hook_4.patch)
Attachment:
loop_version_hook_4.patch
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |