2016-05-20 12:24 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Thu, May 19, 2016 at 9:40 PM, Ilya Enkovich <enkovich....@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