llvm-mirror/docs
Michael Kruse 292847821f [LangRef] Fix condition for when a loop is considered parallel.
The wording before this patch applies to llvm.mem.parallel_loop_access, not access groups.

Reviewed By: mppf, hfinkel

Differential Revision: https://reviews.llvm.org/D83781
2020-09-01 15:41:59 -05:00
..
_ocamldoc
_static
_templates
_themes/llvm-theme
AMDGPU [AMDGPU][MC][NFC][DOC] Updated AMD GPU assembler syntax description. 2020-08-21 14:25:14 +03:00
CommandGuide [docs] Fix indentation in FileCheck.rst 2020-08-31 13:20:04 -07:00
DependenceGraphs
Frontend
GlobalISel GlobalISel: Make type for lower action more consistently optional 2020-08-17 16:24:55 -04:00
HistoricalNotes
PDB
Proposals [docs/examples] As part of using inclusive language within the llvm 2020-06-20 00:51:18 -07:00
TableGen Replace TableGen range piece punctuator with '...' 2020-08-21 23:33:57 +02:00
tutorial Fix typo in tutorial 2020-07-21 17:28:24 +02:00
AddingConstrainedIntrinsics.rst
AdvancedBuilds.rst
AliasAnalysis.rst [docs] Fix typos 2020-08-09 19:31:49 -07:00
AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst [AMDGPU, docs] Fix typos 2020-08-25 00:00:23 +05:30
AMDGPUInstructionNotation.rst [AMDGPU][MC][NFC][DOC] Updated AMD GPU assembler syntax description. 2020-08-21 14:25:14 +03:00
AMDGPUInstructionSyntax.rst [AMDGPU][MC][NFC][DOC] Updated AMD GPU assembler syntax description. 2020-08-21 14:25:14 +03:00
AMDGPUModifierSyntax.rst [AMDGPU][MC][NFC][DOC] Updated AMD GPU assembler syntax description. 2020-08-21 14:25:14 +03:00
AMDGPUOperandSyntax.rst [AMDGPU][MC][NFC][DOC] Updated AMD GPU assembler syntax description. 2020-08-21 14:25:14 +03:00
AMDGPUUsage.rst [AMDGPU] Correct DWARF register defintions 2020-08-20 01:15:04 +00:00
ARM-BE-bitcastfail.png
ARM-BE-bitcastsuccess.png
ARM-BE-ld1.png
ARM-BE-ldr.png
Atomics.rst
Benchmarking.rst
BigEndianNEON.rst
BitCodeFormat.rst [LangRef] Introduce noundef attribute for fully defined function params 2020-07-08 19:02:04 +00:00
BlockFrequencyTerminology.rst
BranchWeightMetadata.rst Add support of __builtin_expect_with_probability 2020-06-22 10:21:28 -07:00
BugLifeCycle.rst [docs] Fix typos 2020-08-09 19:31:49 -07:00
Bugpoint.rst
BugpointRedesign.md
BuildingADistribution.rst
CFIVerify.rst
CMake.rst Fix sphinx documentation after a6a37a2fcd2a8048a75bd0d8280497ed89d73224 2020-08-31 08:06:13 -04:00
CMakeLists.txt
CMakePrimer.rst [CMake] Bump CMake minimum version to 3.13.4 2020-07-22 14:25:07 -04:00
CodeGenerator.rst
CodeOfConduct.rst
CodeReview.rst
CodingStandards.rst [doc] Describe the header guard style 2020-07-30 16:08:07 -07:00
CommandLine.rst [ConstProp] Remove ConstantPropagation 2020-08-26 15:51:30 -07:00
CompileCudaWithLLVM.rst
CompilerWriterInfo.rst
conf.py Bump forgotten version nbr in llvm/docs/conf.py 2020-08-05 17:11:59 +02:00
Contributing.rst [docs] LLVM Security Group and Process 2020-07-10 15:24:02 -07:00
Coroutines.rst
CoverageMappingFormat.rst
DebuggingJITedCode.rst
DeveloperPolicy.rst [Docs] Fixed missing closing quote character 2020-08-11 11:21:15 +02:00
Docker.rst
doxygen-mainpage.dox
doxygen.cfg.in
ExceptionHandling.rst [docs] Fix typos 2020-08-09 19:31:49 -07:00
ExtendedIntegerResults.txt
ExtendingLLVM.rst Fix incorrect file path in documentation 2020-07-16 15:53:11 -04:00
Extensions.rst [llvm] NFC: Fix trivial typo in rst and td files 2020-04-23 14:26:32 +09:00
FAQ.rst
FaultMaps.rst
FuzzingLLVM.rst
GarbageCollection.rst
gcc-loops.png
GetElementPtr.rst
GettingInvolved.rst
GettingStarted.rst [CMake] Bump CMake minimum version to 3.13.4 2020-07-22 14:25:07 -04:00
GettingStartedTutorials.rst
GettingStartedVS.rst
GitBisecting.rst
GoldPlugin.rst
GwpAsan.rst
HowToAddABuilder.rst [docs/examples] As part of using inclusive language within the llvm 2020-06-20 00:51:18 -07:00
HowToBuildOnARM.rst
HowToBuildWithPGO.rst
HowToCrossCompileBuiltinsOnArm.rst
HowToCrossCompileLLVM.rst
HowToReleaseLLVM.rst
HowToSetUpLLVMStyleRTTI.rst [docs] Fix typos 2020-08-09 19:31:49 -07:00
HowToSubmitABug.rst [docs] LLVM Security Group and Process 2020-07-10 15:24:02 -07:00
HowToUpdateDebugInfo.rst [docs] Fix typo 2020-06-24 11:51:21 -07:00
HowToUseAttributes.rst Remove references to the 4.0 release as a major breaking (NFC) 2020-06-25 23:49:07 +00:00
HowToUseInstrMappings.rst [llvm] NFC: Fix trivial typo in rst and td files 2020-04-23 14:26:32 +09:00
InAlloca.rst
index.rst [docs] LLVM Security Group and Process 2020-07-10 15:24:02 -07:00
LangRef.rst [LangRef] Fix condition for when a loop is considered parallel. 2020-09-01 15:41:59 -05:00
Lexicon.rst [Lexicon] fix typo "may is" -> "is" 2020-04-26 19:35:25 +01:00
LibFuzzer.rst Revert "Add libFuzzer shared object build output" 2020-08-05 12:11:24 -07:00
LinkTimeOptimization.rst
linpack-pc.png
llvm-objdump.1
LLVMBuild.rst
LLVMBuild.txt
loop-terminology-guarded-loop.png
loop-terminology-initial-loop.png
loop-terminology-rotated-loop.png
LoopTerminology.rst
make.bat
Makefile.sphinx
MarkdownQuickstartTemplate.md
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
MeetupGuidelines.rst
MemorySSA.rst [docs] Fix typos 2020-08-09 19:31:49 -07:00
MemTagSanitizer.rst
MergeFunctions.rst
MIRLangRef.rst
NVPTXUsage.rst
OptBisect.rst
ORCv2.rst Typos around a -> an. 2020-06-20 14:04:48 -07:00
Packaging.rst
Passes.rst [ConstProp] Remove ConstantPropagation 2020-08-26 15:51:30 -07:00
Phabricator.rst [docs] Fix typos 2020-08-09 19:31:49 -07:00
ProgrammersManual.rst [CallSite removal] Remove the text describing CallSite from the manual. 2020-04-23 22:17:19 -04:00
Projects.rst
re_format.7
README.txt
Reference.rst [docs] LLVM Security Group and Process 2020-07-10 15:24:02 -07:00
ReleaseNotes.rst [Bindings] Add LLVMAddInstructionSimplifyPass 2020-09-01 12:38:49 -07:00
ReleaseProcess.rst
Remarks.rst
ReportingGuide.rst
ScudoHardenedAllocator.rst
Security.rst [docs] Fix typos 2020-08-09 19:31:49 -07:00
SegmentedStacks.rst
SourceLevelDebugging.rst [DebugInfo][flang]Added support for representing Fortran assumed length strings 2020-08-22 10:13:40 +05:30
speculative_load_hardening_microbenchmarks.png
SpeculativeLoadHardening.md
SphinxQuickstartTemplate.rst
StackMaps.rst
StackSafetyAnalysis.rst
Statepoints.rst Remove inline gc arguments from statepoints 2020-08-14 19:44:24 -07:00
SupportLibrary.rst
SystemLibrary.rst
TableGenFundamentals.rst
TestingGuide.rst Add test utility 'split-file' 2020-08-03 20:42:09 -07:00
TestSuiteGuide.md [docs] Fix typos 2020-08-09 19:31:49 -07:00
TestSuiteMakefileGuide.rst
TransformMetadata.rst
TypeMetadata.rst
UserGuides.rst [AMDGPU] Fix DWARF extensions User Guide table of contents 2020-07-30 05:10:21 +00:00
Vectorizers.rst [Docs] remove unused arguments in documentation examples on vectorization passes 2020-07-27 10:20:26 +01:00
WritingAnLLVMBackend.rst
WritingAnLLVMPass.rst [Docs][BasicAA] Rename some more basicaa -> basic-aa 2020-06-30 17:03:45 -07:00
XRay.rst
XRayExample.rst
XRayFDRFormat.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 <https://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` <-> `https://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.
`https://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

Doxygen page Output
==============

Install doxygen <http://www.stack.nl/~dimitri/doxygen/download.html> and dot2tex <https://dot2tex.readthedocs.io/en/latest>.

    cd <build-dir>
    cmake -DLLVM_ENABLE_DOXYGEN=On <llvm-top-src-dir>
    make doxygen-llvm # for LLVM docs
    make doxygen-clang # for clang docs

It will generate html in

    <build-dir>/docs/doxygen/html # for LLVM docs
    <build-dir>/tools/clang/docs/doxygen/html # for clang docs