2013-04-17  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/56921
	* cfgloop.h (struct loop): Add simple_loop_desc member.
	(struct niter_desc): Mark with GTY(()).
	(simple_loop_desc): Do not use aux field but simple_loop_desc.
	* loop-iv.c (get_simple_loop_desc): Likewise.
	(free_simple_loop_desc): Likewise.

	Revert
	2013-04-16  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/56921
	* loop-init.c (pass_rtl_move_loop_invariants): Add
	TODO_do_not_ggc_collect to todo_flags_finish.
	(pass_rtl_unswitch): Same.
	(pass_rtl_unroll_and_peel_loops): Same.
	(pass_rtl_doloop): Same.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198025 138bc75d-0d04-0410-961f-82ee72b054a4
2013-04-17  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
	(vect_build_slp_tree): ... here.
	(vect_build_slp_tree_1): Compute which stmts of the SLP group
	match.  Remove special-casing of mismatched complex loads.
	(vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
	re-try the match with swapped commutative operands.
	(vect_supported_load_permutation_p): Remove special-casing of
	mismatched complex loads.
	(vect_analyze_slp_instance): Adjust.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198026 138bc75d-0d04-0410-961f-82ee72b054a4