LLVM/project 200d55cllvm/test/Transforms/SandboxVectorizer topdown_vec.ll external_uses.ll

Nits, remove topdown vec checks from external_uses.ll
DeltaFile
+0-68llvm/test/Transforms/SandboxVectorizer/external_uses.ll
+18-18llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+18-862 files

LLVM/project e32d061llvm/lib/Transforms/Vectorize/SandboxVectorizer VecUtils.cpp

Add a cl::opt to limit the number of users visited
DeltaFile
+12-1llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+12-11 files

LLVM/project ce71db6llvm/test/Transforms/SandboxVectorizer topdown_vec.ll

Remove stores
DeltaFile
+34-207llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+34-2071 files

LLVM/project d28df1allvm/lib/Transforms/Vectorize/SandboxVectorizer VecUtils.cpp, llvm/test/Transforms/SandboxVectorizer topdown_vec.ll

[SBVec] Track claimed users across bundles
DeltaFile
+38-13llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+13-3llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+51-162 files

LLVM/project b135bf9llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer VecUtils.h, llvm/lib/Transforms/Vectorize/SandboxVectorizer VecUtils.cpp

Refactor getNextUserBundles
DeltaFile
+179-97llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+41-63llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+20-11llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
+2-0llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
+242-1714 files

LLVM/project b627ee1llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer VecUtils.h, llvm/lib/Transforms/Vectorize/SandboxVectorizer VecUtils.cpp

Pass Claimed by ref to getNextUserBundles

A user should not be claimed by multiple successful
bundles. Added a test for this.
DeltaFile
+60-7llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+3-3llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+3-1llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+2-1llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
+68-124 files

LLVM/project 597a786llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes BottomUpVec.h, llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes BottomUpVec.cpp

[SBVec] Refactor BottomUpVec pass for clarity and maintainability

- Corrected comments to clarify the direction of def-use and use-def chains.
- Changed the initialization of the SchedDirection variable to improve clarity.
- Updated documentation in vectorizeRec() to better describe the purpose of UserBndl.
- Removed outdated TODO comment regarding top-down vectorization scheduling.
DeltaFile
+5-4llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h
+1-6llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+6-102 files

LLVM/project 068c811llvm/lib/Transforms/Vectorize/SandboxVectorizer VecUtils.cpp, llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes BottomUpVec.cpp

[SBVec] Add top-down vectorization to the unified Sandbox Vectorizer

Extend the Sandbox Vectorizer's `bottom-up-vec` pass so a single
implementation can vectorize in either direction, and add the top-down
strategy that walks def-use chains forward from a seed.

Direction selection
--------------------
The pass direction is chosen from the Region's auxiliary pass argument:
"bottom-up" (or empty, the default) and "top-down" map onto a
SchedDirection, and any other value is rejected with a fatal usage error.
The vectorizer always runs in the same direction as the scheduler.

Top-down traversal
------------------
Bottom-up starts from a seed slice (e.g. stores to consecutive addresses)
and recurses into operands. Top-down instead starts from a seed of
consecutive loads and recurses into *users*:


    [32 lines not shown]
DeltaFile
+441-0llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+229-0llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
+90-27llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+79-0llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+68-9llvm/test/Transforms/SandboxVectorizer/pack.ll
+68-0llvm/test/Transforms/SandboxVectorizer/external_uses.ll
+975-362 files not shown
+1,017-488 files

LLVM/project c0560dfllvm/lib/Transforms/Vectorize/SandboxVectorizer VecUtils.cpp, llvm/unittests/Transforms/Vectorize/SandboxVectorizer VecUtilsTest.cpp

Refactor VecUtilsTest for readability
DeltaFile
+163-134llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
+8-3llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+171-1372 files

LLVM/project 07ab599llvm/test/Transforms/SandboxVectorizer topdown_vec.ll

Add 3-way test to check for consecutive matching
DeltaFile
+45-0llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+45-01 files

LLVM/project 13ea339llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes BottomUpVec.cpp, llvm/test/Transforms/SandboxVectorizer topdown_vec.ll

3 element tests

- nits
DeltaFile
+130-5llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+0-4llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+130-92 files

LLVM/project e7e4a47llvm/lib/Transforms/Vectorize/SandboxVectorizer DependencyGraph.cpp, llvm/unittests/Transforms/Vectorize/SandboxVectorizer DependencyGraphTest.cpp

[SandboxIR] Fix notifyEraseInstr to skip scheduled neighbors

Guard both loops with !PredN->scheduled() / !SuccN->scheduled() so
scheduled neighbors are left untouched, and add a unit test that erases
a node with one scheduled and one unscheduled predecessor to cover the
fix.
DeltaFile
+43-0llvm/unittests/Transforms/Vectorize/SandboxVectorizer/DependencyGraphTest.cpp
+3-1llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp
+46-12 files

LLVM/project 6c5dfefllvm/include/llvm/IR PatternMatch.h, llvm/include/llvm/Support PatternMatchHelpers.h

[PatternMatchHelpers] Introduce m_Unless (NFC) (#212454)

Introduce m_Unless from PatternMatch, that inverts a match, in
PatternMatchHelpers.
DeltaFile
+0-14llvm/include/llvm/IR/PatternMatch.h
+6-7llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+13-0llvm/include/llvm/Support/PatternMatchHelpers.h
+19-213 files

LLVM/project 6162922clang/lib/Driver/ToolChains HIPSPV.h HIPSPV.cpp, clang/test/Driver hipspv-link-static-library.hip hipspv-pass-plugin.hip

Revert "[HIPSPV] Add in-tree SPIR-V backend support for chipStar" (#213088)

Reverts llvm/llvm-project#206910 
which broke buildbot:
https://lab.llvm.org/buildbot/#/builders/144/builds/60707
DeltaFile
+33-123clang/lib/Driver/ToolChains/HIPSPV.cpp
+27-39clang/test/Driver/hipspv-toolchain.hip
+9-13clang/test/Driver/hipspv-pass-plugin.hip
+2-5clang/lib/Driver/ToolChains/HIPSPV.h
+1-2llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp
+1-2clang/test/Driver/hipspv-link-static-library.hip
+73-1846 files

LLVM/project 63b3eb1clang/docs UsersManual.md, clang/docs/analyzer/user-docs CommandLineUsage.rst

Revert "[clang][docs] Update CommandLineUsage and UsersManual with some flags (#209519)" (#213092)

This PR reverts commit e4c2875c397861ea45a0cca05107d91d7d785d03.
Reverting because of:
https://github.com/llvm/llvm-project/actions/runs/30559163159/job/90927389811#step:10:822
DeltaFile
+1-37clang/docs/UsersManual.md
+0-18clang/docs/analyzer/user-docs/CommandLineUsage.rst
+1-552 files

LLVM/project b205683llvm/test/Transforms/SandboxVectorizer topdown_vec.ll external_uses.ll

Nits, remove topdown vec checks from external_uses.ll
DeltaFile
+0-68llvm/test/Transforms/SandboxVectorizer/external_uses.ll
+18-18llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+18-862 files

LLVM/project 94cfa34llvm/lib/Transforms/Vectorize/SandboxVectorizer VecUtils.cpp

Add a cl::opt to limit the number of users visited
DeltaFile
+12-1llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+12-11 files

LLVM/project 4d86d5allvm/lib/Transforms/Vectorize/SandboxVectorizer VecUtils.cpp, llvm/unittests/Transforms/Vectorize/SandboxVectorizer VecUtilsTest.cpp

Refactor VecUtilsTest for readability
DeltaFile
+163-134llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
+8-3llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+171-1372 files

LLVM/project 46264a6llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes BottomUpVec.cpp, llvm/test/Transforms/SandboxVectorizer topdown_vec.ll

3 element tests

- nits
DeltaFile
+130-5llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+0-4llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+130-92 files

LLVM/project 6cc9b78llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer VecUtils.h, llvm/lib/Transforms/Vectorize/SandboxVectorizer VecUtils.cpp

Refactor getNextUserBundles
DeltaFile
+179-97llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+41-63llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+20-11llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
+2-0llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
+242-1714 files

LLVM/project fec3696llvm/test/Transforms/SandboxVectorizer topdown_vec.ll

Remove stores
DeltaFile
+34-207llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+34-2071 files

LLVM/project 99c7124llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer VecUtils.h, llvm/lib/Transforms/Vectorize/SandboxVectorizer VecUtils.cpp

Pass Claimed by ref to getNextUserBundles

A user should not be claimed by multiple successful
bundles. Added a test for this.
DeltaFile
+60-7llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+3-3llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+3-1llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+2-1llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
+68-124 files

LLVM/project 915dca9llvm/test/Transforms/SandboxVectorizer topdown_vec.ll

Add 3-way test to check for consecutive matching
DeltaFile
+45-0llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+45-01 files

LLVM/project 16dafefllvm/lib/Transforms/Vectorize/SandboxVectorizer VecUtils.cpp, llvm/test/Transforms/SandboxVectorizer topdown_vec.ll

[SBVec] Track claimed users across bundles
DeltaFile
+38-13llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+13-3llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+51-162 files

LLVM/project defbc2bllvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes BottomUpVec.h, llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes BottomUpVec.cpp

[SBVec] Refactor BottomUpVec pass for clarity and maintainability

- Corrected comments to clarify the direction of def-use and use-def chains.
- Changed the initialization of the SchedDirection variable to improve clarity.
- Updated documentation in vectorizeRec() to better describe the purpose of UserBndl.
- Removed outdated TODO comment regarding top-down vectorization scheduling.
DeltaFile
+5-4llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h
+1-6llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+6-102 files

LLVM/project 558bd9fllvm/lib/Transforms/Vectorize/SandboxVectorizer VecUtils.cpp, llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes BottomUpVec.cpp

[SBVec] Add top-down vectorization to the unified Sandbox Vectorizer

Extend the Sandbox Vectorizer's `bottom-up-vec` pass so a single
implementation can vectorize in either direction, and add the top-down
strategy that walks def-use chains forward from a seed.

Direction selection
--------------------
The pass direction is chosen from the Region's auxiliary pass argument:
"bottom-up" (or empty, the default) and "top-down" map onto a
SchedDirection, and any other value is rejected with a fatal usage error.
The vectorizer always runs in the same direction as the scheduler.

Top-down traversal
------------------
Bottom-up starts from a seed slice (e.g. stores to consecutive addresses)
and recurses into operands. Top-down instead starts from a seed of
consecutive loads and recurses into *users*:


    [32 lines not shown]
DeltaFile
+441-0llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+229-0llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
+90-27llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+79-0llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+68-9llvm/test/Transforms/SandboxVectorizer/pack.ll
+68-0llvm/test/Transforms/SandboxVectorizer/external_uses.ll
+975-362 files not shown
+1,017-488 files

LLVM/project 1a4fbe7llvm/unittests/Transforms/Vectorize/SandboxVectorizer DependencyGraphTest.cpp

[SandboxIR] Fix notifyEraseInstr to skip scheduled neighbors

Guard both loops with !PredN->scheduled() / !SuccN->scheduled() so
scheduled neighbors are left untouched, and add a unit test that erases
a node with one scheduled and one unscheduled predecessor to cover the
fix.
DeltaFile
+3-3llvm/unittests/Transforms/Vectorize/SandboxVectorizer/DependencyGraphTest.cpp
+3-31 files

LLVM/project b1cf39dllvm/lib/CodeGen/GlobalISel IRTranslator.cpp, llvm/test/CodeGen/AArch64/GlobalISel irtranslator-delayed-stack-protector.ll irtranslator-stack-protector-trap-unreachable.ll

[GlobalISel] Use integer type for LOAD_STACK_GUARD (#212202)
DeltaFile
+4-4llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-stack-protector-trap-unreachable.ll
+2-2llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-delayed-stack-protector.ll
+1-2llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+7-83 files

LLVM/project 412a617llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Revert adding `widenUnitStridedLoadStore` helper

We now rely on the actual consequtive memops widening in a single place (both
original and speculated/mv'ed).
DeltaFile
+31-42llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+31-421 files

LLVM/project 23e0063llvm/lib/Transforms/Vectorize/SandboxVectorizer DependencyGraph.cpp, llvm/unittests/Transforms/Vectorize/SandboxVectorizer DependencyGraphTest.cpp

[SandboxIR] Fix notifyEraseInstr to skip scheduled neighbors

Guard both loops with !PredN->scheduled() / !SuccN->scheduled() so
scheduled neighbors are left untouched, and add a unit test that erases
a node with one scheduled and one unscheduled predecessor to cover the
fix.
DeltaFile
+43-0llvm/unittests/Transforms/Vectorize/SandboxVectorizer/DependencyGraphTest.cpp
+3-1llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp
+46-12 files