MODULARIZE(1)
MODULARIZE(1) โจ User Commands โจ modularize 21
okay bestie, pull up a chair ๐ this one is LONG, so hydrate, stretch, and let's go. no skipping, every single flag is coming with us ๐ซถ
๐ธ NAME ๐ธ
modularize โ the manual page for modularize 21. that's it. that's the whole name. short queen behavior ๐
๐ฆ DESCRIPTION ๐ฆ
๐ซ OVERVIEW ๐ซ
modularize.
...yeah. that's the entire overview. it's giving minimalism ๐
โจ USAGE โจ
modularize [options] <list of one or more header list files> <arguments to be passed to front end>...
๐ OPTIONS ๐
๐ Color Options ๐
--colorโ Use colors in output (default=autodetect, so it decides for itself whether to serve looks ๐)
๐ General options ๐
-I <path>โ Include path for coverage check.--aarch64-neon-syntax=<value>โ Choose style of NEON code to emit from 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 devirtualization CGSCC repeat pass is reached--allow-ginsert-as-artifactโ AllowG_INSERTto be considered an artifact. 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 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 to O(2^N), where N is the max depth. ๐ญ--amdgpu-promote-alloca-to-vector-limit=<uint>โ Maximum byte size to consider promote alloca to vector--amdgpu-promote-alloca-to-vector-max-regs=<uint>โ Maximum vector size (in 32b registers) to use when promoting alloca--amdgpu-promote-alloca-to-vector-vgpr-ratio=<uint>โ Ratio of VGPRs to budget for promoting alloca to vectors--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 ofmovrelfor vector indexing--arc-contract-use-objc-claim-rvโ Enable generation of calls toobjc_claimAutoreleasedReturnValue--argext-abi-checkโ Verify that narrow int args are properly extended per the SystemZ ABI.--arm-add-build-attributesโ (no description given, bestie, we're all just standing here in silence ๐)--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 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 here either ๐)--cfg-hide-unreachable-pathsโ (also vibing with no description)--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 in single byte counters mode)--cost-kind=<value>โ Target cost kind=throughputโ Reciprocal throughput=latencyโ Instruction latency=code-sizeโ Code size=size-latencyโ Code size and latency=allโ Print all cost kinds
--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--ctx-prof-include-emptyโ Also write profiles with all-zero counters. Intended for testing/debugging.--ctx-profile-force-is-specializedโ Treat the given module as-if it were containing the post-thinlink module containing the root--debug-info-correlateโ Use debug info to correlate profiles. (Deprecated, use-profile-correlate=debug-info) โ yeah she's deprecated bestie, take the exit ๐ช--debugify-atomsโ (no description, just out here existing โจ)--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
--emit-gnuas-syntax-on-zosโ Emit GNU Assembly Syntax on z/OS.--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-stylesetjmp/longjmphandling--enable-gvn-hoistโ Enable the GVN hoisting pass (default= off)--enable-gvn-memdepโ (no description, keeping it mysterious ๐ง)--enable-gvn-memoryssaโ (no description ๐)--enable-gvn-sinkโ Enable the GVN sinking pass (default= off)--enable-jump-table-to-switchโ EnableJumpTableToSwitchpass (default= off)--enable-load-in-loop-preโ (no description ๐ธ)--enable-load-preโ (no description ๐)--enable-loop-simplifycfg-term-foldingโ (no description ๐)--enable-name-compressionโ Enable name/filename string compression--enable-split-backedge-in-load-preโ (no description ๐ซ)--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 ICP pass for 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.
okay we're not done, keep scrolling bestie, there's more coming ๐
--execute-concurrency=<uint>โ how many threads are gonna chomp through all your files in parallel ๐งต Set it to0and it just uses the hardware concurrency instead. Heads up bestie: this flag only applies to all-TUs.--executor=<string>โ the name of the executor you wanna use โจ--expand-variadics-override=<value>โ overrides howexpand-variadicsbehaves ๐=unspecifiedโ just roll with the implementation defaults=disableโ nuke the pass entirely=optimizeโ optimise it, but the ABI stays untouched=loweringโ actually change the variadic calling convention
--experimental-debug-variable-locationsโ use the experimental new value-tracking variable locations ๐งช lowkey experimental fr--fatal-warningsโ warnings get treated like errors. no mercy ๐--fdpicโ use the FDPIC ABI--filter=<string>โ only process the files that match this filter ๐ฏ this one only applies to all-TUs too.--force-tail-folding-style=<value>โ force the tail folding style ๐=noneโ disable tail folding completely=dataโ create a lane mask for data only, using theactive.lane.maskintrinsic=data-without-lane-maskโ create the lane mask withcompare/stepvector=data-and-controlโ create the lane mask using theactive.lane.maskintrinsic, and use it for both data and control flow=data-and-control-without-rt-checkโ same energy asdata-and-control, but 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 bigger than this value ๐--fs-profile-debug-prob-diff-threshold=<uint>โ only shows the debug message if the branch probability is bigger than this value (it's in percentage!)--generate-merged-base-profilesโ when you're generating nested context-sensitive profiles, this always generates an extra base profile for a function with all its context profiles merged into it ๐ซถ--gpsize=<uint>โ Global Pointer Addressing Size. the default size is8.--hash-based-counter-splitโ renames the counter variable of a comdat function based on the cfg hash--hexagon-add-build-attributesโ no description given, it's giving mystery ๐--hexagon-rdf-limit=<uint>โ also no description. iconic and unknowable โจ--hot-cold-splitโ enable the hot-cold splitting pass ๐ฅ๐ง--hwasan-percentile-cutoff-hot=<int>โ hot percentile cutoff.--hwasan-random-rate=<number>โ a probability value in the range[0.0, 1.0]for keeping the instrumentation of a function. Note: instrumentation can get skipped randomly OR because of the hot percentile cutoff, if both of them are supplied ๐--implicit-mapsymsโ lets a mapping symbol at the section beginning be implicit, which lowers the number of mapping symbols at the expense of some portability. Recommended for projects that can build all their object files using this option.--import-all-indexโ import all external functions in the index ๐ฅ--incremental-linker-compatibleโ when it's used withfiletype=obj, it emits an object file that can be used with an incremental linker--instcombine-code-sinkingโ enable code sinking ๐--instcombine-guard-widening-window=<uint>โ how wide an instruction window is allowed to bypass looking for another guard--instcombine-max-num-phis=<uint>โ the max number of phis to handle in intptr/ptrint folding--instcombine-max-sink-users=<uint>โ the max number of undroppable users for instruction sinking--instcombine-maxarray-size=<uint>โ the max array size that gets considered when doing a combine--instcombine-negator-enabledโ should we even attempt to sink negations? ๐ค--instcombine-negator-max-depth=<uint>โ what's the maximal lookup depth when trying to check if negation sinking is viable--instrprof-atomic-counter-update-allโ makes all profile counter updates atomic (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--intrinsic-cost-strategy=<value>โ the costing strategy for intrinsic instructions=instruction-costโ useTargetTransformInfo::getInstructionCost=intrinsic-costโ useTargetTransformInfo::getIntrinsicInstrCost=type-based-intrinsic-costโ calculate the intrinsic cost based only on argument types
--iterative-counter-promotionโ allow counter promotion across the whole loop nest ๐ชบ--loongarch-use-aaโ enable the use of AA during codegen.--lower-allow-check-percentile-cutoff-hot=<int>โ hot percentile cutoff.--lower-allow-check-random-rate=<number>โ a probability value in the range[0.0, 1.0]of unconditional pseudo-random checks ๐ฒ--lto-aix-system-assembler=<path>โ the path to a system assembler, picked up on AIX only--lto-embed-bitcode=<value>โ embed LLVM bitcode in object files produced by LTO=noneโ do not embed=optimizedโ embed after all the 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: YAML)--lto-pass-remarks-output=<filename>โ the 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, we live in a mystery โจ--max-counter-promotions=<int>โ the max number of allowed counter promotions--max-counter-promotions-per-loop=<uint>โ the max number of counter promotions per loop, so register pressure doesn't get pushed too high ๐--mc-relax-allโ when used withfiletype=obj, it relaxes all fixups in the emitted object file--mcabacโ tbd ๐ญ--merror-missing-parenthesisโ error for a missing parenthesis around predicate registers--merror-noncontigious-registerโ error for register names that aren't contigious--mhvxโ enable Hexagon Vector eXtensions--mhvx=<value>โ enable Hexagon Vector eXtensions=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=v69โ build for HVX v69=v71โ build for HVX v71=v73โ build for HVX v73=v75โ build for HVX v75=v79โ build for HVX v79
--mips-compact-branches=<value>โ MIPS Specific: the 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โ enable mips16 constant islands ๐๏ธ--mips16-hard-floatโ enable 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.--mno-compoundโ disable looking for compound instructions for Hexagon--mno-fixupโ disable fixing up resolved relocations for Hexagon--mno-ldc1-sdc1โ expand double precision loads and stores to their single precision counterparts--mno-pairingโ disable 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, it uses the prefix for the file path ๐บ๏ธ--ms-secure-hotpatch-functions-file=<filename>โ a file containing a list of mangled function names to mark for Windows Secure Hot-Patching ๐ฉน--ms-secure-hotpatch-functions-list=<list>โ a list of mangled function names to mark for Windows Secure Hot-Patching--mwarn-missing-parenthesisโ warn for a missing parenthesis around predicate registers--mwarn-noncontigious-registerโ warn for register names that aren't contigious--mwarn-sign-mismatchโ warn for mismatching a signed and an unsigned value โ ๏ธ--no-coverage-checkโ don't do the coverage check.--no-deprecated-warnโ suppress all deprecated warnings ๐คซ--no-discriminatorsโ turns OFF generation of discriminator info. we're saying bye to discriminators ๐--no-type-checkโ suppresses type errors (this one's a Wasm girlie)--no-warnโ suppresses all warnings. every single one. zero complaints, zero notes โจ--nvptx-approx-log2f32โ NVPTX Specific: whether to uselg2.approxforlog2--nvptx-sched4regโ NVPTX Specific: schedule for register pressue (yes bestie that's literally how it's spelled in the source, I'm just the messenger ๐)--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>โ prepends header file paths with this prefix. If you don't specify it, the files are considered to be relative to the header list file.--print-pipeline-passesโ prints a-passescompatible string describing the pipeline. best-effort only, so manage your expectations ๐ซถ--problem-files-list=<string>โ list of files with compilation or modularization problems for assistant mode. this will be excluded.--profile-correlate=<value>โ use debug info or binary file to correlate profiles.=<empty>โ no profile correlation=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--r600-ir-structurizeโ useStructurizeCFGIR pass--riscv-add-build-attributesโ (no description given, it's giving mystery ๐ต๏ธ)--riscv-use-aaโ enable the use of AA during codegen.--root-module=<string>โ specify the name of the root module.--runtime-counter-relocationโ enable relocating counters at runtime.--safepoint-ir-verifier-print-onlyโ (also no description, iconic silence ๐)--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.--sampled-instr-burst-duration=<uint>โ sets the profile instrumentation burst duration, which can range from 1 all the way up to the value of'sampled-instr-period'(0is invalid ๐ซ). this number of samples will be recorded for each'sampled-instr-period'count update. setting it to 1 enables simple sampling, in which case it's recommended you set'sampled-instr-period'to a prime number.--sampled-instr-period=<uint>โ sets the profile instrumentation sample period. a sample period of0is invalid ๐ซ. for each sample period, a fixed number of consecutive samples will be recorded, and the number is controlled by the'sampled-instr-burst-duration'flag. 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 onOptimizerEarlyEP.--save-temp-labelsโ don't discard temporary labels--skip-ret-exit-blockโ suppress counter promotion if exit blocks containret.--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 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.--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--summary-file=<string>โ the summary file to use for function importing.--sve-tail-folding=<string>โ controls the use of vectorisation using tail-folding for SVE, written in the form(Initial)[+(Flag1|Flag2|...)]: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=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
--target-abi=<string>โ the name of the ABI to be targeted from the backend.--thinlto-assume-mergedโ assume the input has already undergone ThinLTO function importing and the other pre-optimization pipeline changes.--threads=<int>โ (no description, we simply vibe)--translator-compatibility-modeโ SPIR-V Translator compatibility mode--ubsan-guard-checksโ guard UBSAN checks withllvm.allow.ubsan.check().--use-undefโ useundefwhen generating programs.--verify-region-infoโ verify region info (heads up, this 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--wasm-enable-ehโ WebAssembly exception handling--wasm-enable-sjljโ WebAssemblysetjmp/longjmphandling--wasm-use-legacy-ehโ WebAssembly exception handling (legacy)--wholeprogramdevirt-cutoff=<uint>โ max number of devirtualizations for devirt module pass--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>โ controls how the assembler should align branches with NOP. if the boundary's size is not 0, it should be a power of 2 and no less than 32. branches will be aligned to prevent them from being across or against the boundary of specified size. the default value0does not align branches.--x86-branches-within-32B-boundariesโ aligns selected instructions to mitigate the 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.
โ ๏ธ bestie listen โ "should be used with caution" is not a suggestion, it's a warning. labels and instructions might stop matching up the way you assumed. ๐
--x86-enable-apx-for-relocationโ enable APX features (EGPR, NDD and NF) for instructions with relocations on x86-64 ELF--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
๐งฌ IR2Vec Options ๐งฌ
--ir2vec-arg-weight=<number>โ weight for argument embeddings--ir2vec-opc-weight=<number>โ weight for opcode embeddings--ir2vec-type-weight=<number>โ weight for type embeddings--ir2vec-vocab-path=<string>โ where your vocab file lives for IR2Vec, bestie, that's the path right there ๐๏ธ
๐ฆ Polly Options ๐ฆ
Configure the polly loop optimizer โ yes, that's the whole vibe of this little family of flags ๐
--pollyโ turn the polly optimizer ON (works alongside-O1,-O2or-O3) โจ--polly-2nd-level-tilingโ ok so imagine loop tiling but a second level of it, icon behavior ๐--polly-annotate-metadata-vectorizeโ appends vectorize enable/disable metadata straight from polly ๐--polly-ast-print-accessesโ prints the memory access functions, for when you're nosy (affectionate) ๐--polly-context=<isl parameter set>โ gives you extra 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.) ๐ got it? got it.--polly-delicm-max-ops=<int>โ max number of isl operations to invest in lifetime analysis;0= no limit ๐ซ--polly-detect-full-functionsโ allows the detection of full functions, main character energy fr fr ๐--polly-dump-afterโ dumps the module after Polly transformations into a file suffixed with"-after"๐ค--polly-dump-after-file=<string>โ dumps the module after Polly transformations to the file you name ๐ฏ--polly-dump-beforeโ dumps the module before Polly transformations into a file suffixed with"-before"๐ฅ--polly-dump-before-file=<string>โ dumps the module before Polly transformations to the file you name ๐ฏ--polly-enable-simplifyโ simplifies the SCoP after optimizations, tidy queen ๐งผ--polly-ignore-func=<string>โ ignore functions matching 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>โ an option you pass along to ISL ๐จ--polly-matmul-optโ performs optimizations of matrix multiplications based on pattern matching ๐ข๐ฅ--polly-on-isl-error-abortโ abort if an isl error is encountered. like, immediately. no cap ๐ญ--polly-only-func=<string>โ only run on functions matching a regex. multiple regexes can be comma separated. scop detection will run on all functions that match ANY of the regexes provided ๐ฏ--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, no other optimizations. just the vibe check, nothing else ๐๏ธ--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 ๐ณ--polly-parallelโ generate thread parallel code (isl codegen only) ๐งต--polly-parallel-forceโ force generation of thread parallel code, ignoring any cost model ๐ค--polly-pattern-matching-based-optsโ performs optimizations based on pattern matching ๐ง--polly-postoptsโ apply post-rescheduling optimizations such as tiling (requires-polly-reschedule) โ ๏ธ--polly-pragma-based-optsโ apply user-directed transformation from metadata ๐ช--polly-pragma-ignore-depcheckโ skip the dependency check for pragma-based transformations ๐--polly-process-unprofitableโ process scops that are unlikely to benefit from Polly optimizations. giving the underdogs a chance ๐ซถ--polly-register-tilingโ enable register tiling ๐--polly-reportโ prints information about the activities of Polly. polly's little diary ๐--polly-rescheduleโ optimize SCoPs using ISL ๐--polly-showโ highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions) ๐--polly-show-onlyโ highlight the code regions that will be optimized in a (CFG only BBs) โจ--polly-stmt-granularity=<value>โ the algorithm to use for splitting basic blocks into multiple statements ๐ฐ=bbโ one statement per basic block=scalar-indepโ scalar independence heuristic=storeโ store-level granularity
--polly-tc-optโ performs optimizations of tensor contractions based on pattern matching ๐งฎ--polly-tilingโ enable loop tiling ๐งฑ--polly-vectorizer=<value>โ select the vectorization strategy ๐น=noneโ no Vectorization=stripmineโ strip-mine outer loops for the loop-vectorizer to trigger
and that's the whole page, bestie!! ๐ you truly read all the way to the end and that is so iconic of you ๐ this one's modularize version 21, dated September 2026, and it answers to MODULARIZE(1) when you call it. now go forth and modularize something gorgeous, ily, mwah ๐๐ฆโจ
๐ฆ where this page comes from
- ubuntu stonking: clang-tools-21 1:21.1.8-10ubuntu2 ยท APACHE-2-LLVM-EXCEPTIONS
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms