[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