llvm/docs
Vedant Kumar d91d378e3a Retry: [llvm-profdata] Speed up merging by using a thread pool
Add a "-j" option to llvm-profdata to control the number of threads used.
Auto-detect NumThreads when it isn't specified, and avoid spawning threads when
they wouldn't be beneficial.

I tested this patch using a raw profile produced by clang (147MB). Here is the
time taken to merge 4 copies together on my laptop:

  No thread pool: 112.87s user 5.92s system 97% cpu 2:01.08 total
  With 2 threads: 134.99s user 26.54s system 164% cpu 1:33.31 total

Changes since the initial commit:

  - When handling odd-length inputs, call ThreadPool::wait() before merging the
    last profile. Should fix a race/off-by-one (see r275937).

Differential Revision: https://reviews.llvm.org/D22438

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275938 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-19 01:17:20 +00:00
..
_ocamldoc
_static
_templates
_themes/llvm-theme
CommandGuide Retry: [llvm-profdata] Speed up merging by using a thread pool 2016-07-19 01:17:20 +00:00
Frontend
HistoricalNotes
TableGen fix some various typos in the doc 2016-07-02 19:28:40 +00:00
tutorial [Kaleidoscope][BuildingAJIT] More work on the text for Chapter 3. 2016-07-19 00:25:52 +00:00
AdvancedBuilds.rst
AliasAnalysis.rst Change the email address for commit access requests to my llvm address. 2016-06-23 16:29:22 +00:00
AMDGPUUsage.rst Speculatively fix the sphinx build, which does not think the original code was valid nasm (http://lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/11854/steps/docs-llvm-html/logs/stdio). 2016-07-14 13:08:16 +00:00
ARM-BE-bitcastfail.png
ARM-BE-bitcastsuccess.png
ARM-BE-ld1.png
ARM-BE-ldr.png
Atomics.rst fix some various typos in the doc 2016-07-02 19:28:40 +00:00
BigEndianNEON.rst
BitCodeFormat.rst IR: Allow metadata attachments on declarations, and fix lazy loaded metadata issue with globals. 2016-06-21 23:42:48 +00:00
BlockFrequencyTerminology.rst
BranchWeightMetadata.rst
Bugpoint.rst
CMake.rst [docs] Bump minimum version of CMake in its own doc 2016-06-23 15:28:00 +00:00
CMakeLists.txt
CMakePrimer.rst [Docs] Add CMake Primer document 2016-04-29 20:34:54 +00:00
CodeGenerator.rst [Docs][CodeGenerator] Don't specify the number of operands in BuildMI 2016-06-29 14:14:59 +00:00
CodeOfConduct.rst [Conduct] Refine what "rare cases" means wrt violations outside our spaces. 2016-07-06 19:32:41 +00:00
CodingStandards.rst
CommandLine.rst
CompileCudaWithLLVM.rst [CUDA] Add section to docs about controlling fp optimizations. 2016-05-25 23:11:31 +00:00
CompilerWriterInfo.rst Update psabi link for x86-64. Add link to linux gabi supplement. 2016-04-12 21:54:57 +00:00
conf.py Bump the trunk version to 4.0.0svn. 2016-07-18 17:51:04 +00:00
CoverageMappingFormat.rst [docs] Corrections w.r.t V2 of the coverage mapping format 2016-03-28 22:16:01 +00:00
DebuggingJITedCode.rst
DeveloperPolicy.rst Bump the trunk version to 4.0.0svn. 2016-07-18 17:51:04 +00:00
doxygen-mainpage.dox
doxygen.cfg.in
Dummy.html
ExceptionHandling.rst
ExtendedIntegerResults.txt
ExtendingLLVM.rst
Extensions.rst
FAQ.rst FAQ: Remove the entire Build Problems section 2016-03-23 06:54:42 +00:00
FaultMaps.rst
GarbageCollection.rst
gcc-loops.png
GetElementPtr.rst
GettingStarted.rst [CMake] Update to requiring CMake 3.4.3 2016-05-31 20:21:32 +00:00
GettingStartedVS.rst Clarifying some of the requirements for building with Visual Studio on Windows. Namely, we require the latest Update to be installed (for sanity purposes), and we require CMake 2.8.12.2 for building LLVM with Visual Studio. 2016-03-29 20:23:55 +00:00
GoldPlugin.rst
HowToAddABuilder.rst
HowToBuildOnARM.rst
HowToCrossCompileLLVM.rst [docs] Fix unexpected indentation in HowToCrossCompileLLVM.rst 2016-05-10 14:02:46 +00:00
HowToReleaseLLVM.rst
HowToSetUpLLVMStyleRTTI.rst
HowToSubmitABug.rst
HowToUseAttributes.rst
HowToUseInstrMappings.rst
InAlloca.rst
index.rst Introduce a *draft* of a code of conduct for the LLVM community and the 2016-06-30 20:27:54 +00:00
LangRef.rst PR28516: Fix LangRef description of call and invoke to match IR changes for typeless pointers 2016-07-13 17:21:34 +00:00
Lexicon.rst
LibFuzzer.rst [libFuzzer] docs: merge two lines with cmake instructions, add -DLLVM_ENABLE_ASSERTIONS=ON 2016-06-08 01:31:40 +00:00
LinkTimeOptimization.rst Fix LTO document 2016-07-08 00:28:29 +00:00
linpack-pc.png
LLVMBuild.rst
LLVMBuild.txt
make.bat
Makefile.sphinx Bring back Makefile.sphinx 2016-03-23 00:30:57 +00:00
MarkedUpDisassembly.rst
MCJIT-creation.png
MCJIT-dyld-load.png
MCJIT-engine-builder.png
MCJIT-load-object.png
MCJIT-load.png
MCJIT-resolve-relocations.png
MCJITDesignAndImplementation.rst
MergeFunctions.rst fix incorrect xref in sphinx doc 2016-07-13 06:10:37 +00:00
MIRLangRef.rst
NVPTXUsage.rst NVPTX: Replace uses of cuda.syncthreads with nvvm.barrier0 2016-07-06 20:02:45 +00:00
Packaging.rst
Passes.rst Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
Phabricator.rst
ProgrammersManual.rst fix incorrect xref in sphinx doc 2016-07-13 06:10:37 +00:00
Projects.rst
re_format.7
README.txt
ReleaseNotes.rst Trunk release notes now refer to 4.0.0 2016-07-18 18:02:23 +00:00
ReleaseProcess.rst
ReportingGuide.rst fix some various typos in the doc 2016-07-02 19:28:40 +00:00
ScudoHardenedAllocator.rst [sanitizer] Initial implementation of a Hardened Allocator 2016-06-07 01:20:26 +00:00
SegmentedStacks.rst
SourceLevelDebugging.rst Synchronize LLVM and clang's ObjCDeclSpec::ObjCPropertyAttributeKind. 2016-07-14 00:41:18 +00:00
SphinxQuickstartTemplate.rst
StackMaps.rst
Statepoints.rst
SystemLibrary.rst
TableGenFundamentals.rst
TestingGuide.rst Review fixes to lit documentation 2016-07-12 20:59:17 +00:00
TestSuiteMakefileGuide.rst
TypeMetadata.rst IR: New representation for CFI and virtual call optimization pass metadata. 2016-06-24 21:21:32 +00:00
Vectorizers.rst
WritingAnLLVMBackend.rst [Docs][WritingAnLLVMBackend] Makefiles are deprecated 2016-05-26 21:31:56 +00:00
WritingAnLLVMPass.rst
yaml2obj.rst
YamlIO.rst

LLVM Documentation
==================

LLVM's documentation is written in reStructuredText, a lightweight
plaintext markup language (file extension `.rst`). While the
reStructuredText documentation should be quite readable in source form, it
is mostly meant to be processed by the Sphinx documentation generation
system to create HTML pages which are hosted on <http://llvm.org/docs/> and
updated after every commit. Manpage output is also supported, see below.

If you instead would like to generate and view the HTML locally, install
Sphinx <http://sphinx-doc.org/> and then do:

    cd <build-dir>
    cmake -DLLVM_ENABLE_SPHINX=true -DSPHINX_OUTPUT_HTML=true <src-dir>
    make -j3 docs-llvm-html
    $BROWSER <build-dir>/docs//html/index.html

The mapping between reStructuredText files and generated documentation is
`docs/Foo.rst` <-> `<build-dir>/docs//html/Foo.html` <-> `http://llvm.org/docs/Foo.html`.

If you are interested in writing new documentation, you will want to read
`SphinxQuickstartTemplate.rst` which will get you writing documentation
very fast and includes examples of the most important reStructuredText
markup syntax.

Manpage Output
===============

Building the manpages is similar to building the HTML documentation. The
primary difference is to use the `man` makefile target, instead of the
default (which is `html`). Sphinx then produces the man pages in the
directory `<build-dir>/docs/man/`.

    cd <build-dir>
    cmake -DLLVM_ENABLE_SPHINX=true -DSPHINX_OUTPUT_MAN=true <src-dir>
    make -j3 docs-llvm-man
    man -l >build-dir>/docs/man/FileCheck.1

The correspondence between .rst files and man pages is
`docs/CommandGuide/Foo.rst` <-> `<build-dir>/docs//man/Foo.1`.
These .rst files are also included during HTML generation so they are also
viewable online (as noted above) at e.g.
`http://llvm.org/docs/CommandGuide/Foo.html`.

Checking links
==============

The reachability of external links in the documentation can be checked by
running:

    cd docs/
    make -f Makefile.sphinx linkcheck