Sam Elliott 0d08cb0e70
[outliners] Turn nooutline into an Enum Attribute (#163665)
This change turns the `"nooutline"` attribute into an enum attribute
called `nooutline`, and adds an auto-upgrader for bitcode to make the
same change to existing IR.

This IR attribute disables both the Machine Outliner (enabled at Oz for
some targets), and the IR Outliner (disabled by default).
2026-02-10 21:44:17 -08:00

311 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> nooutline </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="&quot;" />
<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="&quot;" />
<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="&quot;" />
</context>
<context name="string" attribute="String" lineEndContext="#stay">
<DetectChar attribute="String" context="#pop" char="&quot;" />
</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;
-->