"Yangfei (Felix)" <felix.y...@huawei.com> writes:
> Hi,
>
> PR: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95570 
>     
> Here, we are doing loop versioning for alignment. The only dr here is a 
> gather-statter operation: x[start][i]. 
> Scalar evolution analysis for this dr failed, so DR_STEP is NULL_TREE, which 
> leads to the segfault. 
> But scatter-gather operation should be filtered out in 
> vect_enhance_data_refs_alignment. 
> There are similar issues in vect_verify_datarefs_alignment, 
> vect_get_peeling_costs_all_drs and vect_peeling_supportable. 
> Proposed patch adds back the necessary tests.  Bootstrapped and tested on 
> aarch64-linux-gnu & x86_64-linux-gnu. 
>
> Test coverage: 
> Existing tests [1] and newly added test ensures coverage for all the changes 
> except for the changes in vect_peeling_supportable. 
> Currently I don't have a test to cover the changes in 
> vect_peeling_supportable.  Should we keep them? 

Rather than add several instances of the new test, I think it
would make sense to split the (hopefully) correct conditions in
vect_enhance_data_refs_alignment out into a subroutine and use
it in the other sites.  Doing that for vect_peeling_supportable
would then be justifiable as a clean-up.

How about something like vect_relevant_for_alignment_p as the
name of the subroutine?

Thanks,
Richard

Reply via email to