1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE language SYSTEM "language.dtd">
3<language name="LLVM" section="Sources"
4          version="1.00" kateversion="3.4.4"
5          extensions="*.ll"
6          mimetype=""
7          author="LLVM Team"
8          license="LLVM Release License">
9  <highlighting>
10    <list name="keywords">
11      <item> begin </item>
12      <item> end </item>
13      <item> true </item>
14      <item> false </item>
15      <item> declare </item>
16      <item> define </item>
17      <item> global </item>
18      <item> constant </item>
19      <item> gc </item>
20      <item> module </item>
21      <item> asm </item>
22      <item> target </item>
23      <item> datalayout </item>
24      <item> null </item>
25      <item> undef </item>
26      <item> blockaddress </item>
27      <item> sideeffect </item>
28      <item> alignstack </item>
29      <item> to </item>
30      <item> unwind </item>
31      <item> nuw </item>
32      <item> nsw </item>
33      <item> inbounds </item>
34      <item> tail </item>
35      <item> triple </item>
36      <item> type </item>
37      <item> align </item>
38      <item> alias </item>
39      <item> monotonic </item>
40    </list>
41    <list name="linkage-types">
42      <item> private </item>
43      <item> internal </item>
44      <item> available_externally </item>
45      <item> linkonce </item>
46      <item> weak </item>
47      <item> common </item>
48      <item> appending </item>
49      <item> extern_weak </item>
50      <item> linkonce_odr </item>
51      <item> weak_odr </item>
52      <item> dllimport </item>
53      <item> dllexport </item>
54    </list>
55    <list name="calling-conventions">
56      <item> ccc </item>
57      <item> fastcc </item>
58      <item> coldcc </item>
59      <item> cc </item>
60      <item> spir_kernel </item>
61    </list>
62    <list name="visibility-styles">
63      <item> default </item>
64      <item> hidden </item>
65      <item> protected </item>
66    </list>
67    <list name="parameter-attributes">
68      <item> zeroext </item>
69      <item> signext </item>
70      <item> inreg </item>
71      <item> byref </item>
72      <item> byval </item>
73      <item> sret </item>
74      <item> noalias </item>
75      <item> nocapture </item>
76      <item> nest </item>
77    </list>
78    <list name="function-attributes">
79      <item> alignstack </item>
80      <item> alwaysinline </item>
81      <item> argmemonly </item>
82      <item> convergent </item>
83      <item> inlinehint </item>
84      <item> mustprogress </item>
85      <item> naked </item>
86      <item> nobuiltin </item>
87      <item> noimplicitfloat </item>
88      <item> noinline </item>
89      <item> noredzone </item>
90      <item> noreturn </item>
91      <item> nounwind </item>
92      <item> optnone </item>
93      <item> optsize </item>
94      <item> readnone </item>
95      <item> readonly </item>
96      <item> nossp </item>
97      <item> ssp </item>
98      <item> sspreq </item>
99      <item> sspstrong </item>
100    </list>
101    <list name="types">
102      <item> addrspace </item>
103      <item> half </item>
104      <item> float </item>
105      <item> double </item>
106      <item> fp128 </item>
107      <item> x86_fp80 </item>
108      <item> ppc_fp128 </item>
109      <item> x86mmx </item>
110      <item> void </item>
111      <item> label </item>
112      <item> metadata </item>
113      <item> opaque </item>
114    </list>
115    <list name="intrinsic-global-variables">
116      <item> llvm.used </item>
117      <item> llvm.compiler.used </item>
118      <item> llvm.global_ctors </item>
119      <item> llvm.global_dtors </item>
120    </list>
121    <list name="instructions">
122      <item> ret </item>
123      <item> br </item>
124      <item> switch </item>
125      <item> indirectbr </item>
126      <item> invoke </item>
127      <item> unwind </item>
128      <item> unreachable </item>
129      <item> add </item>
130      <item> fadd </item>
131      <item> sub </item>
132      <item> fsub </item>
133      <item> fneg </item>
134      <item> mul </item>
135      <item> fmul </item>
136      <item> udiv </item>
137      <item> sdiv </item>
138      <item> fdiv </item>
139      <item> urem </item>
140      <item> srem </item>
141      <item> frem </item>
142      <item> shl </item>
143      <item> lshr </item>
144      <item> ashr </item>
145      <item> and </item>
146      <item> nand </item>
147      <item> or </item>
148      <item> xor </item>
149      <item> min </item>
150      <item> umin </item>
151      <item> max </item>
152      <item> umax </item>
153      <item> extractelement </item>
154      <item> insertelement </item>
155      <item> shufflevector </item>
156      <item> extractvalue </item>
157      <item> insertvalue </item>
158      <item> alloca </item>
159      <item> load </item>
160      <item> store </item>
161      <item> getelementptr </item>
162      <item> trunc </item>
163      <item> zext </item>
164      <item> sext </item>
165      <item> fptrunc </item>
166      <item> fpext </item>
167      <item> fptoui </item>
168      <item> fptosi </item>
169      <item> uitofp </item>
170      <item> sitofp </item>
171      <item> ptrtoint </item>
172      <item> inttoptr </item>
173      <item> bitcast </item>
174      <item> addrspacecast </item>
175      <item> icmp </item>
176      <item> fcmp </item>
177      <item> atomicrmw </item>
178      <item> cmpxchg </item>
179      <item> phi </item>
180      <item> select </item>
181      <item> call </item>
182      <item> va_arg </item>
183    </list>
184    <list name="conditions">
185      <item> eq </item>
186      <item> ne </item>
187      <item> ugt </item>
188      <item> uge </item>
189      <item> ult </item>
190      <item> ule </item>
191      <item> sgt </item>
192      <item> sge </item>
193      <item> slt </item>
194      <item> sle </item>
195      <item> oeq </item>
196      <item> ogt </item>
197      <item> oge </item>
198      <item> olt </item>
199      <item> ole </item>
200      <item> one </item>
201      <item> ord </item>
202      <item> ueq </item>
203      <item> une </item>
204      <item> uno </item>
205    </list>
206    <contexts>
207      <context name="llvm" attribute="Normal Text" lineEndContext="#stay">
208        <DetectSpaces />
209        <AnyChar String="@%" attribute="Symbol" context="symbol" />
210
211        <DetectChar char="{" beginRegion="Brace1" />
212        <DetectChar char="}" endRegion="Brace1" />
213        <DetectChar char=";" attribute="Comment" context="comment" />
214        <DetectChar attribute="String" context="string" char="&quot;" />
215        <RegExpr String="i[0-9]+" attribute="Data Type" context="#stay" />
216        <RegExpr attribute="Symbol" String="[-a-zA-Z$._][-a-zA-Z$._0-9]*:" context="#stay" />
217        <Int attribute="Int" context="#stay" />
218
219        <keyword attribute="Keyword"   String="keywords" />
220        <keyword attribute="Keyword"   String="linkage-types" />
221        <keyword attribute="Keyword"   String="calling-conventions" />
222        <keyword attribute="Keyword"   String="visibility-styles" />
223        <keyword attribute="Keyword"   String="parameter-attributes" />
224        <keyword attribute="Keyword"   String="function-attributes" />
225        <keyword attribute="Data Type" String="types" />
226        <keyword attribute="Keyword"   String="intrinsic-global-variables" />
227        <keyword attribute="Keyword"   String="instructions" />
228        <keyword attribute="Keyword"   String="conditions" />
229      </context>
230
231      <context name="symbol" attribute="Symbol" lineEndContext="#pop">
232        <DetectChar attribute="Symbol" context="symbol-string" char="&quot;" />
233        <RegExpr attribute="Symbol" String="([-a-zA-Z$._][-a-zA-Z$._0-9]*|[0-9]+)" context="#pop" />
234      </context>
235
236      <context name="symbol-string" attribute="Symbol" lineEndContext="#stay">
237        <DetectChar attribute="Symbol" context="#pop#pop" char="&quot;" />
238      </context>
239
240      <context name="string" attribute="String" lineEndContext="#stay">
241        <DetectChar attribute="String" context="#pop" char="&quot;" />
242      </context>
243
244      <context name="comment" attribute="Comment" lineEndContext="#pop">
245        <DetectSpaces />
246        <!-- TODO: Add FileCheck syntax highlighting -->
247        <IncludeRules context="##Alerts" />
248        <DetectIdentifier />
249      </context>
250    </contexts>
251    <itemDatas>
252      <itemData name="Normal Text" defStyleNum="dsNormal" />
253      <itemData name="Keyword" defStyleNum="dsKeyword" />
254      <itemData name="Data Type" defStyleNum="dsDataType" />
255      <itemData name="Int" defStyleNum="dsDecVal" />
256      <itemData name="Hex" defStyleNum="dsBaseN" />
257      <itemData name="Float" defStyleNum="dsFloat" />
258      <itemData name="String" defStyleNum="dsString" />
259      <itemData name="Comment" defStyleNum="dsComment" />
260      <itemData name="Function" defStyleNum="dsFunction" />
261      <itemData name="Symbol" defStyleNum="dsFunction" />
262    </itemDatas>
263  </highlighting>
264  <general>
265    <comments>
266      <comment name="singleLine" start=";" />
267    </comments>
268    <keywords casesensitive="1" weakDeliminator="." />
269  </general>
270</language>
271<!--
272// kate: space-indent on; indent-width 2; replace-tabs on;
273-->
274