[all-commits] [llvm/llvm-project] db49a7: [SLP] Add a clarifying assert in block scheduling ...

Philip Reames via All-commits all-commits at lists.llvm.org
Fri Jan 28 11:09:16 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: db49a78900f5e4b59714565876b5dbb5e2dfe840
      https://github.com/llvm/llvm-project/commit/db49a78900f5e4b59714565876b5dbb5e2dfe840
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2022-01-28 (Fri, 28 Jan 2022)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  Log Message:
  -----------
  [SLP] Add a clarifying assert in block scheduling [NFC]

The fact we could have a block with a valid scheduling window, but nothing to schedule was surprising to me.  After digging through the code, this can only happen if we don't find anything to directly vectorize.  However, the reduction handling code relies on this mode, so we can't simply consider such trees unvectorizeable.  The assert conveys both that this situation can happen, but also that it can *only* happen for an immediate gather.

Context: We built the bundle before deciding that vectorization of a bundle is possible.  A side effect of bundle construction is manipulating the scheduling window, so a bundle which isn't vectorizable can cause the creation or expansion of a scheduling window.




More information about the All-commits mailing list