brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.4 KiB · f465808 Raw
79 lines · javascript
1'use strict';2 3module.exports = {4  linalg_dialect : $ => prec.right(choice(5                     seq(choice(6                             'linalg.batch_matmul',7                             'linalg.batch_matvec',8                             'linalg.batch_reduce_matmul', 'linalg.broadcast',9                             'linalg.conv_1d_ncw_fcw', 'linalg.conv_1d_nwc_wcf',10                             'linalg.conv_1d', 'linalg.conv_2d_nchw_fchw',11                             'linalg.conv_2d_ngchw_fgchw',12                             'linalg.conv_2d_nhwc_fhwc',13                             'linalg.conv_2d_nhwc_hwcf',14                             'linalg.conv_2d_nhwc_hwcf_q', 'linalg.conv_2d',15                             'linalg.conv_3d_ndhwc_dhwcf',16                             'linalg.conv_3d_ndhwc_dhwcf_q', 'linalg.conv_3d',17                             'linalg.copy', 'linalg.depthwise_conv_1d_nwc_wc',18                             'linalg.depthwise_conv_1d_nwc_wcm',19                             'linalg.depthwise_conv_2d_nchw_chw',20                             'linalg.depthwise_conv_2d_nhwc_hwc',21                             'linalg.depthwise_conv_2d_nhwc_hwc_q',22                             'linalg.depthwise_conv_2d_nhwc_hwcm',23                             'linalg.depthwise_conv_2d_nhwc_hwcm_q',24                             'linalg.depthwise_conv_3d_ndhwc_dhwc',25                             'linalg.depthwise_conv_3d_ndhwc_dhwcm',26                             'linalg.dot', 'linalg.elemwise_binary',27                             'linalg.elemwise_unary', 'linalg.fill',28                             'linalg.fill_rng_2d', 'linalg.matmul',29                             'linalg.matmul_unsigned', 'linalg.matvec',30                             'linalg.mmt4d', 'linalg.pooling_nchw_max',31                             'linalg.pooling_nchw_sum',32                             'linalg.pooling_ncw_max', 'linalg.pooling_ncw_sum',33                             'linalg.pooling_ndhwc_max',34                             'linalg.pooling_ndhwc_min',35                             'linalg.pooling_ndhwc_sum',36                             'linalg.pooling_nhwc_max',37                             'linalg.pooling_nhwc_max_unsigned',38                             'linalg.pooling_nhwc_min',39                             'linalg.pooling_nhwc_min_unsigned',40                             'linalg.pooling_nhwc_sum',41                             'linalg.pooling_nwc_max',42                             'linalg.pooling_nwc_max_unsigned',43                             'linalg.pooling_nwc_min',44                             'linalg.pooling_nwc_min_unsigned',45                             'linalg.pooling_nwc_sum',46                             'linalg.quantized_batch_matmul',47                             'linalg.quantized_matmul', 'linalg.vecmat'),48                         repeat1($._ins_outs_attributes),49                         field('return', optional($._function_return))),50 51                     seq('linalg.generic', repeat1($._ins_outs_attributes),52                         field('body', $.region),53                         field('return', optional($._function_return))),54 55                     // operation ::= `linalg.index` $dim attr-dict `:`56                     // type($result)57                     seq('linalg.index', field('dimension', $.integer_literal),58                         field('attributes', optional($.attribute)),59                         field('return', $._type_annotation)),60 61                     seq(choice('linalg.map', 'linalg.reduce'),62                         repeat1($._ins_outs_attributes),63                         field('arguments', $.block_arg_list),64                         field('body', $.region),65                         field('return', optional($._function_return))),66 67                     seq('linalg.yield',68                         field('attributes', optional($.attribute)),69                         field('results', optional($._value_use_type_list))))),70 71  _ins_outs_attributes : $ => choice($._ins, $._outs, $.attribute,72                                     $._attribute_entry_list),73  _ins : $ => seq(token('ins'), '(', $._value_use_type_list, ')'),74  _outs : $ => seq(token('outs'), '(', $._value_use_type_list, ')'),75  _attribute_entry_list : $ => seq($.bare_attribute_entry,76                                   repeat(seq(',', $.bare_attribute_entry))),77  bare_attribute_entry : $ => seq($.bare_id, '=', $.attribute_value)78}79