summaryrefslogtreecommitdiffstats
path: root/flang/include/flang/Optimizer/HLFIR/HLFIROps.td
diff options
context:
space:
mode:
Diffstat (limited to 'flang/include/flang/Optimizer/HLFIR/HLFIROps.td')
-rw-r--r--flang/include/flang/Optimizer/HLFIR/HLFIROps.td13
1 files changed, 10 insertions, 3 deletions
diff --git a/flang/include/flang/Optimizer/HLFIR/HLFIROps.td b/flang/include/flang/Optimizer/HLFIR/HLFIROps.td
index c82eae154d31..743a6c98ec1a 100644
--- a/flang/include/flang/Optimizer/HLFIR/HLFIROps.td
+++ b/flang/include/flang/Optimizer/HLFIR/HLFIROps.td
@@ -1358,7 +1358,9 @@ def hlfir_YieldOp : hlfir_Op<"yield", [Terminator, ParentOneOf<["RegionAssignOp"
let assemblyFormat = "$entity attr-dict `:` type($entity) custom<YieldOpCleanup>($cleanup)";
}
-def hlfir_ElementalAddrOp : hlfir_Op<"elemental_addr", [Terminator, HasParent<"RegionAssignOp">, RecursiveMemoryEffects, RecursivelySpeculatable, hlfir_ElementalOpInterface]> {
+def hlfir_ElementalAddrOp : hlfir_Op<"elemental_addr", [Terminator, HasParent<"RegionAssignOp">,
+ RecursiveMemoryEffects, RecursivelySpeculatable, hlfir_ElementalOpInterface,
+ AttrSizedOperandSegments]> {
let summary = "Yield the address of a vector subscripted variable inside an hlfir.region_assign";
let description = [{
Special terminator node for the left-hand side region of an hlfir.region_assign
@@ -1398,6 +1400,7 @@ def hlfir_ElementalAddrOp : hlfir_Op<"elemental_addr", [Terminator, HasParent<"R
let arguments = (ins
fir_ShapeType:$shape,
+ Optional<AnyPolymorphicObject>:$mold,
Variadic<AnyIntegerType>:$typeparams,
OptionalAttr<UnitAttr>:$unordered
);
@@ -1406,11 +1409,15 @@ def hlfir_ElementalAddrOp : hlfir_Op<"elemental_addr", [Terminator, HasParent<"R
MaxSizedRegion<1>:$cleanup);
let builders = [
- OpBuilder<(ins "mlir::Value":$shape, CArg<"bool", "false">:$isUnordered)>
+ OpBuilder<(ins "mlir::Value":$shape,
+ CArg<"mlir::Value", "{}">:$mold,
+ CArg<"mlir::ValueRange", "{}">:$typeparams,
+ CArg<"bool", "false">:$isUnordered)>
];
let assemblyFormat = [{
- $shape (`typeparams` $typeparams^)? (`unordered` $unordered^)?
+ $shape (`mold` $mold^)? (`typeparams` $typeparams^)?
+ (`unordered` $unordered^)?
attr-dict `:` type(operands) $body
custom<YieldOpCleanup>($cleanup)}];