llvm-capstone/llvm/docs
David Spickett d8abce1181
[lldb][AArch64] Read mte_ctrl register from core files (#69689)
This register reports the configuration of the AArch64 Linux tagged
address ABI, part of which is the memory tagging (MTE) settings.

It will always be present in core files because even without MTE, there
are parts of the tagged address ABI that can be configured (these parts
use the Top Byte Ignore feature).

I missed adding this when I previously worked on MTE support. Until now
you could read memory tags from a core file but not this register.
2023-10-25 09:54:34 +01: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 Revert "[dsymutil] Add support for mergeable libraries" 2023-10-24 11:54:18 -07: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 [TableGen] Use buildConstant to emit apply pattern immediates (#66077) 2023-10-17 10:39:59 +02: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 [Tablegen] Add keyword dump. (#68793) 2023-10-19 09:26:36 +02:00
tutorial [Kaleidoscope] Switch to the new PassManager. (#69032) 2023-10-18 09:25:50 -07: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 [AliasAnalysis] Introduce getModRefInfoMask() as a generalization of pointsToConstantMemory(). 2022-10-31 13:03:41 -07:00
AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst [llvm] Fix typos in documentation 2023-05-12 23:47:46 -07: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] Add doc updates for kernarg preloading (#67516) 2023-10-19 13:43:35 -07:00
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 [Atomic][doc] Fix outdated hook name and description (#66989) 2023-09-23 01:24:10 +08:00
Benchmarking.rst
BigEndianNEON.rst [llvm] Fix typos in documentation 2023-05-12 23:47:46 -07:00
BitCodeFormat.rst [LLVM] Add new attribute optdebug to optimize for debugging (#66632) 2023-10-18 16:32:06 +01: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 [cmake] Option to create Ninja job pools depending on available resources (#65274) 2023-10-20 22:37:51 +05:30
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 [NFC] Fix typo in CodeGenerator.rst 2023-09-29 14:33:34 +00: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 [docs] Fix suggested darker command in coding standards (#69860) 2023-10-21 21:33:40 -04:00
CommandLine.rst Remove unneeded cl::ZeroOrMore for cl::list options 2022-06-04 23:51:13 -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] Update documentation for the new GitHub workflow (#65162) 2023-09-01 16:31:44 -07: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 [Convergence] allow non-convergent ops before entry and loop intrinsics (#65939) 2023-09-11 18:26:07 +05:30
Coroutines.rst coroutines doc: fix a RST critical 2023-09-22 23:11:57 +02:00
CoverageMappingFormat.rst Fix LLVM Sphinx bot 2023-08-18 13:15:38 -04: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 Update the developer policy information on "Stay Informed" to refer to GitHub teams (#65798) 2023-09-11 22:21:47 -07: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 [Object] Add ELF section type SHT_LLVM_BITCODE for LLVM bitcode 2023-06-28 14:01:08 -07:00
FAQ.rst
FatLTO.rst Fix typos in documentation 2023-08-13 23:46:44 -07: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 [docs] Fix google meet link 2023-10-16 15:32:27 -07:00
GettingStarted.rst Remove stale info and fix superscript numbering 2023-08-01 07:17:27 -04:00
GettingStartedTutorials.rst [docs] Add a new tutorial that talk about how to make a change to llvm 2021-08-30 07:01:04 +00:00
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 [docs] Advise contributors to check for truncated PR titles (#68021) 2023-10-02 21:13:55 +01: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 [docs] Update HowToReleaseLLVM documentation. 2023-04-25 18:50:57 +02:00
HowToSetUpLLVMStyleRTTI.rst [llvm] Use std::optional instead of llvm::Optional (NFC) 2023-02-14 20:27:41 -08:00
HowToSubmitABug.rst docs: update some bug tracker references (NFC) 2022-01-10 15:59:08 -08:00
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
InstrRefDebugInfo.md [Docs] Fix broken LLVM doc pages (#68631) 2023-10-10 23:41:32 -07:00
JITLink.rst [docs][JITLink] Add a link to the ORC design document. 2023-08-26 17:56:20 -07:00
LangRef.rst [IR] Require that ptrmask mask matches pointer index size (#69343) 2023-10-24 09:54:29 +02: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
llvm-objdump.1 [llvm-objdump][docs] Fix documentation for offloading flags 2022-07-11 15:44:48 -04: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 [Docs] Cleanup pass documentation 2023-08-10 16:18:56 -07: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 [DebugInfo] Allow non-stack_value variadic expressions and use in DBG_INSTR_REF 2023-01-06 19:31:10 +00:00
MisExpect.rst [misexpect] Re-implement MisExpect Diagnostics 2022-04-19 21:23:48 +00:00
MyFirstTypoFix.rst [Docs] Update documentation for the new GitHub workflow (#65162) 2023-09-01 16:31:44 -07:00
NewPassManager.rst [docs][NewPM] Add comment about declaring analysis managers in the correct order 2023-10-19 10:22:08 -07:00
NVPTXUsage.rst Remove TargetMachine::adjustPassManager 2022-11-28 10:24:16 +01: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 Introduce paged vector (#66430) 2023-09-30 08:26:19 +03: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 Replace references to Makefile.sphinx 2021-10-22 15:32:12 +02:00
Reference.rst [RFC] Introduce convergence control intrinsics 2023-07-12 12:31:42 +05:30
ReleaseNotes.rst [lldb][AArch64] Read mte_ctrl register from core files (#69689) 2023-10-25 09:54:34 +01:00
ReleaseProcess.rst
Remarks.rst
ReportingGuide.rst [docs] Clarify that CoC docs are under a CC-BY license. 2023-04-14 11:08:30 +02: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] Mark the Zfa extension as non-experimental (#68113) 2023-10-03 18:16:13 +01:00
ScudoHardenedAllocator.rst Fx typos in documentation 2023-08-18 23:36:04 -07:00
Security.rst [NFC] Red Hat is two words 2023-08-14 10:10:10 -07:00
SecurityTransparencyReports.rst Add security group 2022 transparency report. 2023-01-20 09:49:30 +01:00
SegmentedStacks.rst
SourceLevelDebugging.rst [llvm] Fix typos in documentation 2023-05-12 23:47:46 -07: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] Replace recommonmark by myst-parser (#65664) 2023-09-25 14:02:39 +02: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 Migrate llvm.experimental.patchpoint() to ptr. 2022-08-10 13:18:02 +01: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] Update documentation for the new GitHub workflow (#65162) 2023-09-01 16:31:44 -07: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