Skip to content

Commit 2f77757

Browse files
authored
[docs] Rewrite cmake LLVM_RAM_PER_*_JOB description (#88570)
Rewrite `LLVM_PARALLEL_{}_JOBS` and `LLVM_RAM_PER_{}_JOB` documentation.
1 parent cb26391 commit 2f77757

File tree

1 file changed

+17
-25
lines changed

1 file changed

+17
-25
lines changed

llvm/docs/CMake.rst

+17-25
Original file line numberDiff line numberDiff line change
@@ -754,36 +754,28 @@ enabled sub-projects. Nearly all of these variable names begin with
754754
during the build. Enabling this option can significantly speed up build times
755755
especially when building LLVM in Debug configurations.
756756

757-
**LLVM_PARALLEL_COMPILE_JOBS**:STRING
758-
Define the maximum number of concurrent compilation jobs.
759-
760-
**LLVM_PARALLEL_LINK_JOBS**:STRING
761-
Define the maximum number of concurrent link jobs.
762-
763-
**LLVM_PARALLEL_TABLEGEN_JOBS**:STRING
764-
Define the maximum number of concurrent tablegen jobs.
757+
**LLVM_PARALLEL_{COMPILE,LINK,TABLEGEN}_JOBS**:STRING
758+
Limit the maximum number of concurrent compilation, link or
759+
tablegen jobs respectively. The default total number of parallel jobs is
760+
determined by the number of logical CPUs.
765761

766762
**LLVM_PROFDATA_FILE**:PATH
767763
Path to a profdata file to pass into clang's -fprofile-instr-use flag. This
768764
can only be specified if you're building with clang.
769765

770-
**LLVM_RAM_PER_COMPILE_JOB**:STRING
771-
Calculates the amount of Ninja compile jobs according to available resources.
772-
Value has to be in MB, overwrites LLVM_PARALLEL_COMPILE_JOBS. Compile jobs
773-
will be between one and amount of logical cores.
774-
775-
**LLVM_RAM_PER_LINK_JOB**:STRING
776-
Calculates the amount of Ninja link jobs according to available resources.
777-
Value has to be in MB, overwrites LLVM_PARALLEL_LINK_JOBS. Link jobs will
778-
be between one and amount of logical cores. Link jobs will not run
779-
exclusively therefore you should add an offset of one or two compile jobs
780-
to be sure its not terminated in your memory restricted environment. On ELF
781-
platforms also consider ``LLVM_USE_SPLIT_DWARF`` in Debug build.
782-
783-
**LLVM_RAM_PER_TABLEGEN_JOB**:STRING
784-
Calculates the amount of Ninja tablegen jobs according to available resources.
785-
Value has to be in MB, overwrites LLVM_PARALLEL_TABLEGEN_JOBS. Tablegen jobs
786-
will be between one and amount of logical cores.
766+
**LLVM_RAM_PER_{COMPILE,LINK,TABLEGEN}_JOB**:STRING
767+
Limit the number of concurrent compile, link or tablegen jobs
768+
respectively, depending on available physical memory. The value
769+
specified is in MB. The respective
770+
``LLVM_PARALLEL_{COMPILE,LINK,TABLEGEN}_JOBS`` variable is
771+
overwritten by computing the memory size divided by the
772+
specified value. The largest memory user is linking, but remember
773+
that jobs in the other categories might run in parallel to the link
774+
jobs, and you need to consider their memory requirements when
775+
in a memory-limited environment. Using a
776+
``-DLLVM_RAM_PER_LINK_JOB=10000`` is a good approximation. On ELF
777+
platforms debug builds can reduce link-time memory pressure by also
778+
using ``LLVM_USE_SPLIT_DWARF``.
787779

788780
**LLVM_REVERSE_ITERATION**:BOOL
789781
If enabled, all supported unordered llvm containers would be iterated in

0 commit comments

Comments
 (0)