llvm-capstone/llvm/docs
Jeremy Morse 22da809602
[Docs][DebugInfo][RemoveDIs] Document some debug-info transition info (#79167)
This is a high level description and FAQ for what we're doing in
RemoveDIs, and how old code should be behave with new debug-info
(exactly the same 99% of the time).
2024-01-23 23:26:52 +00:00
..
_ocamldoc
_static [docs] Add Loop Opt WG meeting ics. 2022-04-04 20:07:51 -05:00
_templates [docs] remove extra slash from llvm github url 2022-11-18 21:57:17 +08:00
_themes/llvm-theme
AMDGPU [AMDGPU][GFX11][DOC][NFC] Add GFX11 assembler syntax description 2022-12-21 12:49:48 +03:00
AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack [Documentation] Fix some invalid references in sphinx documentation (#68239) 2023-10-05 14:40:59 +02:00
CommandGuide Added feature in llvm-profdata merge to filter functions from the profile (#78378) 2024-01-23 16:19:45 -05:00
DependenceGraphs [NFC] Trim trailing whitespace in *.rst 2021-11-15 09:17:08 +08:00
Frontend [docs] fix typo 2022-02-20 18:43:30 +00:00
GlobalISel [GISel][Docs] Add a little bit of documentation for G_FENCE. (#73722) 2023-11-28 18:57:20 -08:00
HistoricalNotes
PDB [llvm] Fix duplicate word typos. NFC 2023-09-01 18:25:16 -07:00
Proposals [docs] Graduate VectorizationPlan.rst from proposal. 2023-08-10 17:15:43 +01:00
TableGen [llvm] Fix typos in documentation 2023-12-17 15:36:44 -08:00
tutorial [Kaleidoscope] LLVM is not needed for chapter two (#69823) 2024-01-12 20:48:43 -08:00
AArch64SME.rst [IR] Add LLVM IR support for target("aarch64.svcount") type. 2023-03-01 08:17:53 +00:00
AddingConstrainedIntrinsics.rst
AdvancedBuilds.rst [Docs] Minor Fixups in Advanced Builds Documentation 2023-05-13 15:43:39 -07:00
AliasAnalysis.rst [llvm] Fix typos in documentation 2023-12-17 15:36:44 -08:00
AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst [AMDGPU][NFC] DWARF vector composite location description operations (#71623) 2023-11-13 11:44:37 -05:00
AMDGPUInstructionNotation.rst [AMDGPU][DOC][NFC] Update assembler syntax description 2022-12-20 14:03:46 +03:00
AMDGPUInstructionSyntax.rst [AMDGPU][GFX11][DOC][NFC] Add GFX11 assembler syntax description 2022-12-21 12:49:48 +03:00
AMDGPUModifierSyntax.rst [AMDGPU][MC] Clean up DPP bound_ctrl handling 2023-05-10 11:40:53 +02:00
AMDGPUOperandSyntax.rst [AMDGPU][GFX11][DOC][NFC] Add GFX11 assembler syntax description 2022-12-21 12:49:48 +03:00
AMDGPUUsage.rst [AMDGPU] Change default AMDHSA Code Object version to 5 (#79038) 2024-01-23 17:08:18 +05:30
ARM-BE-bitcastfail.png
ARM-BE-bitcastsuccess.png
ARM-BE-ld1.png
ARM-BE-ldr.png
AssignmentTracking.md [DebugInfo][Docs] Remove dbg.addr from docs 2023-03-02 09:29:42 +00:00
Atomics.rst [LangRef] adjust IR atomics specification following C++20 model tweaks. (#77263) 2024-01-23 12:18:51 -05:00
Benchmarking.rst
BigEndianNEON.rst [llvm] Fix typos in documentation 2023-05-12 23:47:46 -07:00
BitCodeFormat.rst Obsolete WebKit Calling Convention (#71567) 2023-11-09 09:08:41 -08:00
BlockFrequencyTerminology.rst [llvm][docs] Update old metadata syntax in examples 2023-01-26 19:34:21 +00:00
BranchWeightMetadata.rst [llvm][docs] Update old metadata syntax in examples 2023-01-26 19:34:21 +00:00
BugLifeCycle.rst Fix "the the" typo in documentation and user facing strings 2022-05-05 17:52:08 +02:00
Bugpoint.rst Use opt -passes=<name> instead of opt -name 2022-11-08 12:15:42 +01:00
BugpointRedesign.md
buildbot_worker_contact.png
BuildingADistribution.rst [cmake] Loosen multi-distribution restrictions 2022-04-13 20:33:28 -07:00
CFIVerify.rst
CMake.rst [llvm][doc][NFC] Fix typo in documentation in CMake.rst (#76836) 2024-01-04 14:02:25 +00:00
CMakeLists.txt [OCaml] Remove all PassManager-related functions 2023-02-24 13:14:18 -08:00
CMakePrimer.rst [LLVM] Removes CMake work-arounds. 2023-06-07 18:04:13 +02:00
CodeGenerator.rst [SelectionDAG] Add support to filter SelectionDAG dumps during ISel by function names (#72696) 2023-11-20 14:00:47 -08:00
CodeOfConduct.rst [llvm][docs] Update active CoC Commitee members (#66814) 2023-09-19 14:33:55 -07:00
CodeReview.rst [Docs] Update documentation for the new GitHub workflow (#65162) 2023-09-01 16:31:44 -07:00
CodingStandards.rst [doc] Add casting style preference to coding standards 2023-11-09 11:01:51 +00:00
CommandLine.rst [CommandLine] Do not print empty categories with '--help-hidden' (#77043) 2024-01-09 05:03:16 +07:00
CompileCudaWithLLVM.rst [CUDA] Updated CUDA versions mentioned in CompileCudaWithLLVM.rst 2023-06-15 14:27:40 -07:00
CompilerWriterInfo.rst Fix a dead link in the docs 2023-01-25 15:09:11 -05:00
conf.py [Documentation] Fix some invalid references in sphinx documentation (#68239) 2023-10-05 14:40:59 +02:00
Contributing.rst [Docs] Instructions for new contributors to find reviewers (#71936) 2023-11-10 19:45:21 +01:00
convergence-both-diverged-nested.png RFC: Uniformity Analysis for Irreducible Control Flow 2022-12-20 07:22:24 +05:30
convergence-closed-path.png RFC: Uniformity Analysis for Irreducible Control Flow 2022-12-20 07:22:24 +05:30
convergence-divergent-inside.png RFC: Uniformity Analysis for Irreducible Control Flow 2022-12-20 07:22:24 +05:30
convergence-divergent-outside.png RFC: Uniformity Analysis for Irreducible Control Flow 2022-12-20 07:22:24 +05:30
convergence-natural-loop.png RFC: Uniformity Analysis for Irreducible Control Flow 2022-12-20 07:22:24 +05:30
ConvergenceAndUniformity.rst [RFC] Introduce convergence control intrinsics 2023-07-12 12:31:42 +05:30
ConvergentOperations.rst [llvm] Fix typos in documentation 2023-12-17 15:36:44 -08:00
Coroutines.rst [Coroutines] Introduce [[clang::coro_only_destroy_when_complete]] (#71014) 2023-11-09 14:42:07 +08:00
CoverageMappingFormat.rst [clang][NFC] Update top-level Code Coverage documentation to include MC/DC. 2024-01-22 15:34:37 -06:00
cycle-1.png Reapply CycleInfo: Introduce cycles as a generalization of loops 2021-12-10 14:36:43 +05:30
cycle-2.png Reapply CycleInfo: Introduce cycles as a generalization of loops 2021-12-10 14:36:43 +05:30
cycle-3.png Reapply CycleInfo: Introduce cycles as a generalization of loops 2021-12-10 14:36:43 +05:30
CycleTerminology.rst RFC: Uniformity Analysis for Irreducible Control Flow 2022-12-20 07:22:24 +05:30
DebuggingJITedCode.rst [lldb] Fix dead link in JIT debugging doc 2023-06-15 08:39:01 +00:00
DeveloperPolicy.rst [docs] Update a link in DeveloperPolicy (#71839) 2023-11-11 15:10:15 -08:00
DirectXUsage.rst [docs] Adding DirectX target usage doc 2022-06-17 13:34:25 -05:00
DiscourseMigrationGuide.md Update status on migration again. Add note about issues with reply by email from emails pre-migration. 2022-02-01 22:25:31 -08:00
Docker.rst [Dockerfile] Upgrade debian base image to version 10 2022-03-23 15:32:15 +00:00
doxygen-mainpage.dox
doxygen.cfg.in [docs] Hide collaboration and include graphs in doxygen docs 2023-05-04 12:26:51 +02:00
epilogue-vectorization-cfg.png
ExceptionHandling.rst [Docs] Update ExceptionHandling example (NFC) 2023-09-20 14:36:52 +02:00
ExtendedIntegerResults.txt
ExtendingLLVM.rst Replace links to archived mailing lists by links to Discourse forums 2022-03-23 10:10:20 -04:00
Extensions.rst [SHT_LLVM_BB_ADDR_MAP][AsmPrinter] Implements PGOAnalysisMap emitting in AsmPrinter with tests. (#75202) 2024-01-03 19:17:44 -05:00
FAQ.rst
FatLTO.rst [clang][FatLTO] Avoid UnifiedLTO until it can support WPD/CFI (#79061) 2024-01-23 14:04:52 -08:00
FaultMaps.rst [NFC] Trim trailing whitespace in *.rst 2021-11-15 09:17:08 +08:00
FuzzingLLVM.rst [lldb] Add a fuzzer for target creation 2022-03-25 09:34:00 -07:00
GarbageCollection.rst [llvm] Fix typos in documentation 2023-05-12 23:47:46 -07:00
gcc-loops.png
GetElementPtr.rst [Docs] Fix GEP type in example (#68533) 2023-10-09 11:56:21 +02:00
GettingInvolved.rst Add sync-up for floating-point working group (#71885) 2024-01-11 13:33:41 -08:00
GettingStarted.rst [docs] Add missing quotation mark after #73774 2023-12-09 22:19:08 -08:00
GettingStartedTutorials.rst
GettingStartedVS.rst [llvm] Fix typos in documentation 2023-05-12 23:47:46 -07:00
GitBisecting.rst [NFC] Trim trailing whitespace in *.rst 2021-11-15 09:17:08 +08:00
GitHub.rst Update GitHub doc to mention that we accepts user branches for Stacked PRs (#73774) 2023-12-04 18:26:44 -08:00
GitRepositoryPolicy.md [Docs] Fix broken LLVM doc pages (#68631) 2023-10-10 23:41:32 -07:00
GoldPlugin.rst [gold] Ignore bitcode from sections inside object files 2022-07-14 14:46:15 -07:00
GwpAsan.rst [Documentation] Replace recommonmark by myst-parser (#65664) 2023-09-25 14:02:39 +02:00
HowToAddABuilder.rst [llvm] Fix typos in documentation 2023-05-12 23:47:46 -07:00
HowToBuildOnARM.rst
HowToBuildWindowsItaniumPrograms.rst [NFC] Trim trailing whitespace in *.rst 2021-11-15 09:17:08 +08:00
HowToBuildWithPGO.rst [docs] Add/update docs regarding LLVM_NATIVE_TOOL_DIR vs LLVM_TABLEGEN 2023-01-23 23:49:37 +02:00
HowToCrossCompileBuiltinsOnArm.rst
HowToCrossCompileLLVM.rst [docs] Rewrite/improve the docs for LLVM_NATIVE_TOOL_DIR 2023-02-03 10:55:33 +02:00
HowToReleaseLLVM.rst Change release branch creation process to bump version to N.1.0. (#75743) 2023-12-22 17:35:26 -05:00
HowToSetUpLLVMStyleRTTI.rst [llvm] Use std::optional instead of llvm::Optional (NFC) 2023-02-14 20:27:41 -08:00
HowToSubmitABug.rst [Docs][LTO] Updated HowToSubmitABug.rst for LTO crashes (#68389) 2023-11-03 13:13:26 +05:30
HowToUpdateDebugInfo.rst [Assignment Tracking][1/*] Add initial docs for Assignment Tracking 2022-11-02 13:47:50 +00:00
HowToUseAttributes.rst
HowToUseInstrMappings.rst
InAlloca.rst
index.rst Update references to the mailing lists that have moved to Discourse. 2022-02-21 18:58:48 -08:00
InstrProfileFormat.rst [docs][IRPGO]Document two binary formats for instrumentation-based profiles, with a focus on IRPGO. (#76105) 2024-01-10 16:17:15 -08:00
InstrRefDebugInfo.md [Docs] Fix broken LLVM doc pages (#68631) 2023-10-10 23:41:32 -07:00
JITLink.rst [llvm] Fix typos in documentation 2023-12-17 15:36:44 -08:00
LangRef.rst [LangRef] adjust IR atomics specification following C++20 model tweaks. (#77263) 2024-01-23 12:18:51 -05:00
Lexicon.rst [Docs] Added RTTI, Run-time Type Information 2023-04-17 10:11:20 -07:00
LibFuzzer.rst Fix a typo in the docs; NFC 2022-10-10 14:22:25 -04:00
LinkTimeOptimization.rst
linpack-pc.png
llvm_slug.py [Documentation] Fix some invalid references in sphinx documentation (#68239) 2023-10-05 14:40:59 +02:00
loop-guard.svg
loop-irreducible.svg
loop-merge.svg
loop-nested.svg
loop-nonmaximal.svg
loop-separate.svg
loop-single.svg
loop-terminology-guarded-loop.png
loop-terminology-initial-loop.png
loop-terminology-rotated-loop.png
loop-terminology.svg
LoopTerminology.rst [llvm][docs]: fix typos (#71303) 2023-11-06 16:28:38 +01:00
make.bat
MarkdownQuickstartTemplate.md [Docs] Fix broken LLVM doc pages (#68631) 2023-10-10 23:41:32 -07: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 [NFC] Trim trailing whitespace in *.rst 2021-11-15 09:17:08 +08:00
MeetupGuidelines.rst
MemorySSA.rst [llvm] Fix typos in documentation 2023-05-12 23:47:46 -07:00
MemTagSanitizer.rst
MergeFunctions.rst
MIRLangRef.rst MIRLangRef: fix llc invocation lines to write output (#74104) 2023-12-08 09:54:33 +00:00
MisExpect.rst [misexpect] Re-implement MisExpect Diagnostics 2022-04-19 21:23:48 +00:00
MyFirstTypoFix.rst [docs] Fix formatting issues in MyFirstTypoFix (#77527) 2024-01-10 07:43:57 +05:30
NewPassManager.rst [docs][NewPM] Add comment about declaring analysis managers in the correct order 2023-10-19 10:22:08 -07:00
NVPTXUsage.rst [llvm] Fix typos in documentation 2023-12-17 15:36:44 -08:00
OpaquePointers.rst [Docs] Fix typo in opaque pointers doc 2023-08-21 08:19:11 +02:00
OptBisect.rst [NFC][CodeGen] Change CodeGenOpt::Level/CodeGenFileType into enum classes (#66295) 2023-09-14 14:10:14 -07:00
ORCv2.rst [Docs] Fix code-blocks missing a colon and a newline 2023-07-28 05:36:49 +00:00
Packaging.rst
Passes.rst [docs] Remove count-aa pass from documentation 2023-08-13 18:51:06 -07:00
PCSectionsMetadata.rst [SanitizerBinaryMetadata] Emit constants as ULEB128 2023-02-08 13:12:34 +01:00
Phabricator_premerge_results.png
Phabricator_premerge_unit_tests.png
Phabricator.rst [Docs] Update documentation for the new GitHub workflow (#65162) 2023-09-01 16:31:44 -07:00
PointerAuth.md [Docs] Fix broken LLVM doc pages (#68631) 2023-10-10 23:41:32 -07:00
ProgrammersManual.rst [docs] remove some out-of-date content in LLVM Programmer's Manual (#74989) 2023-12-14 16:31:26 +08:00
Projects.rst Update references to mailing lists that have moved to Discourse. 2022-07-28 16:54:58 -07:00
re_format.7
README.txt
Reference.rst [RFC] Introduce convergence control intrinsics 2023-07-12 12:31:42 +05:30
ReleaseNotes.rst [AMDGPU] Change default AMDHSA Code Object version to 5 (#79038) 2024-01-23 17:08:18 +05:30
ReleaseProcess.rst
Remarks.rst
RemoveDIsDebugInfo.md [Docs][DebugInfo][RemoveDIs] Document some debug-info transition info (#79167) 2024-01-23 23:26:52 +00:00
ReportingGuide.rst [docs] Clarify that CoC docs are under a CC-BY license. 2023-04-14 11:08:30 +02:00
requirements-hashed.txt Hashpin sensitive dependencies and configure dependabot to update them automatically (#75859) 2024-01-15 12:30:41 -08:00
requirements.txt Specified particular known to be good versions of Sphinx and dependencies 2023-10-05 09:47:14 -07:00
ResponseGuide.rst [docs] Clarify that CoC docs are under a CC-BY license. 2023-04-14 11:08:30 +02:00
RISCVUsage.rst [RISCV] Add support for Smepmp 1.0 (#78489) 2024-01-19 11:09:35 -08:00
ScudoHardenedAllocator.rst [scudo] [docs] Remove 32-bit default column (#71943) 2023-11-13 06:14:49 -08:00
Security.rst [doc] Improve wording for "What is considered a security issue?" (#69436) 2023-10-30 08:25:42 +01:00
SecurityTransparencyReports.rst Add security group 2022 transparency report. 2023-01-20 09:49:30 +01:00
SegmentedStacks.rst
SourceLevelDebugging.rst [docs] Fix issues in SourceLevelDebugging (#73528) 2023-11-27 15:27:58 -08:00
speculative_load_hardening_microbenchmarks.png
SpeculativeLoadHardening.md Fix Sphinx build with incorrect heading levels; NFC 2023-10-04 10:29:55 -04:00
SphinxQuickstartTemplate.rst [Documentation] fix invalid links in documentation (#76502) 2024-01-09 08:00:20 +01:00
SPIRVUsage.rst [Clang][SPIR-V] Emit target extension types for OpenCL types on SPIR-V. 2023-03-13 14:20:24 -04:00
StackMaps.rst [doc][StackMaps] Fix typo 2024-01-09 11:06:33 +08:00
StackSafetyAnalysis.rst
Statepoints.rst [RS4GC] Remove the hardcoded GC strategy names (v2) 2023-01-25 20:47:16 +03:00
SupportLibrary.rst [NFC] Trim trailing whitespace in *.rst 2021-11-15 09:17:08 +08:00
SupportPolicy.rst Update references to the mailing lists that have moved to Discourse. 2022-02-21 18:58:48 -08:00
SymbolizerMarkupFormat.rst Optionally print symbolizer markup backtraces. 2023-08-17 10:54:47 -07:00
SystemLibrary.rst
TableGenFundamentals.rst
TestingGuide.rst [lit][clang] Avoid realpath on Windows due to MAX_PATH limitations 2023-08-01 11:00:27 -07:00
TestSuiteGuide.md [Docs][NFC] fix URL 2023-10-18 08:36:18 +08:00
TestSuiteMakefileGuide.rst
TransformMetadata.rst
TypeMetadata.rst
UserGuides.rst [Docs][DebugInfo][RemoveDIs] Document some debug-info transition info (#79167) 2024-01-23 23:26:52 +00:00
VectorizationPlan.rst [docs] Graduate VectorizationPlan.rst from proposal. 2023-08-10 17:15:43 +01:00
Vectorizers.rst [docs] Graduate VectorizationPlan.rst from proposal. 2023-08-10 17:15:43 +01:00
WritingAnLLVMBackend.rst [TableGen][Target] Rename Attribute field in SubtargetFeature class to FieldName. 2023-06-21 17:53:50 -07:00
WritingAnLLVMNewPMPass.rst [docs][NewPM] Move pass plugin documentation into existing new PM docs 2022-11-02 10:47:17 -07:00
WritingAnLLVMPass.rst [Docs] Remove future extensions section from writing a pass docs (#69286) 2023-10-17 17:06:22 -07:00
XRay.rst
XRayExample.rst [NFC] Trim trailing whitespace in *.rst 2021-11-15 09:17:08 +08:00
XRayFDRFormat.rst
yaml2obj.rst [yaml2obj] Add support for load config section data. 2023-07-24 20:41:20 +02:00
YamlIO.rst [yamlio] Allow parsing an entire mapping as an enumeration 2022-03-14 04:41:40 +00:00

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 llvm/docs/
    sphinx-build -b linkcheck . _build/lintcheck/
    # report will be generated in _build/lintcheck/output.txt

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

Install doxygen <https://www.doxygen.nl/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