re PR tree-optimization/56270 (loop over array of struct float causes compiler error...
commit01d8bf070a2ca6a10c66a81f1b5e1c00856b5bc4
authorRichard Biener <rguenther@suse.de>
Fri, 19 Apr 2013 13:37:12 +0000 (19 13:37 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 19 Apr 2013 13:37:12 +0000 (19 13:37 +0000)
tree296dc78a662c0699454b4483380a99d413a514d7
parentede22fc330f055810555d867de5a8e3d3f94ad63
re PR tree-optimization/56270 (loop over array of struct float causes compiler error: segmentation fault)

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

* tree-vectorizer.h (struct _slp_instance): Move load_permutation
member ...
(struct _slp_tree): ... here.  Make it a vector of unsigned ints.
(SLP_INSTANCE_LOAD_PERMUTATION): Remove.
(SLP_TREE_LOAD_PERMUTATION): Add.
(vect_transform_slp_perm_load): Adjust prototype.
* tree-vect-slp.c (vect_free_slp_tree): Adjust.
(vect_free_slp_instance): Likewise.
(vect_create_new_slp_node): Likewise.
(vect_supported_slp_permutation_p): Remove.
(vect_slp_rearrange_stmts): Adjust.
(vect_supported_load_permutation_p): Likewise.  Inline
vect_supported_slp_permutation_p here.
(vect_analyze_slp_instance): Compute load permutations per
slp node instead of per instance.
(vect_get_slp_defs): Adjust.
(vect_transform_slp_perm_load): Likewise.
(vect_schedule_slp_instance): Remove redundant code.
(vect_schedule_slp): Remove hack for PR56270, add it ...
* tree-vect-stmts.c (vectorizable_load): ... here, do not
CSE loads for SLP.  Adjust.

From-SVN: r198095
gcc/ChangeLog
gcc/tree-vect-slp.c
gcc/tree-vect-stmts.c
gcc/tree-vectorizer.h