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

Alexey Bataev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 23 06:25:02 PDT 2018


ABataev added inline comments.


================
Comment at: lib/Transforms/Vectorize/SLPVectorizer.cpp:3112
+      int MaxDist = 0;
+      while (Bundle) {
+        int Dist = std::distance(BB->begin(), Bundle->Inst->getIterator());
----------------
dtemirbulatov wrote:
> dtemirbulatov wrote:
> > ABataev wrote:
> > > dtemirbulatov wrote:
> > > > ABataev wrote:
> > > > > Why you can't put bundles in the list in the right order: from the very first instruction to the very last?
> > > > I could do this in scheduleBlock() function with a queue, but that could add additional complexity.
> > > Could you explain why?
> > One instruction could belong to one or more separate bundles... and while we try to change order in bundles at scheduleBlock() we have to update ScheduleDataMap, ExtraScheduleDataMap.
> I mean pseudo operation could occur in more than one bundle.
But these schedule bundles must have different scheduling region id and they must be in a different bundles, why their order changes?


https://reviews.llvm.org/D28907





More information about the llvm-commits mailing list