[PATCH v2] Rerun loop-header-copying just before vectorization

Alan Lawrence alan.lawrence@arm.com
Fri Jun 19 17:37:00 GMT 2015


This is a respin of https://gcc.gnu.org/ml/gcc-patches/2015-05/msg02139.html . 
Changes are:

    * Separate the two passes by descending from a common base class, allowing 
different predicates;
    * Test flag_tree_vectorize, and loop->force_vectorize/dont_vectorize - this 
fixes the test failing before;
    * Simplify the check for "code after exit edge";
    * Revert unnecessary changes to pass_tree_loop_init::execute;
    * Revert change to slp-perm-7 test (following fix by Marc Glisse)

Bootstrapped + check-gcc on aarch64 and x86_64 (linux).

gcc/ChangeLog:

	* tree-pass.h (make_pass_ch_vect): New.
	* passes.def: Add pass_ch_vect just before pass_if_conversion.

	* tree-ssa-loop-ch.c (pass_ch_base, pass_ch_vect, pass_data_ch_vect,
	pass_ch::process_loop_p): New.
	(pass_ch): Extend pass_ch_base.

	(pass_ch::execute): Move all but loop_optimizer_init/finalize to...
	(pass_ch_base::execute): ...here.

gcc/testsuite/ChangeLog:

	* gcc.dg/vect/vect-strided-a-u16-i4.c (main1): Narrow scope of x,y,z,w.
	of unsigned
	* gcc.dg/vect/vect-ifcvt-11.c: New.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rerun-loop-ch-2.patch
Type: text/x-patch
Size: 7442 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20150619/a36f2397/attachment.bin>


More information about the Gcc-patches mailing list