[PATCH] Choose the best consecutive candidate for a store instruction in SLP vectorizer
Nadav Rotem
nrotem at apple.com
Mon Jun 15 09:10:11 PDT 2015
Wei,
Thanks for working on this. Did you run the llvm test suite? Are there any performance wins or compile time regressions?
I have a few comments below:
- for (unsigned j = 0; j < e; ++j) {
- if (i == j)
- continue;
- const DataLayout &DL = Stores[i]->getModule()->getDataLayout();
+ const DataLayout &DL = Stores[i]->getModule()->getDataLayout();
Please initialize ‘j' when you declare it. Also, why unsigned?
+ unsigned j;
+ // If a store has multiple consectutive store candidates, choose
+ // the immediate succeeding or preceding one.
+ for (j = i + 1; j < e; ++j) {
+ if (R.isConsecutiveAccess(Stores[i], Stores[j], DL)) {
+ Tails.insert(Stores[j]);
+ Heads.insert(Stores[i]);
+ ConsecutiveChain[Stores[i]] = Stores[j];
+ break;
+ }
+ }
Please document this line, or simplify it.
+ if (j < e)
+ continue;
At this point you are defining a new J variable, with a different type. This is confusing.
+ for (int j = i - 1; j >= 0; --j) {
Can you think of a way to write this code without code duplication?
Thanks,
Nadav
REPOSITORY
rL LLVM
http://reviews.llvm.org/D10445
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
More information about the llvm-commits
mailing list