annotate mlir/utils/vim/syntax/mlir.vim @ 221:79ff65ed7e25

LLVM12 Original
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 15 Jun 2021 19:15:29 +0900
parents 1d019706d866
children 5f17cb93ff66
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 "
150
anatofuz
parents:
diff changeset
17 syn keyword mlirType index f16 f32 f64
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.
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
26 syn match mlirType /x\s*\zs\(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 " Standard dialect ops.
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
38 " TODO: this list is not exhaustive.
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
39 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
40 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
41 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
42 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
43 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
44 syn keyword mlirOps view
150
anatofuz
parents:
diff changeset
45
anatofuz
parents:
diff changeset
46 " Affine ops.
anatofuz
parents:
diff changeset
47 syn match mlirOps /\<affine\.apply\>/
anatofuz
parents:
diff changeset
48 syn match mlirOps /\<affine\.dma_start\>/
anatofuz
parents:
diff changeset
49 syn match mlirOps /\<affine\.dma_wait\>/
anatofuz
parents:
diff changeset
50 syn match mlirOps /\<affine\.for\>/
anatofuz
parents:
diff changeset
51 syn match mlirOps /\<affine\.if\>/
anatofuz
parents:
diff changeset
52 syn match mlirOps /\<affine\.load\>/
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
53 syn match mlirOps /\<affine\.parallel\>/
150
anatofuz
parents:
diff changeset
54 syn match mlirOps /\<affine\.prefetch\>/
anatofuz
parents:
diff changeset
55 syn match mlirOps /\<affine\.store\>/
anatofuz
parents:
diff changeset
56 syn match mlirOps /\<loop\.for\>/
anatofuz
parents:
diff changeset
57 syn match mlirOps /\<loop\.if\>/
anatofuz
parents:
diff changeset
58
anatofuz
parents:
diff changeset
59 " TODO: dialect name prefixed ops (llvm or std).
anatofuz
parents:
diff changeset
60
anatofuz
parents:
diff changeset
61 " Keywords.
anatofuz
parents:
diff changeset
62 syn keyword mlirKeyword
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
63 \ affine_map
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
64 \ affine_set
150
anatofuz
parents:
diff changeset
65 \ dense
anatofuz
parents:
diff changeset
66 \ else
anatofuz
parents:
diff changeset
67 \ func
anatofuz
parents:
diff changeset
68 \ module
anatofuz
parents:
diff changeset
69 \ return
anatofuz
parents:
diff changeset
70 \ step
anatofuz
parents:
diff changeset
71 \ to
anatofuz
parents:
diff changeset
72
anatofuz
parents:
diff changeset
73 " Misc syntax.
anatofuz
parents:
diff changeset
74
anatofuz
parents:
diff changeset
75 syn match mlirNumber /-\?\<\d\+\>/
anatofuz
parents:
diff changeset
76 " Match numbers even in shaped types.
anatofuz
parents:
diff changeset
77 syn match mlirNumber /-\?\<\d\+\ze\s*x/
anatofuz
parents:
diff changeset
78 syn match mlirNumber /x\s*\zs-\?\d\+\ze\s*x/
anatofuz
parents:
diff changeset
79
anatofuz
parents:
diff changeset
80 syn match mlirFloat /-\?\<\d\+\.\d*\(e[+-]\d\+\)\?\>/
anatofuz
parents:
diff changeset
81 syn match mlirFloat /\<0x\x\+\>/
anatofuz
parents:
diff changeset
82 syn keyword mlirBoolean true false
anatofuz
parents:
diff changeset
83 syn match mlirComment /\/\/.*$/
anatofuz
parents:
diff changeset
84 syn region mlirString start=/"/ skip=/\\"/ end=/"/
anatofuz
parents:
diff changeset
85 syn match mlirLabel /[-a-zA-Z$._][-a-zA-Z$._0-9]*:/
anatofuz
parents:
diff changeset
86 syn match mlirIdentifier /[%@][a-zA-Z$._-][a-zA-Z0-9$._-]*/
anatofuz
parents:
diff changeset
87 syn match mlirIdentifier /[%@!]\d\+\>/
anatofuz
parents:
diff changeset
88 syn match mlirMapSetOutline "#.*$"
anatofuz
parents:
diff changeset
89
anatofuz
parents:
diff changeset
90 " Syntax-highlight lit test commands and bug numbers.
anatofuz
parents:
diff changeset
91 syn match mlirSpecialComment /\/\/\s*RUN:.*$/
anatofuz
parents:
diff changeset
92 syn match mlirSpecialComment /\/\/\s*CHECK:.*$/
anatofuz
parents:
diff changeset
93 syn match mlirSpecialComment "\v\/\/\s*CHECK-(NEXT|NOT|DAG|SAME|LABEL):.*$"
anatofuz
parents:
diff changeset
94 syn match mlirSpecialComment /\/\/\s*expected-error.*$/
anatofuz
parents:
diff changeset
95 syn match mlirSpecialComment /\/\/\s*expected-remark.*$/
anatofuz
parents:
diff changeset
96 syn match mlirSpecialComment /;\s*XFAIL:.*$/
anatofuz
parents:
diff changeset
97 syn match mlirSpecialComment /\/\/\s*PR\d*\s*$/
anatofuz
parents:
diff changeset
98 syn match mlirSpecialComment /\/\/\s*REQUIRES:.*$/
anatofuz
parents:
diff changeset
99
anatofuz
parents:
diff changeset
100 if version >= 508 || !exists("did_c_syn_inits")
anatofuz
parents:
diff changeset
101 if version < 508
anatofuz
parents:
diff changeset
102 let did_c_syn_inits = 1
anatofuz
parents:
diff changeset
103 command -nargs=+ HiLink hi link <args>
anatofuz
parents:
diff changeset
104 else
anatofuz
parents:
diff changeset
105 command -nargs=+ HiLink hi def link <args>
anatofuz
parents:
diff changeset
106 endif
anatofuz
parents:
diff changeset
107
anatofuz
parents:
diff changeset
108 HiLink mlirType Type
anatofuz
parents:
diff changeset
109 HiLink mlirOps Statement
anatofuz
parents:
diff changeset
110 HiLink mlirMapSetOutline PreProc
anatofuz
parents:
diff changeset
111 HiLink mlirNumber Number
anatofuz
parents:
diff changeset
112 HiLink mlirComment Comment
anatofuz
parents:
diff changeset
113 HiLink mlirString String
anatofuz
parents:
diff changeset
114 HiLink mlirLabel Label
anatofuz
parents:
diff changeset
115 HiLink mlirKeyword Keyword
anatofuz
parents:
diff changeset
116 HiLink mlirBoolean Boolean
anatofuz
parents:
diff changeset
117 HiLink mlirFloat Float
anatofuz
parents:
diff changeset
118 HiLink mlirConstant Constant
anatofuz
parents:
diff changeset
119 HiLink mlirSpecialComment SpecialComment
anatofuz
parents:
diff changeset
120 HiLink mlirIdentifier Identifier
anatofuz
parents:
diff changeset
121
anatofuz
parents:
diff changeset
122 delcommand HiLink
anatofuz
parents:
diff changeset
123 endif
anatofuz
parents:
diff changeset
124
anatofuz
parents:
diff changeset
125 let b:current_syntax = "mlir"