This patch adds a new fn attribute, `optdebug`, that specifies that optimizations should make decisions that prioritize debug info quality, potentially at the cost of runtime performance. This patch does not add any functional changes triggered by this attribute, only the attribute itself. A subsequent patch will use this flag to disable the post-RA scheduler.
310 lines
9.8 KiB
XML
310 lines
9.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE language SYSTEM "language.dtd">
|
|
<language name="LLVM" section="Sources"
|
|
version="1.00" kateversion="3.4.4"
|
|
extensions="*.ll"
|
|
mimetype=""
|
|
author="LLVM Team"
|
|
license="LLVM Release License">
|
|
<highlighting>
|
|
<list name="keywords">
|
|
<item> begin </item>
|
|
<item> end </item>
|
|
<item> true </item>
|
|
<item> false </item>
|
|
<item> declare </item>
|
|
<item> define </item>
|
|
<item> global </item>
|
|
<item> constant </item>
|
|
<item> gc </item>
|
|
<item> module </item>
|
|
<item> asm </item>
|
|
<item> target </item>
|
|
<item> datalayout </item>
|
|
<item> null </item>
|
|
<item> undef </item>
|
|
<item> blockaddress </item>
|
|
<item> sideeffect </item>
|
|
<item> alignstack </item>
|
|
<item> to </item>
|
|
<item> unwind </item>
|
|
<item> nuw </item>
|
|
<item> nsw </item>
|
|
<item> inbounds </item>
|
|
<item> tail </item>
|
|
<item> triple </item>
|
|
<item> type </item>
|
|
<item> align </item>
|
|
<item> alias </item>
|
|
<item> monotonic </item>
|
|
</list>
|
|
<list name="linkage-types">
|
|
<item> private </item>
|
|
<item> internal </item>
|
|
<item> available_externally </item>
|
|
<item> linkonce </item>
|
|
<item> weak </item>
|
|
<item> common </item>
|
|
<item> appending </item>
|
|
<item> extern_weak </item>
|
|
<item> linkonce_odr </item>
|
|
<item> weak_odr </item>
|
|
<item> dllimport </item>
|
|
<item> dllexport </item>
|
|
</list>
|
|
<list name="calling-conventions">
|
|
<item> ccc </item>
|
|
<item> fastcc </item>
|
|
<item> coldcc </item>
|
|
<item> cc </item>
|
|
<item> spir_kernel </item>
|
|
</list>
|
|
<list name="visibility-styles">
|
|
<item> default </item>
|
|
<item> hidden </item>
|
|
<item> protected </item>
|
|
</list>
|
|
<list name="parameter-attributes">
|
|
<item> zeroext </item>
|
|
<item> signext </item>
|
|
<item> inreg </item>
|
|
<item> byref </item>
|
|
<item> byval </item>
|
|
<item> sret </item>
|
|
<item> noalias </item>
|
|
<item> nocapture </item>
|
|
<item> nest </item>
|
|
</list>
|
|
<list name="function-attributes">
|
|
<item> alignstack </item>
|
|
<item> allocsize </item>
|
|
<item> alwaysinline </item>
|
|
<item> argmemonly </item>
|
|
<item> arm_aapcscc </item>
|
|
<item> catch </item>
|
|
<item> cold </item>
|
|
<item> convergent </item>
|
|
<item> dereferenceable_or_null </item>
|
|
<item> extern_weak </item>
|
|
<item> hhvmcc </item>
|
|
<item> hot </item>
|
|
<item> inaccessiblemem_or_argmemonly </item>
|
|
<item> inaccessiblememonly </item>
|
|
<item> inalloca </item>
|
|
<item> inlinehint </item>
|
|
<item> inteldialect </item>
|
|
<item> jumptable </item>
|
|
<item> local_unnamed_addr </item>
|
|
<item> mustprogress </item>
|
|
<item> naked </item>
|
|
<item> nobuiltin </item>
|
|
<item> nocallback </item>
|
|
<item> nocf_check </item>
|
|
<item> noduplicate </item>
|
|
<item> nofree </item>
|
|
<item> noimplicitfloat </item>
|
|
<item> noinline </item>
|
|
<item> nomerge </item>
|
|
<item> noprofile </item>
|
|
<item> noredzone </item>
|
|
<item> noreturn </item>
|
|
<item> nosync </item>
|
|
<item> nounwind </item>
|
|
<item> null_pointer_is_valid </item>
|
|
<item> optdebug </item>
|
|
<item> optforfuzzing </item>
|
|
<item> optnone </item>
|
|
<item> optsize </item>
|
|
<item> preallocated </item>
|
|
<item> readnone </item>
|
|
<item> readonly </item>
|
|
<item> safestack </item>
|
|
<item> sanitize_hwaddress </item>
|
|
<item> sanitize_memtag </item>
|
|
<item> shadowcallstack </item>
|
|
<item> speculative_load_hardening </item>
|
|
<item> ssp </item>
|
|
<item> sspreq </item>
|
|
<item> sspstrong </item>
|
|
<item> swifterror </item>
|
|
<item> syncscope </item>
|
|
<item> tailcc </item>
|
|
<item> willreturn </item>
|
|
<item> willreturn </item>
|
|
</list>
|
|
<list name="types">
|
|
<item> addrspace </item>
|
|
<item> half </item>
|
|
<item> bfloat </item>
|
|
<item> float </item>
|
|
<item> double </item>
|
|
<item> fp128 </item>
|
|
<item> x86_fp80 </item>
|
|
<item> ppc_fp128 </item>
|
|
<item> x86_mmx </item>
|
|
<item> x86_amx </item>
|
|
<item> void </item>
|
|
<item> label </item>
|
|
<item> metadata </item>
|
|
<item> opaque </item>
|
|
</list>
|
|
<list name="intrinsic-global-variables">
|
|
<item> llvm.used </item>
|
|
<item> llvm.compiler.used </item>
|
|
<item> llvm.global_ctors </item>
|
|
<item> llvm.global_dtors </item>
|
|
</list>
|
|
<list name="instructions">
|
|
<item> ret </item>
|
|
<item> br </item>
|
|
<item> switch </item>
|
|
<item> indirectbr </item>
|
|
<item> invoke </item>
|
|
<item> unwind </item>
|
|
<item> unreachable </item>
|
|
<item> add </item>
|
|
<item> fadd </item>
|
|
<item> sub </item>
|
|
<item> fsub </item>
|
|
<item> fneg </item>
|
|
<item> mul </item>
|
|
<item> fmul </item>
|
|
<item> udiv </item>
|
|
<item> sdiv </item>
|
|
<item> fdiv </item>
|
|
<item> urem </item>
|
|
<item> srem </item>
|
|
<item> frem </item>
|
|
<item> shl </item>
|
|
<item> lshr </item>
|
|
<item> ashr </item>
|
|
<item> and </item>
|
|
<item> nand </item>
|
|
<item> or </item>
|
|
<item> xor </item>
|
|
<item> min </item>
|
|
<item> umin </item>
|
|
<item> max </item>
|
|
<item> umax </item>
|
|
<item> extractelement </item>
|
|
<item> insertelement </item>
|
|
<item> shufflevector </item>
|
|
<item> extractvalue </item>
|
|
<item> insertvalue </item>
|
|
<item> alloca </item>
|
|
<item> load </item>
|
|
<item> store </item>
|
|
<item> getelementptr </item>
|
|
<item> trunc </item>
|
|
<item> zext </item>
|
|
<item> sext </item>
|
|
<item> fptrunc </item>
|
|
<item> fpext </item>
|
|
<item> fptoui </item>
|
|
<item> fptosi </item>
|
|
<item> uitofp </item>
|
|
<item> sitofp </item>
|
|
<item> ptrtoint </item>
|
|
<item> inttoptr </item>
|
|
<item> bitcast </item>
|
|
<item> addrspacecast </item>
|
|
<item> icmp </item>
|
|
<item> fcmp </item>
|
|
<item> atomicrmw </item>
|
|
<item> cmpxchg </item>
|
|
<item> phi </item>
|
|
<item> select </item>
|
|
<item> call </item>
|
|
<item> va_arg </item>
|
|
</list>
|
|
<list name="conditions">
|
|
<item> eq </item>
|
|
<item> ne </item>
|
|
<item> ugt </item>
|
|
<item> uge </item>
|
|
<item> ult </item>
|
|
<item> ule </item>
|
|
<item> sgt </item>
|
|
<item> sge </item>
|
|
<item> slt </item>
|
|
<item> sle </item>
|
|
<item> oeq </item>
|
|
<item> ogt </item>
|
|
<item> oge </item>
|
|
<item> olt </item>
|
|
<item> ole </item>
|
|
<item> one </item>
|
|
<item> ord </item>
|
|
<item> ueq </item>
|
|
<item> une </item>
|
|
<item> uno </item>
|
|
</list>
|
|
<contexts>
|
|
<context name="llvm" attribute="Normal Text" lineEndContext="#stay">
|
|
<DetectSpaces />
|
|
<AnyChar String="@%" attribute="Symbol" context="symbol" />
|
|
|
|
<DetectChar char="{" beginRegion="Brace1" />
|
|
<DetectChar char="}" endRegion="Brace1" />
|
|
<DetectChar char=";" attribute="Comment" context="comment" />
|
|
<DetectChar attribute="String" context="string" char=""" />
|
|
<RegExpr String="i[0-9]+" attribute="Data Type" context="#stay" />
|
|
<RegExpr attribute="Symbol" String="[-a-zA-Z$._][-a-zA-Z$._0-9]*:" context="#stay" />
|
|
<Int attribute="Int" context="#stay" />
|
|
|
|
<keyword attribute="Keyword" String="keywords" />
|
|
<keyword attribute="Keyword" String="linkage-types" />
|
|
<keyword attribute="Keyword" String="calling-conventions" />
|
|
<keyword attribute="Keyword" String="visibility-styles" />
|
|
<keyword attribute="Keyword" String="parameter-attributes" />
|
|
<keyword attribute="Keyword" String="function-attributes" />
|
|
<keyword attribute="Data Type" String="types" />
|
|
<keyword attribute="Keyword" String="intrinsic-global-variables" />
|
|
<keyword attribute="Keyword" String="instructions" />
|
|
<keyword attribute="Keyword" String="conditions" />
|
|
</context>
|
|
|
|
<context name="symbol" attribute="Symbol" lineEndContext="#pop">
|
|
<DetectChar attribute="Symbol" context="symbol-string" char=""" />
|
|
<RegExpr attribute="Symbol" String="([-a-zA-Z$._][-a-zA-Z$._0-9]*|[0-9]+)" context="#pop" />
|
|
</context>
|
|
|
|
<context name="symbol-string" attribute="Symbol" lineEndContext="#stay">
|
|
<DetectChar attribute="Symbol" context="#pop#pop" char=""" />
|
|
</context>
|
|
|
|
<context name="string" attribute="String" lineEndContext="#stay">
|
|
<DetectChar attribute="String" context="#pop" char=""" />
|
|
</context>
|
|
|
|
<context name="comment" attribute="Comment" lineEndContext="#pop">
|
|
<DetectSpaces />
|
|
<!-- TODO: Add FileCheck syntax highlighting -->
|
|
<IncludeRules context="##Alerts" />
|
|
<DetectIdentifier />
|
|
</context>
|
|
</contexts>
|
|
<itemDatas>
|
|
<itemData name="Normal Text" defStyleNum="dsNormal" />
|
|
<itemData name="Keyword" defStyleNum="dsKeyword" />
|
|
<itemData name="Data Type" defStyleNum="dsDataType" />
|
|
<itemData name="Int" defStyleNum="dsDecVal" />
|
|
<itemData name="Hex" defStyleNum="dsBaseN" />
|
|
<itemData name="Float" defStyleNum="dsFloat" />
|
|
<itemData name="String" defStyleNum="dsString" />
|
|
<itemData name="Comment" defStyleNum="dsComment" />
|
|
<itemData name="Function" defStyleNum="dsFunction" />
|
|
<itemData name="Symbol" defStyleNum="dsFunction" />
|
|
</itemDatas>
|
|
</highlighting>
|
|
<general>
|
|
<comments>
|
|
<comment name="singleLine" start=";" />
|
|
</comments>
|
|
<keywords casesensitive="1" weakDeliminator="." />
|
|
</general>
|
|
</language>
|
|
<!--
|
|
// kate: space-indent on; indent-width 2; replace-tabs on;
|
|
-->
|