Mercurial > hg > CbC > CbC_llvm
diff mlir/utils/vim/syntax/mlir.vim @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | 2e18cbf3894f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mlir/utils/vim/syntax/mlir.vim Thu Feb 13 15:10:13 2020 +0900 @@ -0,0 +1,116 @@ +" Vim syntax file +" Language: mlir +" Maintainer: The MLIR team, http://github.com/tensorflow/mlir/ +" Version: $Revision$ +" Some parts adapted from the LLVM vim syntax file. + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syn case match + +" Types. +syn keyword mlirType index f16 f32 f64 +" Integer type. +syn match mlirType /\<i\d\+\>/ + +" Elemental types inside memref, tensor, or vector types. +syn match mlirType /x\s*\zs\(f16\|f32\|f64\|i\d\+\)/ + +" Shaped types. +syn match mlirType /\<memref\ze\s*<.*>/ +syn match mlirType /\<tensor\ze\s*<.*>/ +syn match mlirType /\<vector\ze\s*<.*>/ + +" vector types inside memref or tensor. +syn match mlirType /x\s*\zsvector/ + +" Operations. +" Core ops (not exhaustive yet). +" TODO: the list is not exhaustive. +syn keyword mlirOps alloc alloca addf addi call call_indirect cmpi constant +syn keyword mlirOps dealloc divf dma_start dma_wait dim extract_element +syn keyword mlirOps getTensor index_cast load memref_cast memref_shape_cast +syn keyword mlirOps mulf muli prefetch sitofp splat store select subf subi +syn keyword mlirOps subview tensor_cast view + +" Affine ops. +syn match mlirOps /\<affine\.apply\>/ +syn match mlirOps /\<affine\.dma_start\>/ +syn match mlirOps /\<affine\.dma_wait\>/ +syn match mlirOps /\<affine\.for\>/ +syn match mlirOps /\<affine\.if\>/ +syn match mlirOps /\<affine\.load\>/ +syn match mlirOps /\<affine\.prefetch\>/ +syn match mlirOps /\<affine\.store\>/ +syn match mlirOps /\<loop\.for\>/ +syn match mlirOps /\<loop\.if\>/ + +" TODO: dialect name prefixed ops (llvm or std). + +" Keywords. +syn keyword mlirKeyword + \ dense + \ else + \ func + \ module + \ return + \ step + \ to + +" Misc syntax. + +syn match mlirNumber /-\?\<\d\+\>/ +" Match numbers even in shaped types. +syn match mlirNumber /-\?\<\d\+\ze\s*x/ +syn match mlirNumber /x\s*\zs-\?\d\+\ze\s*x/ + +syn match mlirFloat /-\?\<\d\+\.\d*\(e[+-]\d\+\)\?\>/ +syn match mlirFloat /\<0x\x\+\>/ +syn keyword mlirBoolean true false +syn match mlirComment /\/\/.*$/ +syn region mlirString start=/"/ skip=/\\"/ end=/"/ +syn match mlirLabel /[-a-zA-Z$._][-a-zA-Z$._0-9]*:/ +syn match mlirIdentifier /[%@][a-zA-Z$._-][a-zA-Z0-9$._-]*/ +syn match mlirIdentifier /[%@!]\d\+\>/ +syn match mlirMapSetOutline "#.*$" + +" Syntax-highlight lit test commands and bug numbers. +syn match mlirSpecialComment /\/\/\s*RUN:.*$/ +syn match mlirSpecialComment /\/\/\s*CHECK:.*$/ +syn match mlirSpecialComment "\v\/\/\s*CHECK-(NEXT|NOT|DAG|SAME|LABEL):.*$" +syn match mlirSpecialComment /\/\/\s*expected-error.*$/ +syn match mlirSpecialComment /\/\/\s*expected-remark.*$/ +syn match mlirSpecialComment /;\s*XFAIL:.*$/ +syn match mlirSpecialComment /\/\/\s*PR\d*\s*$/ +syn match mlirSpecialComment /\/\/\s*REQUIRES:.*$/ + +if version >= 508 || !exists("did_c_syn_inits") + if version < 508 + let did_c_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink mlirType Type + HiLink mlirOps Statement + HiLink mlirMapSetOutline PreProc + HiLink mlirNumber Number + HiLink mlirComment Comment + HiLink mlirString String + HiLink mlirLabel Label + HiLink mlirKeyword Keyword + HiLink mlirBoolean Boolean + HiLink mlirFloat Float + HiLink mlirConstant Constant + HiLink mlirSpecialComment SpecialComment + HiLink mlirIdentifier Identifier + + delcommand HiLink +endif + +let b:current_syntax = "mlir"