[llvm] [SPIR-V] Add support for SPV_INTEL_masked_gather_scatter extension (PR #185418)
Juan Manuel Martinez CaamaƱo via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 10 03:26:08 PDT 2026
================
@@ -64,27 +60,34 @@ INITIALIZE_PASS(SPIRVConvertMaskedMemIntrinsics,
"spirv-convert-masked-mem-intrinsics",
"Convert masked memory intrinsics for SPIR-V", false, false)
-bool SPIRVConvertMaskedMemIntrinsics::runOnFunction(Function &F) {
+bool SPIRVConvertMaskedMemIntrinsics::runOnModule(Module &M) {
if (!TM)
return false;
- ToErase.clear();
- visit(F);
+ bool Changed = false;
+ SmallVector<IntrinsicInst *, 8> ToProcess;
- for (Instruction *I : ToErase)
- I->eraseFromParent();
+ for (Function &F : M) {
+ if (!F.isIntrinsic())
+ continue;
+ Intrinsic::ID IID = F.getIntrinsicID();
+ if (IID != Intrinsic::masked_gather && IID != Intrinsic::masked_scatter)
+ continue;
- return !ToErase.empty();
+ for (User *U : F.users()) {
+ if (auto *II = dyn_cast<IntrinsicInst>(U))
+ ToProcess.push_back(II);
+ }
----------------
jmmartinez wrote:
if you iterate over the users using `make_early_in_range(F.users())` you can avoid using the `ToProcess` list.
https://github.com/llvm/llvm-project/pull/185418
More information about the llvm-commits
mailing list