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] |
Hi ALL, I decided to resend all patches related to extended if-conversion. Here is the first patch which contains minimal changes to current if-conversion pass. Note that FLAG_FORCE_VECTORIZE is temporarily set-up to false to not break algorithm. ChangeLog: 2014-11-12 Yuri Rumyantsev <ysrumyan@gmail.com> (flag_force_vectorize): New variable. (edge_predicate): New function. (set_edge_predicate): New function. (add_to_dst_predicate_list): Conditionally invoke add_to_predicate_list if destination block of edge is not always executed. Set-up predicate for critical edge. (if_convertible_phi_p): Accept phi nodes with more than two args if FLAG_FORCE_VECTORIZE was set-up. (if_convertible_stmt_p): Fix up pre-function comments. (all_preds_critical_p): New function. (if_convertible_bb_p): Use call of all_preds_critical_p to reject temporarily block if-conversion with incoming critical edges if FLAG_FORCE_VECTORIZE was not set-up. This restriction will be deleted after adding support for extended predication. (predicate_bbs): Skip loop exit block also.Invoke build2_loc to compute predicate instead of fold_build2_loc. Add zeroing of edge 'aux' field. (tree_if_conversion): Temporarily set-up FLAG_FORCE_VECTORIZE to false. Nullify 'aux' field of edges for blocks with two successors.
Attachment:
if-conv.patch1
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |