[all-commits] [llvm/llvm-project] 10b99e: [SandboxVec][BottomUpVec] Separate vectorization d...

vporpo via All-commits all-commits at lists.llvm.org
Thu Feb 20 10:21:47 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 10b99e97ff866b43569531b890c11b4a3011f6a2
      https://github.com/llvm/llvm-project/commit/10b99e97ff866b43569531b890c11b4a3011f6a2
  Author: vporpo <vporpodas at google.com>
  Date:   2025-02-20 (Thu, 20 Feb 2025)

  Changed paths:
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/InstrMaps.h
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h
    M llvm/lib/Transforms/Vectorize/SandboxVectorizer/InstrMaps.cpp
    M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
    M llvm/test/Transforms/SandboxVectorizer/bottomup_basic.ll
    M llvm/test/Transforms/SandboxVectorizer/scheduler.ll
    M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/InstrMapsTest.cpp
    M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/LegalityTest.cpp

  Log Message:
  -----------
  [SandboxVec][BottomUpVec] Separate vectorization decisions from code generation (#127727)

Up until now the generation of vector instructions was taking place
during the top-down post-order traversal of vectorizeRec(). The issue
with this approach is that the vector instructions emitted during the
traversal can be reordered by the scheduler, making it challenging to
place them without breaking the def-before-uses rule.

With this patch we separate the vectorization decisions (done in
`vectorizeRec()`) from the code generation phase (`emitVectors()`). The
vectorization decisions are stored in the `Actions` vector and are used
by `emitVectors()` to drive code generation.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list