LLI(1)
๐ LLI(1) โ User Commands ๐
๐ NAME ๐
lli โ manual page for lli 13 ๐
๐ DESCRIPTION ๐
Okay bestie, so this is the manual page for lli 13, and the vibe is llvm interpreter & dynamic compiler. Literally iconic.
OVERVIEW: llvm interpreter & dynamic compiler
USAGE: lli [options] <input bitcode> <program arguments>...
OPTIONS:
๐จ Color Options: ๐จ
--colorโ use colors in output ๐ (default=autodetect)
โจ General options: โจ
-O=<char>โ optimization level, bestie.[-O0, -O1, -O2, or -O3](default ='-O2')--aarch64-neon-syntax=<value>โ choose the style of NEON code to emit from the AArch64 backend:=genericโ emit generic NEON assembly=appleโ emit Apple-style NEON assembly
--aarch64-use-aaโ enable the use of AA during codegen.--abort-on-max-devirt-iterations-reachedโ abort when the max iterations for the devirtualization CGSCC repeat pass is reached--addrsigโ emit an address-significance table--allow-ginsert-as-artifactโ allowG_INSERTto be considered an artifact. Hack around AMDGPU test infinite loops.--amdgpu-bypass-slow-divโ skip 64-bit divide for dynamic 32-bit values--amdgpu-disable-loop-alignmentโ do not align and prefetch loops--amdgpu-disable-power-schedโ disable scheduling to minimize mAI power bursts--amdgpu-dpp-combineโ enable DPP combiner--amdgpu-dump-hsa-metadataโ dump AMDGPU HSA Metadata--amdgpu-enable-flat-scratchโ use flat scratch instructions--amdgpu-enable-merge-m0โ merge and hoistM0initializations--amdgpu-promote-alloca-to-vector-limit=<uint>โ maximum byte size to consider promote alloca to vector--amdgpu-reserve-vgpr-for-sgpr-spillโ allocates one VGPR for future SGPR spill--amdgpu-sdwa-peepholeโ enable SDWA peepholer--amdgpu-use-aa-in-codegenโ enable the use of AA during codegen.--amdgpu-verify-hsa-metadataโ verify AMDGPU HSA Metadata--amdgpu-vgpr-index-modeโ use GPR indexing mode instead of movrel for vector indexing--arm-add-build-attributesโ no description in this page, bestie ๐ซถ--arm-implicit-it=<value>โ allow conditional instructions outdside of an IT block:=alwaysโ accept in both ISAs, emit implicit ITs in Thumb=neverโ warn in ARM, reject in Thumb=armโ accept in ARM, reject in Thumb=thumbโ warn in ARM, emit implicit ITs in Thumb
--asm-show-instโ emit internal instruction representation to assembly file--atomic-counter-update-promotedโ do counter update using atomic fetch add for promoted counters only--atomic-first-counterโ use atomic fetch add for the first counter in a function (usually the entry counter)--basic-block-sections=<all | <function list (file)> | labels | none>โ emit basic blocks into separate sections--bounds-checking-single-trapโ use one trap block per function--cfg-hide-cold-paths=<number>โ hide blocks with relative frequency below the given value--cfg-hide-deoptimize-pathsโ no description in this page, bestie ๐ซถ--cfg-hide-unreachable-pathsโ no description in this page, bestie ๐ซถ--code-model=<value>โ choose code model:=tinyโ tiny code model=smallโ small code model=kernelโ kernel code model=mediumโ medium code model=largeโ large code model
--compile-threads=<uint>โ choose the number of compile threads (jit-kind=orc-lazyonly)--cost-kind=<value>โ target cost kind:=throughputโ reciprocal throughput=latencyโ instruction latency=code-sizeโ code size=size-latencyโ code size and latency
--data-sectionsโ emit data into separate sections--debug-entry-valuesโ enable debug info for the debug entry values.--debugger-tune=<value>โ tune debug info for a particular debugger:=gdbโ gdb=lldbโ lldb=dbxโ dbx=sceโ SCE targets (e.g. PS4)
--debugify-level=<value>โ kind of debug info to add:=locationsโ locations only=location+variablesโ locations and variables
--debugify-quietโ suppress verbose debugify output--denormal-fp-math=<value>โ select which denormal numbers the code is permitted to require:=ieeeโ IEEE 754 denormal numbers=preserve-signโ the sign of a flushed-to-zero number is preserved in the sign of 0=positive-zeroโ denormals are flushed to positive zero
--denormal-fp-math-f32=<value>โ select which denormal numbers the code is permitted to require for float:=ieeeโ IEEE 754 denormal numbers=preserve-signโ the sign of a flushed-to-zero number is preserved in the sign of 0=positive-zeroโ denormals are flushed to positive zero
--disable-i2p-p2i-optโ disablesinttoptr/ptrtointroundtrip optimization--disable-lazy-compilationโ disable JIT lazy compilation--disable-promote-alloca-to-ldsโ disable promote alloca to LDS--disable-promote-alloca-to-vectorโ disable promote alloca to vector--disable-tail-callsโ never emit tail calls--dlopen=<string>โ dynamic libraries to load before linking--do-counter-promotionโ do counter register promotion--dot-cfg-mssa=<file name for generated dot file>โ file name for generated dot file--dwarf-version=<int>โ Dwarf version--dwarf64โ generate debugging info in the 64-bit DWARF format--emit-call-site-infoโ emit call site debug information, if debug information is enabled.--emscripten-cxx-exceptions-allowed=<string>โ the list of function names in which Emscripten-style exception handling is enabled (see emscriptenEMSCRIPTEN_CATCHING_ALLOWEDoptions)--emulated-tlsโ use emulated TLS model--enable-cache-managerโ use cache manager to save/load modules--enable-cse-in-irtranslatorโ should enable CSE in irtranslator--enable-cse-in-legalizerโ should enable CSE in Legalizer--enable-emscripten-cxx-exceptionsโ WebAssembly Emscripten-style exception handling--enable-emscripten-sjljโ WebAssembly Emscripten-stylesetjmp/longjmphandling--enable-gvn-hoistโ enable the GVN hoisting pass (default = off)--enable-gvn-memdepโ no description in this page, bestie ๐ซถ--enable-gvn-sinkโ enable the GVN sinking pass (default = off)--enable-load-in-loop-preโ no description in this page, bestie ๐ซถ--enable-load-preโ no description in this page, bestie ๐ซถ--enable-loop-simplifycfg-term-foldingโ no description in this page, bestie ๐ซถ--enable-name-compressionโ enable name/filename string compression--enable-no-infs-fp-mathโ enable FP math optimizations that assume no+-Infs--enable-no-nans-fp-mathโ enable FP math optimizations that assume no NaNs--enable-no-signed-zeros-fp-mathโ enable FP math optimizations that assume the sign of 0 is insignificant--enable-no-trapping-fp-mathโ enable setting the FP exceptions build attribute not to use exceptions--enable-split-backedge-in-load-preโ no description in this page, bestie ๐ซถ--enable-unsafe-fp-mathโ enable optimizations that may decrease FP precision--entry-function=<function>โ specify the entry function (default ='main') of the executable--exception-model=<value>โ exception model:=defaultโ default exception handling model=dwarfโ DWARF-like CFI based exception handling=sjljโ SjLj exception handling=armโ ARM EHABI exceptions=winehโ Windows exception model=wasmโ WebAssembly exception handling
--experimental-debug-variable-locationsโ uses the experimental new value-tracking variable locations ๐งช lowkey bleeding-edge, bestie, tread carefully.--extra-archive=<input archive>โ extra archive files to be loaded ๐ฆ pile 'em on.--extra-module=<input bitcode>โ extra modules to be loaded โจ more bitcode, more problems (jk ily).--extra-object=<input object>โ extra object files to be loaded ๐งฉ.--fake-argv0=<executable>โ overrides the'argv[0]'value that gets passed into the executing program ๐ญ your program thinks it's someone else. iconic behaviour honestly.--fatal-warningsโ treats warnings as errors ๐ one tiny warning and the whole thing folds. dramatic? yes. effective? also yes.--filetype=<value>โ picks a file type for you (heads up: not all types are supported by all targets):=asmโ emit an assembly ('.s') file โ๏ธ=objโ emit a native object ('.o') file ๐ง=nullโ emit nothing, for performance testing ๐ซฅ ghost output, giving nothing and slaying while doing it.
--float-abi=<value>โ chooses the float ABI type ๐:=defaultโ target default float ABI type=softโ soft float ABI (implied by-soft-float)=hardโ hard float ABI (uses FP registers) ๐ช
--force-dwarf-frame-sectionโ ALWAYS emit a debug frame section ๐ฆ no exceptions, no vibes-based skipping.--force-interpreterโ forces interpretation: disables JIT ๐ walking so the JIT can't run.--force-opaque-pointersโ forces all pointers to be opaque pointers ๐ถ๏ธ no peeking at the pointee type, we're mysterious here.--fp-contract=<value>โ enables aggressive formation of fused FP ops ๐ฅ:=fastโ fuse FP ops whenever profitable=onโ only fuse'blessed'FP ops ๐=offโ only fuse FP ops when the result won't be affected ๐ โโ๏ธ safest option, ngl.
--frame-pointer=<value>โ specifies the frame pointer elimination optimization ๐ผ๏ธ:=allโ disable frame pointer elimination=non-leafโ disable frame pointer elimination for non-leaf frame=noneโ enable frame pointer elimination (so you keep all of them)
--function-sectionsโ emits functions into separate sections ๐๏ธ one function, one little home.--gpsize=<uint>โ Global Pointer Addressing Size ๐ฏ the default size is8.--hash-based-counter-splitโ renames the counter variable of a comdat function based on cfg hash #๏ธโฃ hashing my way through the counter situation.--hot-cold-splitโ enables the hot-cold splitting pass ๐ก๏ธ๐ฅโ๏ธ hot code over here, cold code over there.--ignore-xcoff-visibilityโ doesn't emit the visibility attribute for asm in AIX OS, or gives all symbols'unspecified'visibility in XCOFF object file ๐ we simply do not perceive the visibility.--import-all-indexโ imports all external functions in index ๐ฅ every single one, no picksies.--incremental-linker-compatibleโ when used withfiletype=obj, emits an object file that can be used with an incremental linker ๐ future-proofed for your little linky-linker.--instcombine-code-sinkingโ enables code sinking ๐งโโ๏ธ sunk, but make it optimization.--instcombine-guard-widening-window=<uint>โ how wide an instruction window to bypass looking for another guard ๐ช.--instcombine-max-iterations=<uint>โ limits the maximum number of instruction combining iterations ๐ don't loop forever bestie, we have plans.--instcombine-max-num-phis=<uint>โ maximum phis to handle inintptr/ptrintfolding ๐ฟ phi phi phi.--instcombine-maxarray-size=<uint>โ maximum array size considered when doing a combine ๐.--instcombine-negator-enabledโ should we attempt to sink negations? ๐ค genuinely a whole question.--instcombine-negator-max-depth=<uint>โ the maximal lookup depth when checking for viability of negation sinking ๐ณ๏ธ deep dive but make it negations.--instrprof-atomic-counter-update-allโ makes all profile counter updates atomic (for testing only) โ๏ธ literally says testing only, so yk. testing only.--internalize-public-api-file=<filename>โ a file containing a list of symbol names to preserve ๐ก๏ธ protect these symbols at all costs.--internalize-public-api-list=<list>โ a list of symbol names to preserve ๐ same energy, but inline.--iterative-counter-promotionโ allows counter promotion across the whole loop nest ๐ the whole nest, not just the vibes.--jd=<string>โ specifies the JITDylib to be used for any subsequent-extra-modulearguments ๐ท๏ธ sets the stage for what comes next.--jit-kind=<value>โ chooses the underlying JIT kind ๐๏ธ:=mcjitโ MCJIT=orcโ Orc JIT=orc-lazyโ Orc-based lazy JIT ๐๏ธ
--jit-linker=<value>โ chooses the dynamic linker/loader ๐:=defaultโ default for platform and JIT-kind=rtdyldโ RuntimeDyld=jitlinkโ Orc-specific linker
--load=<pluginfilename>โ loads the specified plugin ๐ plug it in, plug it in.--lto-embed-bitcode=<value>โ embeds LLVM bitcode in object files produced by LTO ๐ซถ lil bitcode keepsake inside your object file:=noneโ do not embed=optimizedโ embed after all optimization passes โจ=post-merge-pre-optโ embed post merge, but before optimizations
--lto-pass-remarks-filter=<regex>โ only records optimization remarks from passes whose names match the given regular expression ๐ฏ filtered, curated, on-brand.--lto-pass-remarks-format=<format>โ the format used for serializing remarks (default:YAML) ๐.--lto-pass-remarks-output=<filename>โ output filename for pass remarks ๐.--march=<string>โ architecture to generate code for (see--version) ๐๏ธ.--matrix-default-layout=<value>โ sets the default matrix layout ๐งฎ:=column-majorโ use column-major layout=row-majorโ use row-major layout
--mattr=<a1,+a2,-a3,...>โ target specific attributes (-mattr=helpfor details) ๐๏ธ plus for on, minus for off, that's the whole bit.--max-counter-promotions=<int>โ max number of allowed counter promotions ๐ฆ.--max-counter-promotions-per-loop=<uint>โ max number of counter promotions per loop, to avoid increasing register pressure too much ๐ค protect the registers at all costs.--mc-relax-allโ when used withfiletype=obj, relaxes all fixups in the emitted object file ๐๐งโโ๏ธ everything's fine, everything's relaxed.--mcjit-remote-process=<filename>โ specifies the filename of the process to launch for remote MCJIT execution ๐ if none is specified, remote execution will be simulated in-process.--mcpu=<cpu-name>โ targets a specific cpu type (-mcpu=helpfor details) ๐ป.--meabi=<value>โ sets EABI type (default depends on triple) ๐งฌ:=defaultโ triple default EABI version=4โ EABI version4=5โ EABI version5=gnuโ EABI GNU
--merror-missing-parenthesisโ errors for missing parenthesis around predicate registers ๐ฑ the parenthesis police have arrived.--merror-noncontigious-registerโ errors for register names that aren't contigious ๐จ (yes, spelled exactly like that, she's quirky).--mhvxโ enables Hexagon Vector eXtensions ๐.--mhvx=<value>โ enables Hexagon Vector eXtensions, but pick your version ๐โจ:=v60โ build for HVX v60=v62โ build for HVX v62=v65โ build for HVX v65=v66โ build for HVX v66=v67โ build for HVX v67=v68โ build for HVX v68
--mips-compact-branches=<value>โ MIPS specific: compact branch policy ๐ด:=neverโ do not use compact branches if possible=optimalโ use compact branches where appropriate (default) ๐=alwaysโ always use compact branches if possible
--mips16-constant-islandsโ enables mips16 constant islands ๐๏ธ.--mips16-hard-floatโ enables mips16 hard float ๐ช.--mir-strip-debugify-onlyโ shouldmir-strip-debugonly strip debug info from debugified modules by default ๐คทโโ๏ธ the eternal question.--mno-compoundโ disables looking for compound instructions for Hexagon ๐ซ.--mno-fixupโ disables fixing up resolved relocations for Hexagon ๐ง๐ซ.--mno-ldc1-sdc1โ expands double precision loads and stores to their single precision counterparts โ double becomes two singles, math is mathing.--mno-pairingโ disables looking for duplex instructions for Hexagon ๐ฏโโ๏ธ no pairing, we're independent.--mtriple=<string>โ overrides target triple for module ๐ฏ.--mwarn-missing-parenthesisโ warns for missing parenthesis around predicate registers โ ๏ธ.--mwarn-noncontigious-registerโ warns for register names that arent contigious โ ๏ธ (again, exact spelling, she's committed to the bit).--mwarn-sign-mismatchโ warns for mismatching a signed and unsigned value โ ๏ธ signed vs unsigned beef, and honestly valid.--no-deprecated-warnโ suppresses all deprecated warnings ๐คซ we do not wish to hear it.--no-discriminatorsโ disables generation of discriminator information ๐ซ๐ท๏ธ.--no-process-symsโ does not resolve lli process symbols in JIT'd code ๐ซฅ.--no-type-checkโ suppresses type errors (Wasm) ๐ type errors? never heard of her.--no-warnโ Suppress all warnings. Every single one. Periodt. ๐--no-xray-indexโ Don't emit thexray_fn_idxsection. Simple. ๐ซ--nozero-initialized-in-bssโ Don't place zero-initialized symbols into thebsssection. Keep those zeros out of bss, bestie. โจ--nvptx-sched4regโ NVPTX Specific: schedule for register pressue. (Yes, that spelling is in the original. ๐ )--object-cache-dir=<string>โ Directory to store cached object files. It must be user writable. ๐--per-module-lazyโ Performs lazy compilation on whole module boundaries rather than individual functions.--poison-checking-function-localโ Check that returns are non-poison. This one is for testing. ๐งช--pseudo-probe-for-profilingโ Emit pseudo probes for AutoFDO.--r600-ir-structurizeโ UseStructurizeCFGIR pass.--rdf-dumpโ No description given โ it's just the flag. ๐ซฅ--rdf-limit=<uint>โ No description given either. Theuintis right there, though. ๐ญ--relax-elf-relocationsโ EmitGOTPCRELX/REX_GOTPCRELXinstead ofGOTPCRELon x86-64 ELF.--relocation-model=<value>โ Choose relocation model. Pick your fighter:staticโ Non-relocatable code.picโ Fully relocatable, position independent code.dynamic-no-picโ Relocatable external references, non-relocatable code.ropiโ Code and read-only data relocatable, accessed PC-relative.rwpiโ Read-write data relocatable, accessed relative to static base.ropi-rwpiโ Combination ofropiandrwpi.
--remote-mcjitโ Execute MCJIT'ed code in a separate process.--runtime-counter-relocationโ Enable relocating counters at runtime.--safepoint-ir-verifier-print-onlyโ No description given. Just vibes and a very long flag name. ๐ซ--sample-profile-check-record-coverage=<N>โ Emit a warning if less thanN% of records in the input profile are matched to the IR.--sample-profile-check-sample-coverage=<N>โ Emit a warning if less thanN% of samples in the input profile are matched to the IR.--sample-profile-max-propagate-iterations=<uint>โ Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.--skip-ret-exit-blockโ Suppress counter promotion if exit blocks containret.--soft-floatโ Generate software floating point library calls.--speculative-counter-promotion-max-exiting=<uint>โ The max number of exiting blocks of a loop to allow speculative counter promotion.--speculative-counter-promotion-to-loopโ When the option isfalse, if the target block is in a loop, the promotion will be disallowed unless the promoted counter update can be further/iteratively promoted into an acyclic region.--split-machine-functionsโ Split out cold basic blocks from machine functions based on profile information.--stack-size-sectionโ Emit a section containing stack size metadata.--stack-symbol-orderingโ Order local stack symbols.--stackrealignโ Force align the stack to the minimum alignment.--strict-dwarfโ use strict dwarf.--summary-file=<string>โ The summary file to use for function importing.--tail-predication=<value>โ MVE tail-predication pass options. Pick one:disabledโ Don't tail-predicate loops.enabled-no-reductionsโ Enable tail-predication, but not for reduction loops.enabledโ Enable tail-predication, including reduction loops.force-enabled-no-reductionsโ Enable tail-predication, but not for reduction loops, and force this which might be unsafe.force-enabledโ Enable tail-predication, including reduction loops, and force this which might be unsafe.
--tailcalloptโ Turnfastcccalls into tail calls by (potentially) changing ABI.--thinlto-assume-mergedโ Assume the input has already undergone ThinLTO function importing and the other pre-optimization pipeline changes.--thread-entry=<string>โ calls the given entry-point on a new thread (jit-kind=orc-lazyonly).--thread-model=<value>โ Choose threading model:posixโ POSIX thread model.singleโ Single thread model.
--threads=<int>โ No description given. It's just--threads=<int>. ๐ซฅ--tls-size=<uint>โ Bit size of immediate TLS offsets.--unique-basic-block-section-namesโ Give unique names to every basic block section.--unique-section-namesโ Give unique names to every section.--use-ctorsโ Use.ctorsinstead of.init_array.--vec-extabiโ Enable the AIX Extended Altivec ABI.--verify-region-infoโ Verify region info. Heads up: this one is time consuming.--vp-counters-per-site=<number>โ The average number of profile counters allocated per value profiling site.--vp-static-allocโ Do static counter allocation for value profiler.--x86-align-branch=<string>โ Specify types of branches to align (plus separated list of types):jccโ indicates conditional jumpsfusedโ indicates fused conditional jumpsjmpโ indicates direct unconditional jumpscallโ indicates direct and indirect callsretโ indicates retsindirectโ indicates indirect unconditional jumps
--x86-align-branch-boundary=<uint>โ Control how the assembler should align branches with NOP. If the boundary's size is not0, it should be a power of 2 and no less than32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value0does not align branches.--x86-branches-within-32B-boundariesโ Align selected instructions to mitigate negative performance impact of Intel's micro code update for errataskx102. May break assumptions about labels corresponding to particular instructions, and should be used with caution.--x86-pad-max-prefix-size=<uint>โ Maximum number of prefixes to use for padding.--xcoff-traceback-tableโ Emit the XCOFF traceback table.
๐งธ Generic Options ๐งธ
--helpโ Display available options (--help-hiddenfor more).--help-listโ Display list of available options (--help-list-hiddenfor more).--versionโ Display the version of this program.
๐ชฉ Polly Options: Configure the polly loop optimizer ๐ชฉ
--pollyโ Enable the polly optimizer (with-O1,-O2or-O3).--polly-2nd-level-tilingโ Enable a 2nd level loop of loop tiling.--polly-ast-print-accessesโ Print memory access functions.--polly-context=<isl parameter set>โ Provide additional constraints on the context parameters.--polly-dce-precise-steps=<int>โ The number of precise steps between two approximating iterations. A value of-1schedules another approximation stage before the actual dead code elimination.--polly-delicm-max-ops=<int>โ Maximum number of isl operations to invest for lifetime analysis;0=no limit.--polly-detect-full-functionsโ Allow the detection of full functions.--polly-dump-afterโ Dump module after Polly transformations into a file suffixed with-after.--polly-dump-after-file=<string>โ Dump module after Polly transformations to the given file.--polly-dump-beforeโ Dump module before Polly transformations into a file suffixed with-before.--polly-dump-before-file=<string>โ Dump module before Polly transformations to the given file.--polly-enable-simplifyโ Simplify SCoP after optimizations.--polly-ignore-func=<string>โ Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.--polly-isl-arg=<argument>โ Option passed to ISL.--polly-on-isl-error-abortโ Abort if an isl error is encountered.--polly-only-func=<string>โ ok so this one means Polly only touches functions that match a regex ๐ฏ and yes bestie you can comma-separate multiple regexes. Scop detection still runs on every function that matches ANY of the regexes you handed it.--polly-only-region=<identifier>โ restrict the whole thing to certain regions. The identifier you pass has to show up in the name of that region's entry block, no exceptions โจ--polly-only-scop-detectionโ scop detection and literally nothing else. No other optimizations, we're just looking ๐--polly-optimized-scopsโ Polly dumps the polyhedral description of the Scops that got optimized with the isl scheduling optimizer, plus the set of post-scheduling transformations applied on the schedule tree ๐ฆ (yes it's a mouthful, it's giving compiler-internals realness)--polly-parallelโ generate thread parallel code. isl codegen only, so don't come for me ๐--polly-parallel-forceโ force that thread parallel code out the door, ignoring any cost model whatsoever ๐--polly-pattern-matching-based-optsโ do optimizations based on pattern matching ๐--polly-pragma-based-optsโ apply user-directed transformation from metadata โจ--polly-process-unprofitableโ go ahead and process scops that are unlikely to benefit from Polly optimizations. Like, they're probably not gonna pop off, but you can try anyway ๐ญ--polly-register-tilingโ enable register tiling ๐--polly-reportโ print info about what Polly's been up to. Basically Polly's storytime ๐ธ--polly-showโ highlight the code regions that will be optimized, in a CFG (BBs and LLVM-IR instructions) ๐ฅ--polly-show-onlyโ same highlight energy, but CFG only (BBs) ๐ซถ--polly-stmt-granularity=<value>โ picks the algorithm used for splitting basic blocks into multiple statements. The values are:bbโ one statement per basic blockscalar-indepโ scalar independence heuristicstoreโ store-level granularity
--polly-target=<value>โ the hardware you're targeting ๐ปcpuโ generate CPU code
--polly-tilingโ enable loop tiling โญ--polly-vectorizer=<value>โ select the vectorization strategy. Your choices, bestie:noneโ no vectorizationpollyโ Polly's internal vectorizerstripmineโ strip-mine outer loops so the loop-vectorizer triggers
okay that's the whole page, we did it ๐ go forth and lli responsibly, mwah ๐
this was lli 13 from July 2023, page LLI(1) โ see you in the next one, bestie ๐
๐ฆ where this page comes from
- ubuntu jammy: llvm-13-runtime 1:13.0.1-2ubuntu2.2 ยท APACHE-2-LLVM-EXCEPTIONS
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms