aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/iresolve.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-06-23 14:47:47 +0200
committerGiuliano Belinassi <giuliano.belinassi@usp.br>2020-08-17 13:14:40 -0300
commit31b3a35a880654857d22bfddc420fcdcfe060d69 (patch)
tree5abd2f7ce1712946f21d17d8e49a99921b55d2f8 /gcc/fortran/iresolve.c
parent1b891e1aeba5f1b034934f908225d00b4364311e (diff)
downloadgcc-31b3a35a880654857d22bfddc420fcdcfe060d69.zip
gcc-31b3a35a880654857d22bfddc420fcdcfe060d69.tar.gz
gcc-31b3a35a880654857d22bfddc420fcdcfe060d69.tar.bz2
emit SLP vectorized loads earlier
This makes sure to emit SLP vectorized loads where the first scalar load is. This makes SLP dependence checking more powerful because hoisting loads can use TBAA and it increases the freedom for vector placement when there are constraints from live lanes. Vectorized shifts block inserting vectorized stmts always after vectorized defs because it ends up using the original scalar operand even when the SLP graph indicates the shift operand is vectorized (and we actually emit and cost those stmts). vect_slp_analyze_and_verify_node_alignment shows we need alignment for too many places, this is a temporary solution and my plan is to have a single meta-info for a dataref group instead (also getting rid of DR_GROUP_FIRST/NEXT_ELEMENT). 2020-06-24 Richard Biener <rguenther@suse.de> * tree-vectorizer.h (vect_find_first_scalar_stmt_in_slp): Declare. * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Simplify for new position of vectorized SLP loads. (vect_slp_analyze_node_dependences): Adjust for it. (vect_slp_analyze_and_verify_node_alignment): Compute alignment for the first stmts dataref. * tree-vect-slp.c (vect_find_first_scalar_stmt_in_slp): New. (vect_schedule_slp_instance): Emit loads before the first scalar stmt. * tree-vect-stmts.c (vectorizable_load): Do what the comment says and use vect_find_first_scalar_stmt_in_slp.
Diffstat (limited to 'gcc/fortran/iresolve.c')
0 files changed, 0 insertions, 0 deletions