'use strict'; module.exports = { memref_dialect : $ => choice( // operation ::= `memref.assume_alignment` $memref `,` // $alignment attr-dict `:` type($memref) seq('memref.assume_alignment', field('memref', $.value_use), ',', field('alignment', $.integer_literal), field('attributes', optional($.attribute)), field('return', $._type_annotation)), // operation ::= `memref.alloc` `(`$dynamicSizes`)` (`` `[` // $symbolOperands^ `]`)? attr-dict // `:` type($memref) // operation ::= `memref.alloca` `(`$dynamicSizes`)` (`` // `[` $symbolOperands^ `]`)? attr-dict // `:` type($memref) seq(choice('memref.alloc', 'memref.alloca'), field('dynamicSizes', $._value_use_list_parens), field('symbolOperands', optional($._dense_idx_list)), field('attributes', optional($.attribute)), field('return', $._type_annotation)), // operation ::= `memref.cast` $source attr-dict `:` // type($source) `to` type($dest) seq('memref.cast', field('in', $.value_use), field('attributes', optional($.attribute)), field('return', $._type_annotation)), // operation ::= `memref.copy` $source `,` $target // attr-dict // `:` type($source) `to` type($target) seq('memref.copy', field('source', $.value_use), ',', field('target', $.value_use), field('attributes', optional($.attribute)), field('return', $._type_annotation)), // operation ::= `memref.collapse_shape` $src // $reassociation attr-dict // `:` type($src) `into` type($result) // operation ::= `memref.expand_shape` $src $reassociation // attr-dict // `:` type($src) `into` type($result) seq(choice('memref.collapse_shape', 'memref.expand_shape'), field('source', $.value_use), field('reassociation', $.nested_idx_list), field('attributes', optional($.attribute)), field('return', $._type_annotation)), // operation ::= `memref.dealloc` $memref attr-dict `:` // type($memref) seq('memref.dealloc', field('memref', $.value_use), field('attributes', optional($.attribute)), field('return', $._type_annotation)), // operation ::= `memref.dim` attr-dict $source `,` $index // `:` type($source) seq('memref.dim', field('attributes', optional($.attribute)), field('source', $.value_use), ',', field('index', $.value_use), field('return', $._type_annotation)), // operation ::= `memref.load` $memref `[` $indices `]` // attr-dict `:` type($memref) seq('memref.load', field('memref', seq($.value_use, $._dense_idx_list)), field('attributes', optional($.attribute)), field('return', $._type_annotation)), seq('memref.prefetch', field('source', $.value_use), field('indices', optional($._dense_idx_list)), ',', field('isWrite', $.isWrite_attr), ',', field('localityHint', $.localityHint_attr), ',', field('isDataCache', $.isDataCache_attr), field('attributes', optional($.attribute)), field('return', $._type_annotation)), // operation ::= `memref.rank` $memref attr-dict `:` // type($memref) seq('memref.rank', field('memref', $.value_use), field('attributes', optional($.attribute)), field('return', $._type_annotation)), // operation ::= `memref.realloc` $source (`(` // $dynamicResultSize^ `)`)? attr-dict // `:` type($source) `to` type(results) seq('memref.realloc', field('source', $.value_use), field('dynamicResultSize', optional($._value_use_list_parens)), field('attributes', optional($.attribute)), field('return', $._type_annotation)), // operation ::= `memref.reinterpret_cast` $source `to` // `offset` `` `:` // custom($offsets, // $static_offsets) // `` `,` `sizes` `` `:` // custom($sizes, // $static_sizes) // `` `,` `strides` `` `:` // custom($strides, // $static_strides) attr-dict `:` // type($source) `to` type($result) seq('memref.reinterpret_cast', field('source', $.value_use), token('to'), field('offset', seq(token('offset'), ':', $._dense_idx_list, ',')), field('sizes', seq(token('sizes'), ':', $._dense_idx_list, ',')), field('strides', seq(token('strides'), ':', $._dense_idx_list)), field('attributes', optional($.attribute)), field('return', $._type_annotation)), // operation ::= `memref.reshape` $source `(` $shape `)` // attr-dict // `:` functional-type(operands, results) seq('memref.reshape', field('source', $.value_use), field('shape', seq('(', $.value_use, ')')), field('attributes', optional($.attribute)), field('return', $._function_type_annotation)), // operation ::= `memref.store` $value `,` $memref `[` // $indices `]` attr-dict // `:` type($memref) seq('memref.store', field('source', $.value_use), ',', field('destination', $.value_use), field('indices', $._dense_idx_list), field('attributes', optional($.attribute)), field('return', $._type_annotation)), // operation ::= `memref.subview` $source `` // custom($offsets, // $static_offsets) // custom($sizes, // $static_sizes) // custom($strides, // $static_strides) attr-dict `:` // type($source) `to` type($result) seq('memref.subview', field('source', $.value_use), field('offsets', $._dense_idx_list), field('sizes', $._dense_idx_list), field('strides', $._dense_idx_list), field('attributes', optional($.attribute)), field('return', $._type_annotation)), // operation ::= `memref.view` $source `[` $byte_shift `]` // `` `[` $sizes `]` attr-dict // `:` type($source) `to` type(results) seq('memref.view', field('source', $.value_use), field('byte_shift', $._dense_idx_list), field('sizes', $._dense_idx_list), field('attributes', optional($.attribute)), field('return', $._type_annotation))) }