xref: /llvm-project/mlir/utils/vim/syntax/mlir.vim (revision 6ad6b00f6a47cd23b882f65ba6da45e227ba536a)
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