; LLVM 21 https://llvm.org/docs/LangRef.html ;! Keywords =========================================================== ; Linkage Types ; https://llvm.org/docs/LangRef.html#linkage-types private internal available_externally linkonce weak common appending extern_weak linkonce_odr weak_odr external ; Global Variables ; https://llvm.org/docs/LangRef.html#global-variables global constant section partition ; align comdat ; Functions ; https://llvm.org/docs/LangRef.html#functions define section comdat declare ; Garbage Collector Strategy Names ; https://llvm.org/docs/LangRef.html#garbage-collector-strategy-names gc ; Prefix Data ; https://llvm.org/docs/LangRef.html#prefix-data prefix ; Aliases ; https://llvm.org/docs/LangRef.html#aliases alias ; IFuncs ; https://llvm.org/docs/LangRef.html#ifuncs ifunc ; Attribute Groups ; https://llvm.org/docs/LangRef.html#attribute-groups attributes ; Module-Level Inline Assembly ; https://llvm.org/docs/LangRef.html#module-level-inline-assembly module asm ; Data Layout ; https://llvm.org/docs/LangRef.html#data-layout target datalayout ; Target Triple ; https://llvm.org/docs/LangRef.html#target-triple target triple ; Use-list Order Directives ; https://llvm.org/docs/LangRef.html#use-list-order-directives uselistorder uselistorder_bb ; Source Filename ; https://llvm.org/docs/LangRef.html#source-filename source_filename ; Constants ; https://llvm.org/docs/LangRef.html#constants true false null none global undef poison ; Metadata ; https://llvm.org/docs/LangRef.html#metadata distinct ;! Type =========================================================== ; https://llvm.org/docs/LangRef.html#type-system void i1 i8 i16 i32 i64 i128 half bfloat float double fp128 x86_fp80 ppc_fp128 x86_amx ptr ; Pointer Type vscale ; Vector Type label ; Label Type token ; Token Type metadata ; Metadata Type type ; Structure Type opaque ; Opaque Structure Types ;! Attribute =========================================================== ; Calling Conventions ; https://llvm.org/docs/LangRef.html#calling-conventions ccc fastcc coldcc ghccc anyregcc preserve_mostcc preserve_allcc preserve_nonecc cxx_fast_tlscc tailcc swiftcc swifttailcc cfguard_checkcc ; Visibility Styles ; https://llvm.org/docs/LangRef.html#visibility-styles default hidden protected ; DLL Storage Classes ; https://llvm.org/docs/LangRef.html#dll-storage-classes dllimport dllexport ; Thread Local Storage Models ; https://llvm.org/docs/LangRef.html#thread-local-storage-models thread_local() localdynamic initialexec localexec ; Runtime Preemption Specifiers ; https://llvm.org/docs/LangRef.html#runtime-preemption-specifiers dso_preemptable dso_local ; Global Variables ; https://llvm.org/docs/LangRef.html#global-variables unnamed_addr local_unnamed_addr code_model no_sanitize_address no_sanitize_hwaddress sanitize_address_dyninit sanitize_memtag ; Comdats ; https://llvm.org/docs/LangRef.html#comdats any exactmatch largest noduplicates samesize ; Parameter Attributes ; https://llvm.org/docs/LangRef.html#parameter-attributes zeroext signext noext inreg byval() preallocated() inalloca() sret() elementtype() align align() noalias captures(...) nofree nest returned nonnull dereferenceable() dereferenceable_or_null() swiftself swiftasync swifterror immarg noundef nofpclass() alignstack() allocalign allocptr readnone readonly writeonly writable initializes((Lo1, Hi1), ...) dead_on_unwind dead_on_return range( , ) ; Prologue Data ; https://llvm.org/docs/LangRef.html#prologue-data prologue ; Personality Function ; https://llvm.org/docs/LangRef.html#personality-function personality ; Function Attributes ; https://llvm.org/docs/LangRef.html#function-attributes alignstack() alloc-family allockind("KIND") alloc-variant-zeroed allocsize([, ]) alwaysinline builtin cold convergent disable_sanitizer_instrumentation dontcall-error dontcall-warn fn_ret_thunk_extern frame-pointer hot inlinehint jumptable memory(...) minsize naked no-inline-line-tables no-jump-tables nobuiltin nocallback nodivergencesource noduplicate nofree noimplicitfloat noinline nomerge nonlazybind noprofile skipprofile noredzone indirect-tls-seg-refs noreturn norecurse willreturn nosync nounwind nosanitize_bounds nosanitize_coverage null_pointer_is_valid optdebug optforfuzzing optnone optsize patchable-function probe-stack stack-probe-size no-stack-arg-probe returns_twice safestack sanitize_address sanitize_memory sanitize_thread sanitize_hwaddress sanitize_memtag sanitize_realtime sanitize_realtime_blocking sanitize_alloc_token speculative_load_hardening speculatable ssp sspstrong sspreq strictfp denormal-fp-math denormal-fp-math-f32 thunk uwtable[(sync|async)] nocf_check shadowcallstack mustprogress warn-stack-size vscale_range([, ]) nooutline ; Call Site Attributes ; https://llvm.org/docs/LangRef.html#call-site-attributes vector-function-abi-variant preallocated() ; Global Attributes ; https://llvm.org/docs/LangRef.html#global-attributes no_sanitize_address no_sanitize_hwaddress sanitize_memtag sanitize_address_dyninit ; Assume Operand Bundles ; https://llvm.org/docs/LangRef.html#assume-operand-bundles separate_storage(, ) ; Atomic Memory Ordering Constraints ; https://llvm.org/docs/LangRef.html#atomic-memory-ordering-constraints unordered monotonic acquire release acq_rel seq_cst ; Fast-Math Flags ; https://llvm.org/docs/LangRef.html#fast-math-flags fast nnan ninf nsz arcp contract afn reassoc ; Pointer Type addrspace() ; Constants zeroinitializer blockaddress(@function, %block) dso_local_equivalent no_cfi @func ; Inline Assembler Expressions ; https://llvm.org/docs/LangRef.html#inline-assembler-expressions sideeffect alignstack inteldialect ; Instruction nuw nsw exact atomic volatile inbounds inrange syncscope("") ;! Instruction =========================================================== ; https://llvm.org/docs/LangRef.html#instruction-reference ; Terminator Instructions ; https://llvm.org/docs/LangRef.html#terminator-instructions ret ret void br i1 , label , label br label switch , label [ , label ... ] indirectbr *
, [ label , label , ... ] invoke [cconv] [ret attrs] [addrspace()] | () [fn attrs] [operand bundles] to label unwind label callbr [cconv] [ret attrs] [addrspace()] | () [fn attrs] [operand bundles] to label [indirect labels] resume catchswitch within [ label , label , ... ] unwind to caller catchswitch within [ label , label , ... ] unwind label catchret from to label cleanupret from unwind label cleanupret from unwind to caller unreachable ; Unary Operations ; https://llvm.org/docs/LangRef.html#unary-operations fneg [fast-math flags]* ; Binary Operations ; https://llvm.org/docs/LangRef.html#binary-operations add , add nuw , add nsw , add nuw nsw , fadd [fast-math flags]* , sub , sub nuw , sub nsw , sub nuw nsw , fsub [fast-math flags]* , mul , mul nuw , mul nsw , mul nuw nsw , fmul [fast-math flags]* , udiv , udiv exact , sdiv , sdiv exact , fdiv [fast-math flags]* , urem , srem , frem [fast-math flags]* , ; Bitwise Binary Operations ; https://llvm.org/docs/LangRef.html#bitwise-binary-operations shl , shl nuw , shl nsw , shl nuw nsw , lshr , lshr exact , ashr , ashr exact , and , or , xor , ; Vector Operations ; https://llvm.org/docs/LangRef.html#vector-operations extractelement > , extractelement > , insertelement > , , insertelement > , , shufflevector > , > , shufflevector > , > v2, ; Aggregate Operations ; https://llvm.org/docs/LangRef.html#aggregate-operations extractvalue , {, }* insertvalue , , {, }* ; Memory Access and Addressing Operations ; https://llvm.org/docs/LangRef.html#memory-access-and-addressing-operations alloca [inalloca] [, ] [, align ] [, addrspace()] load [volatile] , ptr [, align ][, !nontemporal !][, !invariant.load !][, !invariant.group !][, !nonnull !][, !dereferenceable !][, !dereferenceable_or_null !][, !align !][, !noundef !] load atomic [volatile] , ptr [syncscope("")] , align [, !invariant.group !] ! = !{ i32 1 } ! = !{} ! = !{ i64 } ! = !{ i64 } store [volatile] , ptr [, align ][, !nontemporal !][, !invariant.group !] store atomic [volatile] , ptr [syncscope("")] , align [, !invariant.group !] ! = !{ i32 1 } ! = !{} fence [syncscope("")] cmpxchg [weak] [volatile] ptr , , [syncscope("")] [, align ] atomicrmw [volatile] ptr , [syncscope("")] [, align ] xchg add sub and nand or xor max min umax umin fadd fsub fmax fmin fmaximum fminimum uinc_wrap udec_wrap usub_cond usub_sat getelementptr , ptr {, [inrange] }* getelementptr inbounds , ptr {, [inrange] }* getelementptr , , [inrange] ; Conversion Operations ; https://llvm.org/docs/LangRef.html#conversion-operations trunc to zext to sext to fptrunc to fpext to fptoui to fptosi to uitofp to sitofp to ptrtoint to ptrtoaddr to inttoptr to [, !dereferenceable !][, !dereferenceable_or_null ! to addrspacecast to ; Other Operations ; https://llvm.org/docs/LangRef.html#other-operations icmp , samesign eq ne ugt uge ult ule sgt sge slt sle fcmp [fast-math flags]* , oeq ogt oge olt ole one ord ueq ugt uge ult ule une uno phi [fast-math-flags] [ , ], ... select [fast-math flags] selty , , freeze ty call [fast-math flags] [cconv] [ret attrs] [addrspace()] | () [fn attrs] [ operand bundles ] tail musttail notail va_arg , landingpad + landingpad cleanup * catch filter catchpad within [*] cleanuppad within [*] ;! Metadata =========================================================== ; https://llvm.org/docs/LangRef.html#metadata ;! Intrinsic =========================================================== ; Intrinsic Global Variables ; https://llvm.org/docs/LangRef.html#intrinsic-global-variables @llvm.used @llvm.compiler.used @llvm.global_ctors @llvm.global_dtors ; Intrinsic Functions ; https://llvm.org/docs/LangRef.html#intrinsic-functions