[PATCH, vec-tails 04/10] Add masking cost

Ilya Enkovich enkovich.gnu@gmail.com
Fri May 20 09:44:00 GMT 2016


2016-05-20 12:24 GMT+03:00 Richard Biener <richard.guenther@gmail.com>:
> On Thu, May 19, 2016 at 9:40 PM, Ilya Enkovich <enkovich.gnu@gmail.com> wrote:
>> Hi,
>>
>> This patch extends vectorizer cost model to include masking cost by
>> adding new cost model locations and new target hook to compute
>> masking cost.
>
> Can you explain a bit why you add separate overall
> masking_prologue/body_cost rather
> than using the existing prologue/body cost for that?

When I make a decision I need vector loop cost without masking (what
we currently
have) and with masking (what I add).  This allows me to compute
profitability for
all options (scalar epilogue, combined epilogue, masked epilogue) and choose one
of them.  Using existing prologue/body cost would allow me compute masking
profitability with no fall back to scalar loop profitability.


>
> I realize that the current vectorizer cost infrastructure is a big
> mess, but isn't it possible
> to achieve what you did with the current add_stmt_cost hook?  (by
> inspecting stmt_info)

Cost of a statement and cost of masking a statement are different things.
Two hooks called for the same statement return different values. I can
add vect_cost_for_stmt enum elements to cover masking but I thought
having stmt_masking_cost would me more clear.

Thanks,
Ilya

>
> Richard.
>
>> Thanks,
>> Ilya



More information about the Gcc-patches mailing list