X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=utils%2Fvim%2Fllvm.vim;h=e8273dd0aea7a44bad052f9ae4c5b0ef58ecf049;hb=ab08da75d70c76fd946483e29366264c92cc092b;hp=b878da471c50081898f0240cdc82a1bb7e26b50f;hpb=0e9dfb0900fefc10d006b6b804597800e267a86b;p=oota-llvm.git diff --git a/utils/vim/llvm.vim b/utils/vim/llvm.vim index b878da471c5..e8273dd0aea 100644 --- a/utils/vim/llvm.vim +++ b/utils/vim/llvm.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: llvm " Maintainer: The LLVM team, http://llvm.org/ -" Updated: 2003-06-02 +" Version: $Revision$ if version < 600 syntax clear @@ -11,42 +11,74 @@ endif syn case match -syn keyword llvmType void float double -syn keyword llvmType x86_fp80 fp128 ppc_fp128 +" Types. +" Types also include struct, array, vector, etc. but these don't +" benefit as much from having dedicated highlighting rules. +syn keyword llvmType void half float double x86_fp80 fp128 ppc_fp128 +syn keyword llvmType label metadata x86_mmx syn keyword llvmType type label opaque syn match llvmType /\/ -syn keyword llvmStatement add sub mul sdiv udiv fdiv srem urem frem -syn keyword llvmStatement and or xor -syn keyword llvmStatement icmp fcmp -syn keyword llvmStatement eq ne ugt uge ult ule sgt sge slt sle -syn keyword llvmStatement false oeq ogt oge olt ole one ord ueq ugt uge -syn keyword llvmStatement ult ule une uno true +" Instructions. +" The true and false tokens can be used for comparison opcodes, but it's +" much more common for these tokens to be used for boolean constants. +syn keyword llvmStatement add addrspacecast alloca and arcp ashr atomicrmw +syn keyword llvmStatement bitcast br call cmpxchg eq exact extractelement +syn keyword llvmStatement extractvalue fadd fast fcmp fdiv fence fmul fpext +syn keyword llvmStatement fptosi fptoui fptrunc free frem fsub getelementptr +syn keyword llvmStatement icmp inbounds indirectbr insertelement insertvalue +syn keyword llvmStatement inttoptr invoke landingpad load lshr malloc max min +syn keyword llvmStatement mul nand ne ninf nnan nsw nsz nuw oeq oge ogt ole +syn keyword llvmStatement olt one or ord phi ptrtoint resume ret sdiv select +syn keyword llvmStatement sext sge sgt shl shufflevector sitofp sle slt srem +syn keyword llvmStatement store sub switch trunc udiv ueq uge ugt uitofp ule ult +syn keyword llvmStatement umax umin une uno unreachable unwind urem va_arg +syn keyword llvmStatement xchg xor zext -syn keyword llvmStatement phi tail call to select shl lshr ashr va_arg -syn keyword llvmStatement trunc zext sext -syn keyword llvmStatement fptrunc fpext fptoui fptosi uitofp sitofp -syn keyword llvmStatement ptrtoint inttoptr bitcast -syn keyword llvmStatement ret br switch invoke unwind unreachable -syn keyword llvmStatement malloc alloca free load store getelementptr +" Keywords. +syn keyword llvmKeyword acq_rel acquire sanitize_address addrspace alias align +syn keyword llvmKeyword alignstack alwaysinline appending arm_aapcs_vfpcc +syn keyword llvmKeyword arm_aapcscc arm_apcscc asm atomic available_externally +syn keyword llvmKeyword blockaddress byval c catch cc ccc cleanup coldcc common +syn keyword llvmKeyword constant datalayout declare default define deplibs +syn keyword llvmKeyword dllexport dllimport except extern_weak external fastcc +syn keyword llvmKeyword filter gc global hidden initialexec inlinehint inreg +syn keyword llvmKeyword intel_ocl_bicc inteldialect internal +syn keyword llvmKeyword linkonce linkonce_odr +syn keyword llvmKeyword localdynamic localexec minsize module monotonic +syn keyword llvmKeyword msp430_intrcc naked nest noalias nocapture +syn keyword llvmKeyword noimplicitfloat noinline nonlazybind noredzone noreturn +syn keyword llvmKeyword nounwind optnone optsize personality private protected +syn keyword llvmKeyword ptx_device ptx_kernel readnone readonly release +syn keyword llvmKeyword returns_twice sanitize_thread sanitize_memory +syn keyword llvmKeyword section seq_cst sideeffect signext singlethread +syn keyword llvmKeyword spir_func spir_kernel sret ssp sspreq sspstrong +syn keyword llvmKeyword tail target thread_local to triple unnamed_addr +syn keyword llvmKeyword unordered uwtable volatile weak weak_odr +syn keyword llvmKeyword x86_fastcallcc x86_stdcallcc x86_thiscallcc x86_64_sysvcc +syn keyword llvmKeyword x86_64_win64cc zeroext +syn keyword llvmKeyword uselistorder uselistorder_bb -syn keyword llvmStatement true false zeroinitializer -syn keyword llvmStatement define declare global constant const -syn keyword llvmStatement internal uninitialized external implementation -syn keyword llvmStatement linkonce weak appending -syn keyword llvmStatement undef null to except target datalayout triple deplibs -syn keyword llvmStatement big little volatile fastcc coldcc cc -syn keyword llvmStatement extractelement insertelement shufflevector -syn keyword llvmStatement module asm align +" Obsolete keywords. +syn keyword llvmError getresult begin end -"syn match llvmFunction /%[a-zA-Z\$._\-][a-zA-Z\$._\-0-9]*/ -syn match llvmNumber /\<\d\+\>/ -syn match llvmNumber /\<\d\+\.\d*\>/ - -syn match llvmComment /;.*$/ -syn region llvmString start=/"/ skip=/\\"/ end=/"/ -syn match llvmLabel /[\-a-zA-Z\$._0-9]*:/ +" Misc syntax. +syn match llvmNoName /[%@]\d\+\>/ +syn match llvmNumber /-\?\<\d\+\>/ +syn match llvmFloat /-\?\<\d\+\.\d*\(e[+-]\d\+\)\?\>/ +syn match llvmFloat /\<0x\x\+\>/ +syn keyword llvmBoolean true false +syn keyword llvmConstant zeroinitializer undef null +syn match llvmComment /;.*$/ +syn region llvmString start=/"/ skip=/\\"/ end=/"/ +syn match llvmLabel /[-a-zA-Z$._][-a-zA-Z$._0-9]*:/ +syn match llvmIdentifier /[%@][-a-zA-Z$._][-a-zA-Z$._0-9]*/ +" Syntax-highlight dejagnu test commands. +syn match llvmSpecialComment /;\s*RUN:.*$/ +syn match llvmSpecialComment /;\s*PR\d*\s*$/ +syn match llvmSpecialComment /;\s*END\.\s*$/ +syn match llvmSpecialComment /;\s*XFAIL:.*$/ if version >= 508 || !exists("did_c_syn_inits") if version < 508 @@ -62,8 +94,16 @@ if version >= 508 || !exists("did_c_syn_inits") HiLink llvmComment Comment HiLink llvmString String HiLink llvmLabel Label + HiLink llvmKeyword Keyword + HiLink llvmBoolean Boolean + HiLink llvmFloat Float + HiLink llvmNoName Identifier + HiLink llvmConstant Constant + HiLink llvmSpecialComment SpecialComment + HiLink llvmError Error + HiLink llvmIdentifier Identifier delcommand HiLink endif - + let b:current_syntax = "llvm"