[PATCH] Calculate vectorization factor using the narrowest type instead of widest type

Chandler Carruth chandlerc at gmail.com
Tue Apr 14 08:44:25 PDT 2015


In http://reviews.llvm.org/D8943#155214, @hfinkel wrote:

> [+Arnold, Nadav,Chandler]
>
> If I understand this correctly, this will cause us to potentially generate wider vectors than we have underlying vector registers, and I think that, generically, this makes sense. Now that our X86 shuffle handling is sane, the splitting of wide vectors, and shuffling that you get from vector extends/truncates is hopefully not too bad. Other opinions?


I generally agree.

The key is that we should maximize the load/store bandwidth provided we have sufficient registers (see below).

> Did you see any performance changes on the test suite?

> 

> We might need to update the register-pressure heuristic (LoopVectorizationCostModel::calculateRegisterUsage()) to understand that very-wide vectors use multiple vector registers.


Yes, I think that is going to be the important to watch the register pressure heuristics.


http://reviews.llvm.org/D8943

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list