[6/7] Explicitly classify vector loads and stores

Jeff Law law@redhat.com
Tue Jun 21 22:35:00 GMT 2016


On 06/15/2016 02:52 AM, Richard Sandiford wrote:
> This is the main patch in the series.  It adds a new enum and routines
> for classifying a vector load or store implementation.
>
> Tested on aarch64-linux-gnu and x86_64-linux-gnu.  OK to install?
>
> Thanks,
> Richard
>
>
> gcc/
> 	* tree-vectorizer.h (vect_memory_access_type): New enum.
> 	(_stmt_vec_info): Add a memory_access_type field.
> 	(STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
> 	(vect_model_store_cost): Take an access type instead of a boolean.
> 	(vect_model_load_cost): Likewise.
> 	* tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
> 	vect_model_store_cost and vect_model_load_cost.
> 	* tree-vect-stmts.c (vec_load_store_type): New enum.
> 	(vect_model_store_cost): Take an access type instead of a
> 	store_lanes_p boolean.  Simplify tests.
> 	(vect_model_load_cost): Likewise, but for load_lanes_p.
> 	(get_group_load_store_type, get_load_store_type): New functions.
> 	(vectorizable_store): Use get_load_store_type.  Record the access
> 	type in STMT_VINFO_MEMORY_ACCESS_TYPE.
> 	(vectorizable_load): Likewise.
> 	(vectorizable_mask_load_store): Likewise.  Replace is_store
> 	variable with vls_type.
OK.  Looks like a nice cleanup to me.  If there's something that got 
goof'd along the way, I trust you'll deal with it appropriately -- I 
didn't try to map from every conditional back in the original code to 
the conditionals in the new code.


Jeff



More information about the Gcc-patches mailing list