[PATCH] More compile-time saving in BB vectorization

Christophe Lyon christophe.lyon@linaro.org
Fri Nov 13 08:31:00 GMT 2015


On 12 November 2015 at 21:04, Christophe Lyon
<christophe.lyon@linaro.org> wrote:
> On 12 November 2015 at 16:49, Andreas Schwab <schwab@suse.de> wrote:
>> Richard Biener <rguenther@suse.de> writes:
>>
>>>       * tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment):
>>>       Declare.
>>>       (vect_analyze_data_refs_alignment): Make loop vect specific.
>>>       (vect_verify_datarefs_alignment): Likewise.
>>>       * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependences):
>>>       Add missing continue.
>>>       (vect_compute_data_ref_alignment): Export.
>>>       (vect_compute_data_refs_alignment): Merge into...
>>>       (vect_analyze_data_refs_alignment): ... this.
>>>       (verify_data_ref_alignment): Split out from ...
>>>       (vect_verify_datarefs_alignment): ... here.
>>>       (vect_slp_analyze_and_verify_node_alignment): New function.
>>>       (vect_slp_analyze_and_verify_instance_alignment): Likewise.
>>>       * tree-vect-slp.c (vect_supported_load_permutation_p): Remove
>>>       misplaced checks on alignment.
>>>       (vect_slp_analyze_bb_1): Add fatal output parameter.  Do
>>>       alignment analysis after SLP discovery and do it per instance.
>>>       (vect_slp_bb): When vect_slp_analyze_bb_1 fatally failed do not
>>>       bother to re-try using different vector sizes.
>>
>> This breaks libgfortran on ia64:
>>
>> ../../../libgfortran/generated/matmul_c4.c: In function 'matmul_c4':
>> ../../../libgfortran/generated/matmul_c4.c:79:1: internal compiler error: in vectorizable_store, at tree-vect-stmts.c:5651
>>  matmul_c4 (gfc_array_c4 * const restrict retarray,
>>  ^
>> 0x40000000010ff01f vectorizable_store
>>         ../../gcc/tree-vect-stmts.c:5651
>> 0x4000000001115b5f vect_transform_stmt(gimple*, gimple_stmt_iterator*, bool*, _slp_tree*, _slp_instance*)
>>         ../../gcc/tree-vect-stmts.c:8003
>> 0x400000000114df1f vect_schedule_slp_instance
>>         ../../gcc/tree-vect-slp.c:3484
>> 0x4000000001154d6f vect_schedule_slp(vec_info*)
>>         ../../gcc/tree-vect-slp.c:3549
>> 0x40000000011562bf vect_slp_bb(basic_block_def*)
>>         ../../gcc/tree-vect-slp.c:2543
>> 0x4000000001159f2f execute
>>         ../../gcc/tree-vectorizer.c:734
>>
>
> Same problem on armeb.
>
Now fixed at r230260 (pr68308).

Thanks.


>
>> Andreas.
>>
>> --
>> Andreas Schwab, SUSE Labs, schwab@suse.de
>> GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
>> "And now for something completely different."



More information about the Gcc-patches mailing list