This is the mail archive of the
mailing list for the GCC project.
Re: vectorization cost macro TARGET_VECTORIZE_ADD_STMT_COST
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Ajit Kumar Agarwal <ajit dot kumar dot agarwal at xilinx dot com>
- Cc: Jeff Law <law at redhat dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, Vinod Kathail <vinodk at xilinx dot com>, Shail Aditya Gupta <shailadi at xilinx dot com>, Vidhumouli Hunsigida <vidhum at xilinx dot com>, Nagaraju Mekala <nmekala at xilinx dot com>
- Date: Mon, 3 Aug 2015 11:28:47 +0200
- Subject: Re: vectorization cost macro TARGET_VECTORIZE_ADD_STMT_COST
- Authentication-results: sourceware.org; auth=none
- References: <37378DC5BCD0EE48BA4B082E0B55DFAA4295355B at XAP-PVEXMBX02 dot xlnx dot xilinx dot com>
On Sun, Aug 2, 2015 at 4:13 PM, Ajit Kumar Agarwal
> The definition of the following macro that determine the statement cost that adds to vectorization cost.
> #define TARGET_VECTORIZE_ADD_STMT_COST.
> In the implementation of the above macro the following is done for many vectorization supported architectures like i386, ARM.
> if (where == vect_body && stmt_info && stmt_in_inner_loop_p (stmt_info))
> count *= 50; /* FIXME. */
> I have the following questions.
> 1. Why the multiplication factor of 50 is choosen?
It's a wild guess. See tree-vect-loop.c:vect_get_single_scalar_iteration_cost.
> 2. The comment mentions that the inner loop relative to the loop being vectorized is added more weight. If more weight is added to
> the inner loop for the loop being vectorized, the chances of vectorizing the inner loop decreases. Why the inner loop cost is increased
> with relative to the loop being vectorized?
In fact adding more weight to the inner loop increases the chance of
vectorizing it (if vectorizing the inner loop is profitable).
Both scalar and vector cost get biased by a factor of 50 (we assume 50
iterations of the inner loop for one iteration of the
outer loop), so a non-profitable vectorization in the outer loop can
be offsetted by profitable inner loop vectorization.
Yes, '50' can be improved if we actually know the iteration count of
the inner loop or if we have profile-feedback.
> Thanks & Regards