[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()) {
----------------
jmmartinez wrote:

If at the end of this loop `F` doesn't have any more users we can call `F.eraseFromParent()` (we have to use `make_early_inc_range(M)`).

https://github.com/llvm/llvm-project/pull/185418


More information about the llvm-commits mailing list