forked from OSchip/llvm-project
Add AutomaticAllocationScope to memref.alloca_scope
This change adds `AutomaticAllocationScope` to the memref.alloca_scope op. Additionally, it also clarifies that alloca_scope is is conceptually a passthrough operation. Reviewed By: ftynse, bondhugula Differential Revision: https://reviews.llvm.org/D104227
This commit is contained in:
parent
b88fa0e39f
commit
c83e696732
|
@ -204,7 +204,8 @@ def MemRef_AllocaOp : AllocLikeOp<"alloca", AutomaticAllocationScopeResource> {
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
def MemRef_AllocaScopeOp : MemRef_Op<"alloca_scope",
|
||||
[DeclareOpInterfaceMethods<RegionBranchOpInterface>,
|
||||
[AutomaticAllocationScope,
|
||||
DeclareOpInterfaceMethods<RegionBranchOpInterface>,
|
||||
SingleBlockImplicitTerminator<"AllocaScopeReturnOp">,
|
||||
RecursiveSideEffects,
|
||||
NoRegionArguments]> {
|
||||
|
@ -223,7 +224,9 @@ def MemRef_AllocaScopeOp : MemRef_Op<"alloca_scope",
|
|||
```
|
||||
|
||||
Here, `%myalloca` memref is valid within the explicitly delimited scope
|
||||
and is automatically deallocated at the end of the given region.
|
||||
and is automatically deallocated at the end of the given region. Conceptually,
|
||||
`memref.alloca_scope` is a passthrough operation with
|
||||
`AutomaticAllocationScope` that spans the body of the region within the operation.
|
||||
|
||||
`memref.alloca_scope` may also return results that are defined in the nested
|
||||
region. To return a value, one should use `memref.alloca_scope.return`
|
||||
|
|
Loading…
Reference in New Issue