You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jianglk.darker 7ee447c011
v811_spc009_project
4 months ago
..
AMDGPU v811_spc009_project 4 months ago
CommandGuide v811_spc009_project 4 months ago
DependenceGraphs v811_spc009_project 4 months ago
Frontend v811_spc009_project 4 months ago
GlobalISel v811_spc009_project 4 months ago
HistoricalNotes v811_spc009_project 4 months ago
PDB v811_spc009_project 4 months ago
Proposals v811_spc009_project 4 months ago
TableGen v811_spc009_project 4 months ago
_ocamldoc v811_spc009_project 4 months ago
_static v811_spc009_project 4 months ago
_templates v811_spc009_project 4 months ago
_themes/llvm-theme v811_spc009_project 4 months ago
tutorial v811_spc009_project 4 months ago
AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst v811_spc009_project 4 months ago
AMDGPUInstructionNotation.rst v811_spc009_project 4 months ago
AMDGPUInstructionSyntax.rst v811_spc009_project 4 months ago
AMDGPUModifierSyntax.rst v811_spc009_project 4 months ago
AMDGPUOperandSyntax.rst v811_spc009_project 4 months ago
AMDGPUUsage.rst v811_spc009_project 4 months ago
ARM-BE-bitcastfail.png v811_spc009_project 4 months ago
ARM-BE-bitcastsuccess.png v811_spc009_project 4 months ago
ARM-BE-ld1.png v811_spc009_project 4 months ago
ARM-BE-ldr.png v811_spc009_project 4 months ago
AddingConstrainedIntrinsics.rst v811_spc009_project 4 months ago
AdvancedBuilds.rst v811_spc009_project 4 months ago
AliasAnalysis.rst v811_spc009_project 4 months ago
Atomics.rst v811_spc009_project 4 months ago
Benchmarking.rst v811_spc009_project 4 months ago
BigEndianNEON.rst v811_spc009_project 4 months ago
BitCodeFormat.rst v811_spc009_project 4 months ago
BlockFrequencyTerminology.rst v811_spc009_project 4 months ago
BranchWeightMetadata.rst v811_spc009_project 4 months ago
BugLifeCycle.rst v811_spc009_project 4 months ago
Bugpoint.rst v811_spc009_project 4 months ago
BugpointRedesign.md v811_spc009_project 4 months ago
BuildingADistribution.rst v811_spc009_project 4 months ago
CFIVerify.rst v811_spc009_project 4 months ago
CMake.rst v811_spc009_project 4 months ago
CMakeLists.txt v811_spc009_project 4 months ago
CMakePrimer.rst v811_spc009_project 4 months ago
CodeGenerator.rst v811_spc009_project 4 months ago
CodeOfConduct.rst v811_spc009_project 4 months ago
CodeReview.rst v811_spc009_project 4 months ago
CodingStandards.rst v811_spc009_project 4 months ago
CommandLine.rst v811_spc009_project 4 months ago
CompileCudaWithLLVM.rst v811_spc009_project 4 months ago
CompilerWriterInfo.rst v811_spc009_project 4 months ago
Contributing.rst v811_spc009_project 4 months ago
Coroutines.rst v811_spc009_project 4 months ago
CoverageMappingFormat.rst v811_spc009_project 4 months ago
DebuggingJITedCode.rst v811_spc009_project 4 months ago
DeveloperPolicy.rst v811_spc009_project 4 months ago
Docker.rst v811_spc009_project 4 months ago
ExceptionHandling.rst v811_spc009_project 4 months ago
ExtendedIntegerResults.txt v811_spc009_project 4 months ago
ExtendingLLVM.rst v811_spc009_project 4 months ago
Extensions.rst v811_spc009_project 4 months ago
FAQ.rst v811_spc009_project 4 months ago
FaultMaps.rst v811_spc009_project 4 months ago
FuzzingLLVM.rst v811_spc009_project 4 months ago
GarbageCollection.rst v811_spc009_project 4 months ago
GetElementPtr.rst v811_spc009_project 4 months ago
GettingInvolved.rst v811_spc009_project 4 months ago
GettingStarted.rst v811_spc009_project 4 months ago
GettingStartedTutorials.rst v811_spc009_project 4 months ago
GettingStartedVS.rst v811_spc009_project 4 months ago
GitBisecting.rst v811_spc009_project 4 months ago
GoldPlugin.rst v811_spc009_project 4 months ago
GwpAsan.rst v811_spc009_project 4 months ago
HowToAddABuilder.rst v811_spc009_project 4 months ago
HowToBuildOnARM.rst v811_spc009_project 4 months ago
HowToBuildWithPGO.rst v811_spc009_project 4 months ago
HowToCrossCompileBuiltinsOnArm.rst v811_spc009_project 4 months ago
HowToCrossCompileLLVM.rst v811_spc009_project 4 months ago
HowToReleaseLLVM.rst v811_spc009_project 4 months ago
HowToSetUpLLVMStyleRTTI.rst v811_spc009_project 4 months ago
HowToSubmitABug.rst v811_spc009_project 4 months ago
HowToUpdateDebugInfo.rst v811_spc009_project 4 months ago
HowToUseAttributes.rst v811_spc009_project 4 months ago
HowToUseInstrMappings.rst v811_spc009_project 4 months ago
InAlloca.rst v811_spc009_project 4 months ago
LangRef.rst v811_spc009_project 4 months ago
Lexicon.rst v811_spc009_project 4 months ago
LibFuzzer.rst v811_spc009_project 4 months ago
LinkTimeOptimization.rst v811_spc009_project 4 months ago
LoopTerminology.rst v811_spc009_project 4 months ago
MCJIT-creation.png v811_spc009_project 4 months ago
MCJIT-dyld-load.png v811_spc009_project 4 months ago
MCJIT-engine-builder.png v811_spc009_project 4 months ago
MCJIT-load-object.png v811_spc009_project 4 months ago
MCJIT-load.png v811_spc009_project 4 months ago
MCJIT-resolve-relocations.png v811_spc009_project 4 months ago
MCJITDesignAndImplementation.rst v811_spc009_project 4 months ago
MIRLangRef.rst v811_spc009_project 4 months ago
Makefile.sphinx v811_spc009_project 4 months ago
MarkdownQuickstartTemplate.md v811_spc009_project 4 months ago
MarkedUpDisassembly.rst v811_spc009_project 4 months ago
MeetupGuidelines.rst v811_spc009_project 4 months ago
MemTagSanitizer.rst v811_spc009_project 4 months ago
MemorySSA.rst v811_spc009_project 4 months ago
MergeFunctions.rst v811_spc009_project 4 months ago
NVPTXUsage.rst v811_spc009_project 4 months ago
ORCv2.rst v811_spc009_project 4 months ago
OptBisect.rst v811_spc009_project 4 months ago
Packaging.rst v811_spc009_project 4 months ago
Passes.rst v811_spc009_project 4 months ago
Phabricator.rst v811_spc009_project 4 months ago
ProgrammersManual.rst v811_spc009_project 4 months ago
Projects.rst v811_spc009_project 4 months ago
README.txt v811_spc009_project 4 months ago
Reference.rst v811_spc009_project 4 months ago
ReleaseNotes.rst v811_spc009_project 4 months ago
ReleaseProcess.rst v811_spc009_project 4 months ago
Remarks.rst v811_spc009_project 4 months ago
ReportingGuide.rst v811_spc009_project 4 months ago
ScudoHardenedAllocator.rst v811_spc009_project 4 months ago
Security.rst v811_spc009_project 4 months ago
SegmentedStacks.rst v811_spc009_project 4 months ago
SourceLevelDebugging.rst v811_spc009_project 4 months ago
SpeculativeLoadHardening.md v811_spc009_project 4 months ago
SphinxQuickstartTemplate.rst v811_spc009_project 4 months ago
StackMaps.rst v811_spc009_project 4 months ago
StackSafetyAnalysis.rst v811_spc009_project 4 months ago
Statepoints.rst v811_spc009_project 4 months ago
SupportLibrary.rst v811_spc009_project 4 months ago
SupportPolicy.rst v811_spc009_project 4 months ago
SystemLibrary.rst v811_spc009_project 4 months ago
TableGenFundamentals.rst v811_spc009_project 4 months ago
TestSuiteGuide.md v811_spc009_project 4 months ago
TestSuiteMakefileGuide.rst v811_spc009_project 4 months ago
TestingGuide.rst v811_spc009_project 4 months ago
TransformMetadata.rst v811_spc009_project 4 months ago
TypeMetadata.rst v811_spc009_project 4 months ago
UserGuides.rst v811_spc009_project 4 months ago
Vectorizers.rst v811_spc009_project 4 months ago
WritingAnLLVMBackend.rst v811_spc009_project 4 months ago
WritingAnLLVMNewPMPass.rst v811_spc009_project 4 months ago
WritingAnLLVMPass.rst v811_spc009_project 4 months ago
XRay.rst v811_spc009_project 4 months ago
XRayExample.rst v811_spc009_project 4 months ago
XRayFDRFormat.rst v811_spc009_project 4 months ago
YamlIO.rst v811_spc009_project 4 months ago
conf.py v811_spc009_project 4 months ago
doxygen-mainpage.dox v811_spc009_project 4 months ago
doxygen.cfg.in v811_spc009_project 4 months ago
epilogue-vectorization-cfg.png v811_spc009_project 4 months ago
gcc-loops.png v811_spc009_project 4 months ago
index.rst v811_spc009_project 4 months ago
linpack-pc.png v811_spc009_project 4 months ago
llvm-objdump.1 v811_spc009_project 4 months ago
loop-guard.svg v811_spc009_project 4 months ago
loop-irreducible.svg v811_spc009_project 4 months ago
loop-merge.svg v811_spc009_project 4 months ago
loop-nested.svg v811_spc009_project 4 months ago
loop-nonmaximal.svg v811_spc009_project 4 months ago
loop-separate.svg v811_spc009_project 4 months ago
loop-single.svg v811_spc009_project 4 months ago
loop-terminology-guarded-loop.png v811_spc009_project 4 months ago
loop-terminology-initial-loop.png v811_spc009_project 4 months ago
loop-terminology-rotated-loop.png v811_spc009_project 4 months ago
loop-terminology.svg v811_spc009_project 4 months ago
make.bat v811_spc009_project 4 months ago
re_format.7 v811_spc009_project 4 months ago
speculative_load_hardening_microbenchmarks.png v811_spc009_project 4 months ago
yaml2obj.rst v811_spc009_project 4 months ago

README.txt

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