1e8d43cafSUday Bondhugula" Vim syntax file 2e8d43cafSUday Bondhugula" Language: mlir 3e8d43cafSUday Bondhugula" Maintainer: The MLIR team, http://github.com/tensorflow/mlir/ 4e8d43cafSUday Bondhugula" Version: $Revision$ 520d3e71cSUday Bondhugula" Some parts adapted from the LLVM vim syntax file. 6e8d43cafSUday Bondhugula 7e8d43cafSUday Bondhugulaif version < 600 8e8d43cafSUday Bondhugula syntax clear 9e8d43cafSUday Bondhugulaelseif exists("b:current_syntax") 10e8d43cafSUday Bondhugula finish 11e8d43cafSUday Bondhugulaendif 12e8d43cafSUday Bondhugula 13e8d43cafSUday Bondhugulasyn case match 14e8d43cafSUday Bondhugula 15e8d43cafSUday Bondhugula" Types. 16b8cc449bSUday Bondhugula" 17*6ad6b00fSCullen Rhodessyn keyword mlirType index f16 f32 f64 bf16 18b8cc449bSUday Bondhugula" Signless integer types. 19e8d43cafSUday Bondhugulasyn match mlirType /\<i\d\+\>/ 20b8cc449bSUday Bondhugula" Unsigned integer types. 21b8cc449bSUday Bondhugulasyn match mlirType /\<ui\d\+\>/ 22b8cc449bSUday Bondhugula" Signed integer types. 23b8cc449bSUday Bondhugulasyn match mlirType /\<si\d\+\>/ 2420d3e71cSUday Bondhugula 2520d3e71cSUday Bondhugula" Elemental types inside memref, tensor, or vector types. 26*6ad6b00fSCullen Rhodessyn match mlirType /x\s*\zs\(bf16|f16\|f32\|f64\|i\d\+\|ui\d\+\|si\d\+\)/ 2720d3e71cSUday Bondhugula 2820d3e71cSUday Bondhugula" Shaped types. 2920d3e71cSUday Bondhugulasyn match mlirType /\<memref\ze\s*<.*>/ 3020d3e71cSUday Bondhugulasyn match mlirType /\<tensor\ze\s*<.*>/ 3120d3e71cSUday Bondhugulasyn match mlirType /\<vector\ze\s*<.*>/ 3220d3e71cSUday Bondhugula 3320d3e71cSUday Bondhugula" vector types inside memref or tensor. 3420d3e71cSUday Bondhugulasyn match mlirType /x\s*\zsvector/ 35e8d43cafSUday Bondhugula 36e8d43cafSUday Bondhugula" Operations. 37b8cc449bSUday Bondhugula" TODO: this list is not exhaustive. 38b8cc449bSUday Bondhugulasyn keyword mlirOps alloc alloca addf addi and call call_indirect cmpf cmpi 39b8cc449bSUday Bondhugulasyn keyword mlirOps constant dealloc divf dma_start dma_wait dim exp 40444822d7SSean Silvasyn keyword mlirOps getTensor index_cast load log memref_cast 41b8cc449bSUday Bondhugulasyn keyword mlirOps memref_shape_cast mulf muli negf powf prefetch rsqrt sitofp 42129d6e55SSean Silvasyn keyword mlirOps splat store select sqrt subf subi subview tanh 43b8cc449bSUday Bondhugulasyn keyword mlirOps view 44e8d43cafSUday Bondhugula 45f1b92218SBoian Petkantchin" Math ops. 46f1b92218SBoian Petkantchinsyn match mlirOps /\<math\.erf\>/ 47f1b92218SBoian Petkantchin 48e8d43cafSUday Bondhugula" Affine ops. 49e8d43cafSUday Bondhugulasyn match mlirOps /\<affine\.apply\>/ 50e8d43cafSUday Bondhugulasyn match mlirOps /\<affine\.dma_start\>/ 51e8d43cafSUday Bondhugulasyn match mlirOps /\<affine\.dma_wait\>/ 52e8d43cafSUday Bondhugulasyn match mlirOps /\<affine\.for\>/ 53e8d43cafSUday Bondhugulasyn match mlirOps /\<affine\.if\>/ 54e8d43cafSUday Bondhugulasyn match mlirOps /\<affine\.load\>/ 55b8cc449bSUday Bondhugulasyn match mlirOps /\<affine\.parallel\>/ 5647034c4bSUday Bondhugulasyn match mlirOps /\<affine\.prefetch\>/ 57e8d43cafSUday Bondhugulasyn match mlirOps /\<affine\.store\>/ 5818c8c934SUday Bondhugulasyn match mlirOps /\<scf\.execute_region\>/ 5918c8c934SUday Bondhugulasyn match mlirOps /\<scf\.for\>/ 6018c8c934SUday Bondhugulasyn match mlirOps /\<scf\.if\>/ 6118c8c934SUday Bondhugulasyn match mlirOps /\<scf\.yield\>/ 62e8d43cafSUday Bondhugula 6320d3e71cSUday Bondhugula" TODO: dialect name prefixed ops (llvm or std). 6420d3e71cSUday Bondhugula 65e8d43cafSUday Bondhugula" Keywords. 66e8d43cafSUday Bondhugulasyn keyword mlirKeyword 67136d78caSUday Bondhugula \ affine_map 68136d78caSUday Bondhugula \ affine_set 69ca23bd78SUday Bondhugula \ dense 70e8d43cafSUday Bondhugula \ else 71e8d43cafSUday Bondhugula \ func 72ca23bd78SUday Bondhugula \ module 73e8d43cafSUday Bondhugula \ return 74e8d43cafSUday Bondhugula \ step 75e8d43cafSUday Bondhugula \ to 76e8d43cafSUday Bondhugula 77e8d43cafSUday Bondhugula" Misc syntax. 7820d3e71cSUday Bondhugula 79e8d43cafSUday Bondhugulasyn match mlirNumber /-\?\<\d\+\>/ 8020d3e71cSUday Bondhugula" Match numbers even in shaped types. 8120d3e71cSUday Bondhugulasyn match mlirNumber /-\?\<\d\+\ze\s*x/ 8220d3e71cSUday Bondhugulasyn match mlirNumber /x\s*\zs-\?\d\+\ze\s*x/ 8320d3e71cSUday Bondhugula 84e8d43cafSUday Bondhugulasyn match mlirFloat /-\?\<\d\+\.\d*\(e[+-]\d\+\)\?\>/ 85e8d43cafSUday Bondhugulasyn match mlirFloat /\<0x\x\+\>/ 86e8d43cafSUday Bondhugulasyn keyword mlirBoolean true false 87b08ede43SSergei Grechanik" Spell checking is enabled only in comments by default. 88b08ede43SSergei Grechaniksyn match mlirComment /\/\/.*$/ contains=@Spell 89e8d43cafSUday Bondhugulasyn region mlirString start=/"/ skip=/\\"/ end=/"/ 90e8d43cafSUday Bondhugulasyn match mlirLabel /[-a-zA-Z$._][-a-zA-Z$._0-9]*:/ 91b08ede43SSergei Grechanik" Prefixed identifiers usually used for ssa values and symbols. 9220d3e71cSUday Bondhugulasyn match mlirIdentifier /[%@][a-zA-Z$._-][a-zA-Z0-9$._-]*/ 93b08ede43SSergei Grechaniksyn match mlirIdentifier /[%@]\d\+\>/ 94b08ede43SSergei Grechanik" Prefixed identifiers usually used for blocks. 95b08ede43SSergei Grechaniksyn match mlirBlockIdentifier /\^[a-zA-Z$._-][a-zA-Z0-9$._-]*/ 96b08ede43SSergei Grechaniksyn match mlirBlockIdentifier /\^\d\+\>/ 97b08ede43SSergei Grechanik" Prefixed identifiers usually used for types. 98b08ede43SSergei Grechaniksyn match mlirTypeIdentifier /![a-zA-Z$._-][a-zA-Z0-9$._-]*/ 99b08ede43SSergei Grechaniksyn match mlirTypeIdentifier /!\d\+\>/ 100b08ede43SSergei Grechanik" Prefixed identifiers usually used for attribute aliases and result numbers. 101b08ede43SSergei Grechaniksyn match mlirAttrIdentifier /#[a-zA-Z$._-][a-zA-Z0-9$._-]*/ 102b08ede43SSergei Grechaniksyn match mlirAttrIdentifier /#\d\+\>/ 103e8d43cafSUday Bondhugula 104e8d43cafSUday Bondhugula" Syntax-highlight lit test commands and bug numbers. 105e8d43cafSUday Bondhugulasyn match mlirSpecialComment /\/\/\s*RUN:.*$/ 106e8d43cafSUday Bondhugulasyn match mlirSpecialComment /\/\/\s*CHECK:.*$/ 107e8d43cafSUday Bondhugulasyn match mlirSpecialComment "\v\/\/\s*CHECK-(NEXT|NOT|DAG|SAME|LABEL):.*$" 108e8d43cafSUday Bondhugulasyn match mlirSpecialComment /\/\/\s*expected-error.*$/ 109e8d43cafSUday Bondhugulasyn match mlirSpecialComment /\/\/\s*expected-remark.*$/ 110e8d43cafSUday Bondhugulasyn match mlirSpecialComment /;\s*XFAIL:.*$/ 111e8d43cafSUday Bondhugulasyn match mlirSpecialComment /\/\/\s*PR\d*\s*$/ 112e8d43cafSUday Bondhugulasyn match mlirSpecialComment /\/\/\s*REQUIRES:.*$/ 113e8d43cafSUday Bondhugula 114e8d43cafSUday Bondhugulaif version >= 508 || !exists("did_c_syn_inits") 115e8d43cafSUday Bondhugula if version < 508 116e8d43cafSUday Bondhugula let did_c_syn_inits = 1 117e8d43cafSUday Bondhugula command -nargs=+ HiLink hi link <args> 118e8d43cafSUday Bondhugula else 119e8d43cafSUday Bondhugula command -nargs=+ HiLink hi def link <args> 120e8d43cafSUday Bondhugula endif 121e8d43cafSUday Bondhugula 122e8d43cafSUday Bondhugula HiLink mlirType Type 123e8d43cafSUday Bondhugula HiLink mlirOps Statement 124e8d43cafSUday Bondhugula HiLink mlirNumber Number 125e8d43cafSUday Bondhugula HiLink mlirComment Comment 126e8d43cafSUday Bondhugula HiLink mlirString String 127e8d43cafSUday Bondhugula HiLink mlirLabel Label 128e8d43cafSUday Bondhugula HiLink mlirKeyword Keyword 129e8d43cafSUday Bondhugula HiLink mlirBoolean Boolean 130e8d43cafSUday Bondhugula HiLink mlirFloat Float 131e8d43cafSUday Bondhugula HiLink mlirConstant Constant 132e8d43cafSUday Bondhugula HiLink mlirSpecialComment SpecialComment 133e8d43cafSUday Bondhugula HiLink mlirIdentifier Identifier 134b08ede43SSergei Grechanik HiLink mlirBlockIdentifier Label 135b08ede43SSergei Grechanik HiLink mlirTypeIdentifier Type 136b08ede43SSergei Grechanik HiLink mlirAttrIdentifier PreProc 137e8d43cafSUday Bondhugula 138e8d43cafSUday Bondhugula delcommand HiLink 139e8d43cafSUday Bondhugulaendif 140e8d43cafSUday Bondhugula 141e8d43cafSUday Bondhugulalet b:current_syntax = "mlir" 142