diff --git a/mlir/include/mlir/Dialect/Affine/IR/AffineOps.td b/mlir/include/mlir/Dialect/Affine/IR/AffineOps.td --- a/mlir/include/mlir/Dialect/Affine/IR/AffineOps.td +++ b/mlir/include/mlir/Dialect/Affine/IR/AffineOps.td @@ -107,7 +107,7 @@ } def AffineForOp : Affine_Op<"for", - [ImplicitAffineTerminator, RecursiveSideEffects, + [AutomaticAllocationScope, ImplicitAffineTerminator, RecursiveSideEffects, DeclareOpInterfaceMethods]> { let summary = "for operation"; let description = [{ @@ -608,7 +608,7 @@ } def AffineParallelOp : Affine_Op<"parallel", - [ImplicitAffineTerminator, RecursiveSideEffects, + [AutomaticAllocationScope, ImplicitAffineTerminator, RecursiveSideEffects, DeclareOpInterfaceMethods, MemRefsNormalizable]> { let summary = "multi-index parallel band operation"; let description = [{ diff --git a/mlir/include/mlir/Dialect/GPU/GPUOps.td b/mlir/include/mlir/Dialect/GPU/GPUOps.td --- a/mlir/include/mlir/Dialect/GPU/GPUOps.td +++ b/mlir/include/mlir/Dialect/GPU/GPUOps.td @@ -439,7 +439,7 @@ let hasVerifier = 1; } -def GPU_LaunchOp : GPU_Op<"launch">, +def GPU_LaunchOp : GPU_Op<"launch", [AutomaticAllocationScope]>, Arguments<(ins Index:$gridSizeX, Index:$gridSizeY, Index:$gridSizeZ, Index:$blockSizeX, Index:$blockSizeY, Index:$blockSizeZ, Optional:$dynamicSharedMemorySize)>, diff --git a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td --- a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td +++ b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td @@ -80,7 +80,8 @@ def ClauseDefaultAttr : EnumAttr; -def ParallelOp : OpenMP_Op<"parallel", [AttrSizedOperandSegments, +def ParallelOp : OpenMP_Op<"parallel", [AutomaticAllocationScope, + AttrSizedOperandSegments, DeclareOpInterfaceMethods]> { let summary = "parallel construct"; let description = [{ diff --git a/mlir/include/mlir/Dialect/SCF/SCFOps.td b/mlir/include/mlir/Dialect/SCF/SCFOps.td --- a/mlir/include/mlir/Dialect/SCF/SCFOps.td +++ b/mlir/include/mlir/Dialect/SCF/SCFOps.td @@ -110,7 +110,7 @@ } def ForOp : SCF_Op<"for", - [DeclareOpInterfaceMethods, + [AutomaticAllocationScope, DeclareOpInterfaceMethods, DeclareOpInterfaceMethods, SingleBlockImplicitTerminator<"scf::YieldOp">, RecursiveSideEffects]> { @@ -404,7 +404,8 @@ } def ParallelOp : SCF_Op<"parallel", - [AttrSizedOperandSegments, + [AutomaticAllocationScope, + AttrSizedOperandSegments, DeclareOpInterfaceMethods, RecursiveSideEffects, SingleBlockImplicitTerminator<"scf::YieldOp">]> {