[PATCH] D28907: [SLP] Fix for PR30787: Failure to beneficially vectorize 'copyable' elements in integer binary ops.

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 14 07:47:18 PDT 2017


RKSimon accepted this revision.
RKSimon added a comment.
This revision is now accepted and ready to land.

LGTM with a few last minor comments.



================
Comment at: lib/Transforms/Vectorize/SLPVectorizer.cpp:2151
+  assert(E->State.Opcode && allSameType(VL) && allSameBlock(VL) && "Invalid VL");
+  Instruction *VL0 = cast<Instruction>(E->State.OpValue);
+  unsigned ShuffleOrOp = E->State.IsAltShuffle ?
----------------
auto *VL0


================
Comment at: lib/Transforms/Vectorize/SLPVectorizer.cpp:3603
-        ChunkPos = 0;
-      }
       SD = allocateScheduleDataChunks();
----------------
Is this an NFC pre-commit?


================
Comment at: lib/Transforms/Vectorize/SLPVectorizer.cpp:3984
+      if (SameOpcode)
+        LastScheduledInst = pickedInst;
       BundleMember = BundleMember->NextInBundle;
----------------
```
if (pickedInst == BundleMember->OpValue) {
  if (LastScheduledInst->getNextNode() != pickedInst) {
    BS->BB->getInstList().remove(pickedInst);
    BS->BB->getInstList().insert(LastScheduledInst->getIterator(), pickedInst);
  }
  LastScheduledInst = pickedInst;
}
```


https://reviews.llvm.org/D28907





More information about the llvm-commits mailing list