annotate mlir/utils/vim/syntax/mlir.vim @ 236:c4bab56944e8 llvm-original

LLVM 16
author kono
date Wed, 09 Nov 2022 17:45:10 +0900
parents 5f17cb93ff66
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 " Vim syntax file
anatofuz
parents:
diff changeset
2 " Language: mlir
anatofuz
parents:
diff changeset
3 " Maintainer: The MLIR team, http://github.com/tensorflow/mlir/
anatofuz
parents:
diff changeset
4 " Version: $Revision$
anatofuz
parents:
diff changeset
5 " Some parts adapted from the LLVM vim syntax file.
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 if version < 600
anatofuz
parents:
diff changeset
8 syntax clear
anatofuz
parents:
diff changeset
9 elseif exists("b:current_syntax")
anatofuz
parents:
diff changeset
10 finish
anatofuz
parents:
diff changeset
11 endif
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 syn case match
anatofuz
parents:
diff changeset
14
anatofuz
parents:
diff changeset
15 " Types.
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
16 "
236
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
17 syn keyword mlirType index f16 f32 f64 bf16
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
18 " Signless integer types.
150
anatofuz
parents:
diff changeset
19 syn match mlirType /\<i\d\+\>/
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
20 " Unsigned integer types.
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
21 syn match mlirType /\<ui\d\+\>/
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
22 " Signed integer types.
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
23 syn match mlirType /\<si\d\+\>/
150
anatofuz
parents:
diff changeset
24
anatofuz
parents:
diff changeset
25 " Elemental types inside memref, tensor, or vector types.
236
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
26 syn match mlirType /x\s*\zs\(bf16|f16\|f32\|f64\|i\d\+\|ui\d\+\|si\d\+\)/
150
anatofuz
parents:
diff changeset
27
anatofuz
parents:
diff changeset
28 " Shaped types.
anatofuz
parents:
diff changeset
29 syn match mlirType /\<memref\ze\s*<.*>/
anatofuz
parents:
diff changeset
30 syn match mlirType /\<tensor\ze\s*<.*>/
anatofuz
parents:
diff changeset
31 syn match mlirType /\<vector\ze\s*<.*>/
anatofuz
parents:
diff changeset
32
anatofuz
parents:
diff changeset
33 " vector types inside memref or tensor.
anatofuz
parents:
diff changeset
34 syn match mlirType /x\s*\zsvector/
anatofuz
parents:
diff changeset
35
anatofuz
parents:
diff changeset
36 " Operations.
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
37 " TODO: this list is not exhaustive.
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
38 syn keyword mlirOps alloc alloca addf addi and call call_indirect cmpf cmpi
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
39 syn keyword mlirOps constant dealloc divf dma_start dma_wait dim exp
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
40 syn keyword mlirOps getTensor index_cast load log memref_cast
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
41 syn keyword mlirOps memref_shape_cast mulf muli negf powf prefetch rsqrt sitofp
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
42 syn keyword mlirOps splat store select sqrt subf subi subview tanh
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
43 syn keyword mlirOps view
150
anatofuz
parents:
diff changeset
44
236
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
45 " Math ops.
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
46 syn match mlirOps /\<math\.erf\>/
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
47
150
anatofuz
parents:
diff changeset
48 " Affine ops.
anatofuz
parents:
diff changeset
49 syn match mlirOps /\<affine\.apply\>/
anatofuz
parents:
diff changeset
50 syn match mlirOps /\<affine\.dma_start\>/
anatofuz
parents:
diff changeset
51 syn match mlirOps /\<affine\.dma_wait\>/
anatofuz
parents:
diff changeset
52 syn match mlirOps /\<affine\.for\>/
anatofuz
parents:
diff changeset
53 syn match mlirOps /\<affine\.if\>/
anatofuz
parents:
diff changeset
54 syn match mlirOps /\<affine\.load\>/
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
55 syn match mlirOps /\<affine\.parallel\>/
150
anatofuz
parents:
diff changeset
56 syn match mlirOps /\<affine\.prefetch\>/
anatofuz
parents:
diff changeset
57 syn match mlirOps /\<affine\.store\>/
223
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 221
diff changeset
58 syn match mlirOps /\<scf\.execute_region\>/
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 221
diff changeset
59 syn match mlirOps /\<scf\.for\>/
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 221
diff changeset
60 syn match mlirOps /\<scf\.if\>/
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 221
diff changeset
61 syn match mlirOps /\<scf\.yield\>/
150
anatofuz
parents:
diff changeset
62
anatofuz
parents:
diff changeset
63 " TODO: dialect name prefixed ops (llvm or std).
anatofuz
parents:
diff changeset
64
anatofuz
parents:
diff changeset
65 " Keywords.
anatofuz
parents:
diff changeset
66 syn keyword mlirKeyword
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
67 \ affine_map
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
68 \ affine_set
150
anatofuz
parents:
diff changeset
69 \ dense
anatofuz
parents:
diff changeset
70 \ else
anatofuz
parents:
diff changeset
71 \ func
anatofuz
parents:
diff changeset
72 \ module
anatofuz
parents:
diff changeset
73 \ return
anatofuz
parents:
diff changeset
74 \ step
anatofuz
parents:
diff changeset
75 \ to
anatofuz
parents:
diff changeset
76
anatofuz
parents:
diff changeset
77 " Misc syntax.
anatofuz
parents:
diff changeset
78
anatofuz
parents:
diff changeset
79 syn match mlirNumber /-\?\<\d\+\>/
anatofuz
parents:
diff changeset
80 " Match numbers even in shaped types.
anatofuz
parents:
diff changeset
81 syn match mlirNumber /-\?\<\d\+\ze\s*x/
anatofuz
parents:
diff changeset
82 syn match mlirNumber /x\s*\zs-\?\d\+\ze\s*x/
anatofuz
parents:
diff changeset
83
anatofuz
parents:
diff changeset
84 syn match mlirFloat /-\?\<\d\+\.\d*\(e[+-]\d\+\)\?\>/
anatofuz
parents:
diff changeset
85 syn match mlirFloat /\<0x\x\+\>/
anatofuz
parents:
diff changeset
86 syn keyword mlirBoolean true false
236
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
87 " Spell checking is enabled only in comments by default.
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
88 syn match mlirComment /\/\/.*$/ contains=@Spell
150
anatofuz
parents:
diff changeset
89 syn region mlirString start=/"/ skip=/\\"/ end=/"/
anatofuz
parents:
diff changeset
90 syn match mlirLabel /[-a-zA-Z$._][-a-zA-Z$._0-9]*:/
236
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
91 " Prefixed identifiers usually used for ssa values and symbols.
150
anatofuz
parents:
diff changeset
92 syn match mlirIdentifier /[%@][a-zA-Z$._-][a-zA-Z0-9$._-]*/
236
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
93 syn match mlirIdentifier /[%@]\d\+\>/
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
94 " Prefixed identifiers usually used for blocks.
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
95 syn match mlirBlockIdentifier /\^[a-zA-Z$._-][a-zA-Z0-9$._-]*/
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
96 syn match mlirBlockIdentifier /\^\d\+\>/
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
97 " Prefixed identifiers usually used for types.
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
98 syn match mlirTypeIdentifier /![a-zA-Z$._-][a-zA-Z0-9$._-]*/
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
99 syn match mlirTypeIdentifier /!\d\+\>/
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
100 " Prefixed identifiers usually used for attribute aliases and result numbers.
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
101 syn match mlirAttrIdentifier /#[a-zA-Z$._-][a-zA-Z0-9$._-]*/
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
102 syn match mlirAttrIdentifier /#\d\+\>/
150
anatofuz
parents:
diff changeset
103
anatofuz
parents:
diff changeset
104 " Syntax-highlight lit test commands and bug numbers.
anatofuz
parents:
diff changeset
105 syn match mlirSpecialComment /\/\/\s*RUN:.*$/
anatofuz
parents:
diff changeset
106 syn match mlirSpecialComment /\/\/\s*CHECK:.*$/
anatofuz
parents:
diff changeset
107 syn match mlirSpecialComment "\v\/\/\s*CHECK-(NEXT|NOT|DAG|SAME|LABEL):.*$"
anatofuz
parents:
diff changeset
108 syn match mlirSpecialComment /\/\/\s*expected-error.*$/
anatofuz
parents:
diff changeset
109 syn match mlirSpecialComment /\/\/\s*expected-remark.*$/
anatofuz
parents:
diff changeset
110 syn match mlirSpecialComment /;\s*XFAIL:.*$/
anatofuz
parents:
diff changeset
111 syn match mlirSpecialComment /\/\/\s*PR\d*\s*$/
anatofuz
parents:
diff changeset
112 syn match mlirSpecialComment /\/\/\s*REQUIRES:.*$/
anatofuz
parents:
diff changeset
113
anatofuz
parents:
diff changeset
114 if version >= 508 || !exists("did_c_syn_inits")
anatofuz
parents:
diff changeset
115 if version < 508
anatofuz
parents:
diff changeset
116 let did_c_syn_inits = 1
anatofuz
parents:
diff changeset
117 command -nargs=+ HiLink hi link <args>
anatofuz
parents:
diff changeset
118 else
anatofuz
parents:
diff changeset
119 command -nargs=+ HiLink hi def link <args>
anatofuz
parents:
diff changeset
120 endif
anatofuz
parents:
diff changeset
121
anatofuz
parents:
diff changeset
122 HiLink mlirType Type
anatofuz
parents:
diff changeset
123 HiLink mlirOps Statement
anatofuz
parents:
diff changeset
124 HiLink mlirNumber Number
anatofuz
parents:
diff changeset
125 HiLink mlirComment Comment
anatofuz
parents:
diff changeset
126 HiLink mlirString String
anatofuz
parents:
diff changeset
127 HiLink mlirLabel Label
anatofuz
parents:
diff changeset
128 HiLink mlirKeyword Keyword
anatofuz
parents:
diff changeset
129 HiLink mlirBoolean Boolean
anatofuz
parents:
diff changeset
130 HiLink mlirFloat Float
anatofuz
parents:
diff changeset
131 HiLink mlirConstant Constant
anatofuz
parents:
diff changeset
132 HiLink mlirSpecialComment SpecialComment
anatofuz
parents:
diff changeset
133 HiLink mlirIdentifier Identifier
236
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
134 HiLink mlirBlockIdentifier Label
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
135 HiLink mlirTypeIdentifier Type
c4bab56944e8 LLVM 16
kono
parents: 223
diff changeset
136 HiLink mlirAttrIdentifier PreProc
150
anatofuz
parents:
diff changeset
137
anatofuz
parents:
diff changeset
138 delcommand HiLink
anatofuz
parents:
diff changeset
139 endif
anatofuz
parents:
diff changeset
140
anatofuz
parents:
diff changeset
141 let b:current_syntax = "mlir"