175f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt" Vim syntax file 25981d788f22930083e1f1172b7ba9b75cbe68e5cMisha Brukman" Language: llvm 39dce2b33807f47d794b0482313ae3fe0d275c833Reid Spencer" Maintainer: The LLVM team, http://llvm.org/ 47b14fc211c349bb16dd19c71e150e4309c2778d6Dan Gohman" Version: $Revision$ 575f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt 675f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtif version < 600 775f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt syntax clear 875f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtelseif exists("b:current_syntax") 975f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt finish 1075f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtendif 1175f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt 1275f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtsyn case match 1375f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt 145d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" Types. 155d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" Types also include struct, array, vector, etc. but these don't 165d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" benefit as much from having dedicated highlighting rules. 170e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmType void float double 180e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmType x86_fp80 fp128 ppc_fp128 1975f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtsyn keyword llvmType type label opaque 200e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn match llvmType /\<i\d\+\>/ 2175f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt 225d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" Instructions. 235d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" The true and false tokens can be used for comparison opcodes, but it's 245d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" much more common for these tokens to be used for boolean constants. 25ae3a0be92e33bc716722aa600983fc1535acb122Dan Gohmansyn keyword llvmStatement add fadd sub fsub mul fmul 26ae3a0be92e33bc716722aa600983fc1535acb122Dan Gohmansyn keyword llvmStatement sdiv udiv fdiv srem urem frem 2775f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtsyn keyword llvmStatement and or xor 280e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmStatement icmp fcmp 290e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmStatement eq ne ugt uge ult ule sgt sge slt sle 305d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmStatement oeq ogt oge olt ole one ord ueq ugt uge 315d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmStatement ult ule une uno 32d5c947022d7bb0b2bf330998e9c4eff941e0f899Dan Gohmansyn keyword llvmStatement nuw nsw exact inbounds 335d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmStatement phi call select shl lshr ashr va_arg 340e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmStatement trunc zext sext 350e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmStatement fptrunc fpext fptoui fptosi uitofp sitofp 360e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmStatement ptrtoint inttoptr bitcast 376b3bd7bbde5f5be727351dfe1ecf1a0ba1e12a00Dan Gohmansyn keyword llvmStatement ret br indirectbr switch invoke unwind unreachable 3875f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtsyn keyword llvmStatement malloc alloca free load store getelementptr 390e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmStatement extractelement insertelement shufflevector 405d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmStatement extractvalue insertvalue 415d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman 425d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" Keywords. 435d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword define declare global constant 4421de024b909a3f2c8b120dd65bc14efba68f919fDan Gohmansyn keyword llvmKeyword internal external private 45667d4b8de6dea70195ff12ef39a4deebffa2f5c7Duncan Sandssyn keyword llvmKeyword linkonce linkonce_odr weak weak_odr appending 464dc2b39bf89d7c87868008ef8a0f807e0419aca6Duncan Sandssyn keyword llvmKeyword common extern_weak 475d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword thread_local dllimport dllexport 481ed7942e4f374b8a5ef575b4f25fc097b3f97f0eDan Gohmansyn keyword llvmKeyword hidden protected default 495d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword except deplibs 505d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword volatile fastcc coldcc cc ccc 515d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword x86_stdcallcc x86_fastcallcc 52f9930da2ef72350c6c805af09e754e4e6e13d47bChe-Liang Chiousyn keyword llvmKeyword ptx_kernel ptx_device 535d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword signext zeroext inreg sret nounwind noreturn 5423e9ef994ee390060e0630e8b4db85abe4e671fdBruno Cardoso Lopessyn keyword llvmKeyword nocapture byval nest readnone readonly noalias uwtable 55570a4a5d9ca31f276a67502d1e0533d59d331feaJakob Stoklund Olesensyn keyword llvmKeyword inlinehint noinline alwaysinline optsize ssp sspreq 5679073e3ea05beb4f647cc82567723ed0246e1119Dan Gohmansyn keyword llvmKeyword noredzone noimplicitfloat naked alignstack 575d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword module asm align tail to 586a9e75ec137a1da570ff486f2d255d9f915d2bd3Dan Gohmansyn keyword llvmKeyword addrspace section alias sideeffect c gc 595d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword target datalayout triple 606b3bd7bbde5f5be727351dfe1ecf1a0ba1e12a00Dan Gohmansyn keyword llvmKeyword blockaddress 6175f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt 625d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" Obsolete keywords. 63245ae51dce549380182e269d11e56f118e3ce0c2Dan Gohmansyn keyword llvmError getresult begin end 6475f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt 655d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" Misc syntax. 662a5892fe664161cdbb84bc3640812f21b5ff62d2Owen Andersonsyn match llvmNoName /[%@]\d\+\>/ 675d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match llvmNumber /-\?\<\d\+\>/ 685d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match llvmFloat /-\?\<\d\+\.\d*\(e[+-]\d\+\)\?\>/ 695d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match llvmFloat /\<0x\x\+\>/ 705d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmBoolean true false 715d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmConstant zeroinitializer undef null 725d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match llvmComment /;.*$/ 735d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn region llvmString start=/"/ skip=/\\"/ end=/"/ 747a523dde57cc4364ec314b34c3b429a99935b275Dan Gohmansyn match llvmLabel /[-a-zA-Z$._][-a-zA-Z$._0-9]*:/ 757a523dde57cc4364ec314b34c3b429a99935b275Dan Gohmansyn match llvmIdentifier /[%@][-a-zA-Z$._][-a-zA-Z$._0-9]*/ 7675f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt 775d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" Syntax-highlight dejagnu test commands. 785d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match llvmSpecialComment /;\s*RUN:.*$/ 795d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match llvmSpecialComment /;\s*PR\d*\s*$/ 805d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match llvmSpecialComment /;\s*END\.\s*$/ 815d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match llvmSpecialComment /;\s*XFAIL:.*$/ 825d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match llvmSpecialComment /;\s*XTARGET:.*$/ 8375f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt 8475f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtif version >= 508 || !exists("did_c_syn_inits") 8575f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt if version < 508 8675f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt let did_c_syn_inits = 1 8775f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt command -nargs=+ HiLink hi link <args> 8875f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt else 8975f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt command -nargs=+ HiLink hi def link <args> 9075f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt endif 9175f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt 9275f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt HiLink llvmType Type 9375f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt HiLink llvmStatement Statement 9475f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt HiLink llvmNumber Number 9575f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt HiLink llvmComment Comment 9675f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt HiLink llvmString String 9775f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt HiLink llvmLabel Label 985d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman HiLink llvmKeyword Keyword 995d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman HiLink llvmBoolean Boolean 1005d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman HiLink llvmFloat Float 1012a5892fe664161cdbb84bc3640812f21b5ff62d2Owen Anderson HiLink llvmNoName Identifier 1025d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman HiLink llvmConstant Constant 1035d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman HiLink llvmSpecialComment SpecialComment 1045d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman HiLink llvmError Error 1057a523dde57cc4364ec314b34c3b429a99935b275Dan Gohman HiLink llvmIdentifier Identifier 10675f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt 10775f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt delcommand HiLink 10875f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtendif 109adf4e4d06ac5bbb7e7b30ae481995e58133bc5f2Misha Brukman 11075f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtlet b:current_syntax = "llvm" 111