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] |
Implementation of some enhancements to tree-ifcvt 1. Allow loads not only in header but also in any dominator of exit_bb. 2. Allow stores not only in exit_bb but also in any dominator of exit_bb. 3. Allow speculative load motion. 4. Perform a store-motion pass before actual ifcvt pass: if (c) *out = expr1; else *out = expr2; will be converted into: if (c) tmp1 = expr1; else tmp2 = expr2; # tmp3 = PHI <tmp1, tmp2> *out = tmp3; 5. Allow several ifs in a loop body. Bootstrapped and tested on powerpc-linux. Committed to autovect-branch. -- Victor 2006-05-07 Victor Kaplansky <victork@il.ibm.com> * tree-if-conv.c (store_movable_loop_p): New. (store_movable_modify_expr_p): New. (last_store_found): New. (remove_all_phi_uses): New. (remove_store): New. (sink_store): New. (store_motion): New. (tree_if_conversion): Add call to store_movable_loop_p, store_motion and update_ssa. (if_convertible_modify_expr_p): Remove check of tree_could_trap_p on loads, Replace call to bb_with_exit_edge_p by dominated_by_p. (store_movable_stmt_p): New. (if_convertible_loop_p): Single call to calculate_dominance_info. (ifc_temp_var): Remove call to is_gimple_reg. (main_tree_if_conversion): add call to dump_tree_ssa. (see attachment file: autovect.ifcvt.patch.txt) (See attached file: autovect.ifcvt.patch.txt)
Attachment:
autovect.ifcvt.patch.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |