MODULARIZE(1)
MODULARIZE(1) ๐ธ
User Commands energy, bestie โ this is the manual page for modularize 20 ๐
. Part 1, and we are not skipping a single flag. Periodt.
NAME ๐
modularize โ manual page for modularize 20 โจ
DESCRIPTION ๐
OVERVIEW: modularize.
USAGE:
modularize [options] <list of one or more header list files> <arguments to be passed to front end>...
Okay so now we get into the options, and there are a lot of them. Grab a snack. ๐
OPTIONS ๐
Color Options ๐
--colorโ use colors in output. Default is autodetect, so it checks the vibe first. (default=autodetect) ๐
General options โญ
-I <path>โ include path for coverage check.--aarch64-neon-syntax=<value>โ choose the style of NEON code the AArch64 backend emits.=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.--allow-ginsert-as-artifactโ allowG_INSERTto be considered an artifact. It's a hack around AMDGPU test infinite loops.--amdgpu-atomic-optimizer-strategy=<value>โ select DPP or Iterative strategy for scan.=DPPโ use DPP operations for scan.=Iterativeโ use the Iterative approach for scan.=Noneโ disable atomic optimizer.
--amdgpu-bypass-slow-divโ skip 64-bit divide for dynamic 32-bit values.--amdgpu-disable-loop-alignmentโ do not align and prefetch loops.--amdgpu-dpp-combineโ enable DPP combiner.--amdgpu-dump-hsa-metadataโ dump AMDGPU HSA Metadata.--amdgpu-enable-merge-m0โ merge and hoist M0 initializations.--amdgpu-indirect-call-specialization-threshold=<uint>โ a threshold controls whether an indirect call will be specialized.--amdgpu-kernarg-preload-count=<uint>โ how many kernel arguments to preload onto SGPRs.--amdgpu-module-splitting-max-depth=<uint>โ maximum search depth.0forces a greedy approach. warning: the algorithm is up toO(2^N), whereNis the max depth.--amdgpu-promote-alloca-to-vector-limit=<uint>โ maximum byte size to consider promote alloca to vector.--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.--argext-abi-checkโ verify that narrow int args are properly extended per the SystemZ ABI.--arm-add-build-attributesโ (no description in the original, bestie โ just a flag living its truth) ๐--arm-implicit-it=<value>โ allow conditional instructions outside 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).--block-check-header-list-onlyโ only warn if#includedirectives are inside extern or namespace blocks if the included header is in the header list.--bounds-checking-single-trapโ use one trap block per function.--bpf-stack-size=<int>โ specify the BPF stack size limit.--cfg-hide-cold-paths=<number>โ hide blocks with relative frequency below the given value.--cfg-hide-deoptimize-pathsโ (no description in the original).--cfg-hide-unreachable-pathsโ (no description in the original).--check-functions-filter=<regex>โ only emit checks for arguments of functions whose names match the given regular expression.--conditional-counter-updateโ do conditional counter updates insingle byte counters mode)โ yes, that trailing paren is really in the original, bestie.--cost-kind=<value>โ target cost kind.=throughputโ reciprocal throughput.=latencyโ instruction latency.=code-sizeโ code size.=size-latencyโ code size and latency.
--coverage-check-onlyโ only do the coverage check.--crelโ use CREL relocation format for ELF.--cs-profile-generateโ perform context sensitive PGO instrumentation.--cs-profile-path=<string>โ context sensitive profile file path.--debug-info-correlateโ use debug info to correlate profiles. โ ๏ธ Deprecated, so use-profile-correlate=debug-infoinstead.--debugify-func-limit=<ulong>โ set max number of processed functions per pass.--debugify-level=<value>โ kind of debug info to add.=locationsโ locations only.=location+variablesโ locations and Variables.
--debugify-quietโ suppress verbose debugify output.--disable-auto-upgrade-debug-infoโ disable autoupgrade of debug info.--disable-i2p-p2i-optโ disables inttoptr/ptrtoint roundtrip optimization.--disable-promote-alloca-to-ldsโ disable promote alloca to LDS.--disable-promote-alloca-to-vectorโ disable promote alloca to vector.--display-file-listsโ display lists of good files (no compile errors), problem files, and a combined list with problem files preceded by a'#'.--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-compact-unwind-non-canonicalโ whether to try to emit Compact Unwind for non canonical entries.--emit-dwarf-unwind=<value>โ whether to emit DWARF EH frame entries.=alwaysโ always emit EH frame entries.=no-compact-unwindโ only emit EH frame entries when compact unwind is not available.=defaultโ use target platform default.
--emscripten-cxx-exceptions-allowed=<string>โ the list of function names in which Emscripten-style exception handling is enabled (see emscriptenEMSCRIPTEN_CATCHING_ALLOWEDoptions).--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-style setjmp/longjmp handling.--enable-gvn-hoistโ enable the GVN hoisting pass (default = off).--enable-gvn-memdepโ (no description in the original).--enable-gvn-memoryssaโ (no description in the original).--enable-gvn-sinkโ enable the GVN sinking pass (default = off).--enable-jump-table-to-switchโ enable JumpTableToSwitch pass (default = off).--enable-load-in-loop-preโ (no description in the original).--enable-load-preโ (no description in the original).--enable-loop-simplifycfg-term-foldingโ (no description in the original).--enable-name-compressionโ enable name/filename string compression.--enable-split-backedge-in-load-preโ (no description in the original).--enable-split-loopiv-heuristicโ enable loop iv regalloc heuristic.--enable-vtable-profile-useโ if ThinLTO and WPD is enabled and this option is true, vtable profiles will be used by the ICP pass for a more efficient indirect call sequence. If false, type profiles won't be used.--enable-vtable-value-profilingโ if true, the virtual table address will be instrumented to know the types of a C++ pointer. The information is used in indirect call promotion to do selective vtable-based comparison.--execute-concurrency=<uint>โ the number of threads used to process all files in parallel. Set to0for hardware concurrency. This flag only applies to all-TUs.--executor=<string>โ the name of the executor to use.--expand-variadics-override=<value>โ override the behaviour of expand-variadics.=unspecifiedโ use the implementation defaults.=disableโ disable the pass entirely.=optimizeโ optimise without changing ABI.=loweringโ change variadic calling convention.
--experimental-debug-variable-locationsโ use experimental new value-tracking variable locations.--experimental-debuginfo-iteratorsโ bestie this one makes us pass debuginfo positions around through iterators instead of intrinsics โจ no cap, it does literally nothing if--preserve-input-debuginfo-format=trueis set, so don't come for it.--fatal-warningsโ warnings?? we don't do warnings here ๐ every little warning gets upgraded to a full-blown error. mean but iconic.--fdpicโ use the FDPIC ABI. periodt.--filter=<string>โ only process files that match string. heads up tho: this flag only applies to all-TUs ๐--force-tail-folding-style=<value>โ lowkey forcing the tail folding style. pick ur fighter:=noneโ disable tail folding entirely ๐=dataโ create the lane mask for data only, using theactive.lane.maskintrinsic=data-without-lane-maskโ create lane mask withcompare/stepvector=data-and-controlโ create lane mask using theactive.lane.maskintrinsic, then use it for both data and control flow, main character energy fr=data-and-control-without-rt-checkโ same vibe asdata-and-controlbut the runtime check gets removed=data-with-evlโ use predicated EVL instructions for tail folding; if EVL isn't supported it falls back todata-without-lane-mask
--fs-profile-debug-bw-threshold=<uint>โ only shows the debug message if the source branch weight is greater than this value.--fs-profile-debug-prob-diff-threshold=<uint>โ only shows the debug message if the branch probability is greater than this value โ and that's in percentage, iykyk.--generate-merged-base-profilesโ when generating nested context-sensitive profiles, always generate an extra base profile for a function with all its context profiles merged into it. the way that it just merges everything?? obsessed.--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. slay.--hexagon-add-build-attributesโ no description given, it's giving mystery ๐ฆ--hexagon-rdf-limit=<uint>โ also no description. we move.--hot-cold-splitโ enables the hot-cold splitting pass ๐ฅโ๏ธ--hwasan-percentile-cutoff-hot=<int>โ hot percentile cutoff.--hwasan-random-rate=<number>โ probability value in the range[0.0, 1.0]that decides whether to keep instrumentation of a function.--implicit-mapsymsโ lets a mapping symbol at the beginning of a section be implicit, which lowers the number of mapping symbols but costs u some portability ๐ญ recommended for projects that can build all their object files using this option.--import-all-indexโ imports all external functions in index. iconic.--incremental-linker-compatibleโ when used withfiletype=obj, emits an object file that can be used with an incremental linker ๐ซถ--instcombine-code-sinkingโ enables code sinking.--instcombine-guard-widening-window=<uint>โ how wide an instruction window to bypass looking for another guard.--instcombine-max-num-phis=<uint>โ maximum number of phis to handle inintptr/ptrintfolding.--instcombine-max-sink-users=<uint>โ maximum number of undroppable users for instruction sinking.--instcombine-maxarray-size=<uint>โ maximum array size considered when doing a combine.--instcombine-negator-enabledโ should we attempt to sink negations? asking for a friend ๐ง--instcombine-negator-max-depth=<uint>โ what is the maximal lookup depth when trying to check for viability of negation sinking.--instrprof-atomic-counter-update-allโ makes all profile counter updates atomic. note: for testing only โญ--internalize-public-api-file=<filename>โ a file containing a list of symbol names to preserve ๐--internalize-public-api-list=<list>โ a list of symbol names to preserve.--iterative-counter-promotionโ allows counter promotion across the whole loop nest. periodt.--lint-abort-on-errorโ in the Lint pass, abort on errors ๐--loongarch-use-aaโ enables the use of AA during codegen.--lower-allow-check-percentile-cutoff-hot=<int>โ hot percentile cutoff.--lower-allow-check-random-rate=<number>โ probability value in the range[0.0, 1.0]of unconditional pseudo-random checks.--lto-aix-system-assembler=<path>โ path to a system assembler, picked up on AIX only.--lto-embed-bitcode=<value>โ embeds LLVM bitcode in object files produced by LTO. the options:=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 โจ--lto-pass-remarks-format=<format>โ the format used for serializing remarks โ default isYAML.--lto-pass-remarks-output=<filename>โ output filename for pass remarks.--matrix-default-layout=<value>โ sets the default matrix layout:=column-majorโ use column-major layout=row-majorโ use row-major layout
--matrix-print-after-transpose-optโ no description, just vibes ๐ธ--max-counter-promotions=<int>โ max number of allowed counter promotions.--max-counter-promotions-per-loop=<uint>โ max number of counter promotions per loop, so we don't crank up register pressure too much ๐ญ--mc-relax-allโ when used withfiletype=obj, relaxes all fixups in the emitted object file.--mcabacโtbd. that's it. that's the entry ๐--merror-missing-parenthesisโ error for missing parenthesis around predicate registers.--merror-noncontigious-registerโ error for register names that aren't contigious. (yes, spelled exactly like that, don't @ me โจ)--mhvxโ enables Hexagon Vector eXtensions ๐--mhvx=<value>โ also enables Hexagon Vector eXtensions, but u pick which one:=v60โ build for HVXv60=v62โ build for HVXv62=v65โ build for HVXv65=v66โ build for HVXv66=v67โ build for HVXv67=v68โ build for HVXv68=v69โ build for HVXv69=v71โ build for HVXv71=v73โ build for HVXv73=v75โ build for HVXv75=v79โ build for HVXv79
--mips-compact-branches=<value>โ MIPS specific: compact branch policy ๐=neverโ do not use compact branches if possible=optimalโ use compact branches where appropriate โ this is the 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?--misexpect-tolerance=<uint>โ prevents emitting diagnostics when profile counts are within N% of the threshold. (yes there are two dots at the end in the original, we keep the lore ๐ซถ)--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 into their single precision counterparts.--mno-pairingโ disables looking for duplex instructions for Hexagon.--module-map-path=<string>โ turns on module map output and specifies the output path or file name โจ if no path is specified and the prefix option is specified, the prefix gets used for the file path.--mwarn-missing-parenthesisโ warn for missing parenthesis around predicate registers.--mwarn-noncontigious-registerโ warn for register names that arent contigious. (again, spelling preserved, character for character ๐)--mwarn-sign-mismatchโ warn for mismatching a signed and unsigned value.--no-coverage-checkโ don't do the coverage check ๐--no-deprecated-warnโ suppresses all deprecated warnings.--no-discriminatorsโ disables generation of discriminator information.--no-type-checkโ suppresses type errors (Wasm).--no-warnโ suppresses all warnings. silence is golden fr fr.--nvptx-approx-log2f32โ NVPTX specific: whether to uselg2.approxforlog2.--nvptx-sched4regโ NVPTX specific: schedule for register pressue. (kept exactly as written ๐)--object-size-offset-visitor-max-visit-instructions=<uint>โ maximum number of instructions forObjectSizeOffsetVisitorto look at.--pgo-block-coverageโ use this option to enable basic block coverage instrumentation.--pgo-temporal-instrumentationโ use this option to enable temporal instrumentation โณ--pgo-view-block-coverage-graphโ creates a dot file of CFGs with block coverage inference information ๐--prefix=<string>โ bestie, this prepends header file paths with whatever prefix you give it ๐ซถ. And if you don't specify one? The files are just treated as relative to the header list file. that's it, that's the vibe ๐--print-pipeline-passesโ prints a-passescompatible string describing the pipeline. keyword: best-effort only. it's giving โจcasualโจ and we respect that ๐--problem-files-list=<string>โ a whole list of files that have compilation or modularization problems, for assistant mode. heads up: this one will be excluded ๐--profile-correlate=<value>โ use debug info or a binary file to correlate profiles. the values are:=<empty>โ No profile correlation ๐ (the void, the nothing, the empty string era)=debug-infoโ Use debug info to correlate ๐=binaryโ Use binary to correlate ๐งฌ
--promote-alloca-vector-loop-user-weight=<uint>โ the bonus weight of users of allocas within loop when sorting profitable allocas. very "who's the main character alloca" energy fr fr ๐--r600-ir-structurizeโ Use StructurizeCFG IR pass ๐ฅ--riscv-add-build-attributesโ okay so the og page literally gives no description for this one. iconic mystery behavior, iykyk ๐คซ--riscv-use-aaโ Enable the use of AA during codegen. slay โญ--root-module=<string>โ specify the name of the root module ๐ฑ--runtime-counter-relocationโ Enable relocating counters at runtime. live, laugh, relocate โจ--safepoint-ir-verifier-print-onlyโ another one where the original page says literally nothing else. no notes, just vibes ๐--sample-profile-check-record-coverage=<N>โ emit a warning if less than N% of records in the input profile are matched to the IR. lowkey a "you okay bestie?" flag ๐ญ--sample-profile-check-sample-coverage=<N>โ emit a warning if less than N% of samples in the input profile are matched to the IR. same energy, sample edition ๐--sample-profile-max-propagate-iterations=<uint>โ maximum number of iterations to go through when propagating sample block/edge weights through the CFG. the way it just keeps going through the CFG ๐ฅ--sampled-instr-burst-duration=<uint>โ set the profile instrumentation burst duration, which can range from1to the value ofsampled-instr-period(0is invalid, do not). this number of samples will be recorded for eachsampled-instr-periodcount update. setting to1enables simple sampling, in which case it is recommended to setsampled-instr-periodto a prime number. prime numbers stay winning ๐--sampled-instr-period=<uint>โ set the profile instrumentation sample period. a sample period of0is invalid. for each sample period, a fixed number of consecutive samples will be recorded. that number is controlled by thesampled-instr-burst-durationflag. the default sample period of65536is optimized for generating efficient code that leverages unsigned short integer wrapping in overflow, but this is disabled under simple sampling (burst duration=1) ๐--sampled-instrumentationโ Do PGO instrumentation sampling โจ--sanitizer-early-opt-epโ Insert sanitizers on OptimizerEarlyEP. insert, bestie, insert ๐--save-temp-labelsโ Don't discard temporary labels. keep them, they're precious ๐--skip-ret-exit-blockโ Suppress counter promotion if exit blocks containret. nothing to see here, moving on ๐ช--speculative-counter-promotion-max-exiting=<uint>โ the max number of exiting blocks of a loop to allow speculative counter promotion. cap it, queen ๐--speculative-counter-promotion-to-loopโ when the option is false, 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. read that twice, no cap ๐--spirv-ext=<value>โ specify list of enabled SPIR-V extensions ๐--spv-dump-depsโ Dump MIR with SPIR-V dependencies info ๐๏ธ--spv-emit-nonsemantic-debug-infoโ Emit SPIR-VNonSemantic.Shader.DebugInfo.100instructions. exactly that, character for character, periodt ๐--summary-file=<string>โ the summary file to use for function importing ๐--sve-tail-folding=<string>โ control the use of vectorisation using tail-folding for SVE, where the option is specified in the form(Initial)[+(Flag1|Flag2|...)]:. the options are:disabledโ (Initial) No loop types will vectorize using tail-foldingdefaultโ (Initial) Uses the default tail-folding settings for the target CPUallโ (Initial) All legal loop types will vectorize using tail-foldingsimpleโ (Initial) Use tail-folding for simple loops (not reductions or recurrences)reductionsโ Use tail-folding for loops containing reductionsnoreductionsโ Inverse of aboverecurrencesโ Use tail-folding for loops containing fixed order recurrencesnorecurrencesโ Inverse of abovereverseโ Use tail-folding for loops requiring reversed predicatesnoreverseโ Inverse of above
--tail-predication=<value>โ MVE tail-predication pass options. the values:=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 โ ๏ธ
okay bestie real talk: those two force- ones literally say "might be unsafe" in the og. that's not me being dramatic, that's the page. proceed with caution ๐
--target-abi=<string>โ the name of the ABI to be targeted from the backend. name it, target it, slay it ๐ฏ--thinlto-assume-mergedโ assume the input has already undergone ThinLTO function importing and the other pre-optimization pipeline changes. assumptions, we love them ๐ซถ--threads=<int>โ the og page leaves this one blank. no description, just a flag hanging out, living its truth ๐ถ--translator-compatibility-modeโ SPIR-V Translator compatibility mode ๐ค--type-based-intrinsic-costโ Calculate intrinsics cost based only on argument types. types only, nothing else, minimalism โจ--ubsan-guard-checksโ Guard UBSAN checks withllvm.allow.ubsan.check(). literal, exact, no edits ๐ก๏ธ--use-undefโ Use undef when generating programs.undefera ๐--verify-region-infoโ Verify region info (time consuming). she takes her time, and that's valid, but know it ๐ญ--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 ๐งฎ--wasm-enable-ehโ WebAssembly exception handling ๐ธ๏ธ--wasm-enable-sjljโ WebAssembly setjmp/longjmp handling ๐ธ๏ธ--wasm-use-legacy-ehโ WebAssembly exception handling (legacy). legacy era, still iconic ๐ซก--wholeprogramdevirt-cutoff=<uint>โ max number of devirtualizations for devirt module pass ๐ช--write-experimental-debuginfoโ write debug info in the new non-intrinsic format. has no effect if--preserve-input-debuginfo-format=true๐--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 of2and 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 errata skx102.
โ ๏ธ caveat straight from the og: this may break assumptions about labels corresponding to particular instructions, and should be used with caution. read that again, bestie ๐ซฃ
--x86-pad-max-prefix-size=<uint>โ maximum number of prefixes to use for padding ๐งฑ--x86-relax-relocationsโ emitGOTPCRELX/REX_GOTPCRELX/CODE_4_GOTPCRELXinstead ofGOTPCRELon x86-64 ELF ๐ง--x86-sse2avxโ specify that the assembler should encode SSE instructions with VEX prefix ๐ธ
โจ 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-annotate-metadata-vectorizeโ Append vectorize enable/disable metadata from polly ๐--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โ bestie, dump the module after Polly does its transformations, into a file whose name is suffixed with-afterโจ--polly-dump-after-file=<string>โ same dump-after vibe but you pick exactly where it goes: dump the module after Polly transformations straight into the file you name in string ๐--polly-dump-beforeโ the prequel: dump the module before Polly transformations into a file suffixed with-before๐--polly-dump-before-file=<string>โ dump the module before Polly transformations, to the given file, no suffix guessing, you said the path, it respects the path ๐ซถ--polly-enable-simplifyโ simplify the SCoP after the optimizations. glow-up post-op, we love to see it ๐--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. like a blocklist but for regexes ๐ซ--polly-isl-arg=<argument>โ an option passed to ISL. just hand it over, argument, ISL knows what to do ๐--polly-matmul-optโ perform optimizations of matrix multiplications based on pattern matching. math girlies rise ๐ฅ--polly-on-isl-error-abortโ abort if an isl error is encountered. zero tolerance policy, we respect it ๐--polly-only-func=<string>โ only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided. allowlist energy, main character functions only ๐--polly-only-region=<identifier>โ only run on certain regions (the provided identifier must appear in the name of the region's entry block ๐ธ--polly-only-scop-detectionโ only run scop detection, but no other optimizations. literally just looking, not touching, window shopping ๐ง--polly-optimized-scopsโ Polly โ dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree ๐ that whole sentence is the vibe, keep it close--polly-parallelโ generate thread parallel code (isl codegen only) ๐ multithreading era--polly-parallel-forceโ force generation of thread parallel code, ignoring any cost model. no thoughts, no cost model, just parallel ๐ค--polly-pattern-matching-based-optsโ perform optimizations based on pattern matching ๐--polly-postoptsโ apply post-rescheduling optimizations such as tiling (requires-polly-reschedule) โ ๏ธ note the requirement, bestie, you can't skip the reschedule step and expect this to eat--polly-pragma-based-optsโ apply user-directed transformation from metadata ๐ช--polly-pragma-ignore-depcheckโ skip the dependency check for pragma-based transformations. yes this skips a safety check. yes it's in the original. be careful out there, fr fr ๐ญ--polly-process-unprofitableโ process scops that are unlikely to benefit from Polly optimizations. doing it anyway for the plot ๐--polly-register-tilingโ enable register tiling ๐--polly-reportโ print information about the activities of Polly. Polly's personal diary, published ๐โจ--polly-rescheduleโ optimize SCoPs using ISL ๐ฆ--polly-showโ highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions) โจ highlighter out, both the CFG BBs and the LLVM-IR instructions get the glow--polly-show-onlyโ highlight the code regions that will be optimized in a (CFG only BBs) ๐ just the CFG BBs this time, we keep it minimal--polly-stmt-granularity=<value>โ algorithm to use for splitting basic blocks into multiple statements. pick your granularity, girlie:=bbโ one statement per basic block ๐งฑ=scalar-indepโ scalar independence heuristic ๐ฌ=storeโ store-level granularity ๐ช
--polly-tc-optโ perform optimizations of tensor contractions based on pattern matching ๐ pattern matching again, but make it tensors--polly-tilingโ enable loop tiling ๐ฒ--polly-vectorizer=<value>โ select the vectorization strategy. choose your fighter:=noneโ no Vectorization ๐ซ=stripmineโ strip-mine outer loops for the loop-vectorizer to trigger โ๏ธ
okay that's the whole options list, no skips, no crumbs left behind ๐
and that's a wrap on modularize fr โ this page is modularize 20, dated September 2026, and it lives in section MODULARIZE(1). go forth and modularize, bestie, you ate ๐ซถโจ๐
๐ฆ where this page comes from
- ubuntu stonking: clang-tools-20 1:20.1.8-2ubuntu13 ยท APACHE-2-LLVM-EXCEPTIONS
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms