This is the mail archive of the
mailing list for the GCC project.
RE: vectorization cost macro TARGET_VECTORIZE_ADD_STMT_COST
- From: Ajit Kumar Agarwal <ajit dot kumar dot agarwal at xilinx dot com>
- To: Richard Biener <richard dot guenther at gmail 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: Tue, 4 Aug 2015 13:39:11 +0000
- Subject: RE: vectorization cost macro TARGET_VECTORIZE_ADD_STMT_COST
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=pass (sender IP is 188.8.131.52) smtp.mailfrom=xilinx.com; gcc.gnu.org; dkim=none (message not signed) header.d=none;
- References: <37378DC5BCD0EE48BA4B082E0B55DFAA4295355B at XAP-PVEXMBX02 dot xlnx dot xilinx dot com> <CAFiYyc0U_wXihDFWNA3nT6zyQcJ0Rx4DY0jV9m63NwNWK08Hbw at mail dot gmail dot com>
From: Richard Biener [mailto:firstname.lastname@example.org]
Sent: Monday, August 03, 2015 2:59 PM
To: Ajit Kumar Agarwal
Cc: Jeff Law; email@example.com; Vinod Kathail; Shail Aditya Gupta; Vidhumouli Hunsigida; Nagaraju Mekala
Subject: Re: vectorization cost macro TARGET_VECTORIZE_ADD_STMT_COST
On Sun, Aug 2, 2015 at 4:13 PM, Ajit Kumar Agarwal <firstname.lastname@example.org> wrote:
> 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 for the valuable information and suggestions.
Thanks & Regards
> Thanks & Regards