This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] tree level if-conversion for vectorizer
- From: Devang Patel <dpatel at apple dot com>
- To: Richard Henderson <rth at redhat dot com>
- Cc: Diego Novillo <dnovillo at redhat dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Dorit Naishlos <DORIT at il dot ibm dot com>, Ayal Zaks <ZAKS at il dot ibm dot com>
- Date: Wed, 1 Sep 2004 13:05:32 -0700
- Subject: Re: [PATCH] tree level if-conversion for vectorizer
- References: <1093489060.32100.50.camel@localhost.localdomain> <397439F8-F724-11D8-B26E-000393A91CAA@apple.com> <20040826085655.GB3418@redhat.com> <8A2B21DE-F785-11D8-8706-000393A91CAA@apple.com> <20040826175940.GD5543@redhat.com> <704A4F05-F893-11D8-A1AD-000393A91CAA@apple.com> <20040830225141.GC3700@redhat.com> <80448B92-FB00-11D8-A1E0-000393A91CAA@apple.com> <20040831044334.GA4561@redhat.com> <3C950169-FB10-11D8-A1E0-000393A91CAA@apple.com> <20040831063608.GA5008@redhat.com>
I have addressed following feedback in this iteration:
o Remove tree-gimple.c change
o Update comments regarding vectorizer needs
o Create one temp., for condition, per block
o Allow only var decls as LHS for candidate assignments and expose
assignment. This may transform 'uninitialized use' into
'un-intentionally initialized use', but that is fine.
o Remove expr.c change from previous patch to allow (void)0 as one of
the COND_EXPR operand.
Bootstrapped on powerpc-darwin. DejaGNU test run is in progress. OK if
it succeeds ?
Thanks,
-
Devang
2004-09-01 Devang Patel <dpatel@apple.com>
* Makefile.in (OBJS-common): Add tree-if-conv.o
(tree-if-conv.o): New rule.
* cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT
flag.
(get_loop_body_in_bfs_order): New.
* cfgloop.h (get_loop_body_in_bfs_order): New.
* tree-flow.h (enum move_pos): Move here from ..
* tree-ssa-loop-im.c (enum move_pos): here.
(movement_possibility): Make externally visible.
* tree-optimize.c (init_tree_optimization_passes): New entry for
if conversion pass.
* tree-pass.h (pass_if_conversion): New.
* tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
* tree-if-conv.c: New file.
* doc/passes.texi: Document tree if-conversion pass.
* doc/tree-ssa.texi: Same.
testsuite:
* gcc.dg/tree-ssa/ifc-20040816-1.c: New test.
* gcc.dg/tree-ssa/ifc-20040816-2.c: New test.
Attachment:
ifc_mainline.take4.2.diff
Description: Binary data