llvm/docs
Sanjoy Das ead2d1fbe0 [Statepoints] Support for "patchable" statepoints.
Summary:
This change adds two new parameters to the statepoint intrinsic, `i64 id`
and `i32 num_patch_bytes`.  `id` gets propagated to the ID field
in the generated StackMap section.  If the `num_patch_bytes` is
non-zero then the statepoint is lowered to `num_patch_bytes` bytes of
nops instead of a call (the spill and reload code remains unchanged).
A non-zero `num_patch_bytes` is useful in situations where a language
runtime requires complete control over how a call is lowered.

This change brings statepoints one step closer to patchpoints.  With
some additional work (that is not part of this patch) it should be
possible to get rid of `TargetOpcode::STATEPOINT` altogether.

PlaceSafepoints generates `statepoint` wrappers with `id` set to
`0xABCDEF00` (the old default value for the ID reported in the stackmap)
and `num_patch_bytes` set to `0`.  This can be made more sophisticated
later.

Reviewers: reames, pgavlin, swaroop.sridhar, AndyAyers

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D9546

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237214 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-12 23:52:24 +00:00
..
_static
_templates
_themes/llvm-theme
CommandGuide Lit: Allow overriding llvm tool paths+arguments, make -D an alias for --param 2015-05-04 21:36:36 +00:00
Frontend [PerformanceTips] Italics are *word*, not _word_ 2015-04-26 22:25:29 +00:00
HistoricalNotes
TableGen Remove neverHasSideEffects support from TableGen CodeGenInstruction. Everyone should use hasSideEffects now. 2014-11-26 04:11:14 +00:00
tutorial IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
AliasAnalysis.rst
ARM-BE-bitcastfail.png
ARM-BE-bitcastsuccess.png
ARM-BE-ld1.png
ARM-BE-ldr.png
Atomics.rst [sphinx cleanup] Fix unexpected indentation warning introduced by r218937 2014-10-03 12:28:48 +00:00
BigEndianNEON.rst
BitCodeFormat.rst Misc documentation/comment fixes. 2015-02-04 00:42:45 +00:00
BitSets.rst LowerBitSets: Introduce global layout builder. 2015-02-24 23:17:02 +00:00
BlockFrequencyTerminology.rst
BranchWeightMetadata.rst
Bugpoint.rst Correct 'teh' and other typos / repeated words. 2015-04-14 20:52:58 +00:00
BuildingLLVMWithAutotools.rst Clean up docs references to './configure' in preparation for deprecating in-source builds 2015-04-29 20:06:41 +00:00
CMake.rst [ADT][CMake][AutoConf] Fail-fast iterators for DenseMap 2015-03-26 19:25:01 +00:00
CMakeLists.txt [OCaml] Move Llvm.clone_module to its own Llvm_transform_utils module. 2014-12-01 19:50:39 +00:00
CodeGenerator.rst Fix grammar in documentation. 2015-02-19 18:46:25 +00:00
CodingStandards.rst Add a note about permitting default member initializers 2015-04-30 18:17:12 +00:00
CommandLine.rst Update the example of using a command-line option custom parser to 2014-10-13 21:11:22 +00:00
CompilerWriterInfo.rst [docs] Add link to the MIPS 64-bit ELF object file specification 2015-01-25 16:20:30 +00:00
conf.py Trunk is now 3.7.0svn 2015-01-14 17:38:03 +00:00
CoverageMappingFormat.rst Docs: add documentation for the coverage mapping format. 2014-08-19 17:05:58 +00:00
DebuggingJITedCode.rst
DeveloperPolicy.rst Adding commit msg guidelines to dev policy 2015-03-15 21:15:48 +00:00
doxygen.cfg.in [docs] Update the doxygen configuration file. 2015-03-12 17:26:27 +00:00
doxygen.intro
Dummy.html
ExceptionHandling.rst [WinEH] Sink UnwindHelp completely out of IR 2015-04-03 22:32:26 +00:00
ExtendedIntegerResults.txt
ExtendingLLVM.rst [docs] Update outdated ExtendingLLVM.rst 2015-04-13 16:04:17 +00:00
Extensions.rst Use a comma after the unique keyword. 2015-04-06 16:34:41 +00:00
FAQ.rst Clean up docs references to './configure' in preparation for deprecating in-source builds 2015-04-29 20:06:41 +00:00
GarbageCollection.rst [GC Docs] Update LangRef to link to Statepoint docs 2015-02-25 23:45:20 +00:00
gcc-loops.png
GetElementPtr.rst Update LangRef for getelementptr explicit type changes 2015-03-04 22:02:58 +00:00
GettingStarted.rst A few minor updates based on feedback from Justin and a few things I thought were missing. 2015-03-14 21:20:32 +00:00
GettingStartedVS.rst Update the docs to require at least MSVC 2013. 2015-02-15 19:34:17 +00:00
GoldPlugin.rst Docs: give binutils/gold instructions for CMake too. 2014-11-04 02:16:03 +00:00
HowToAddABuilder.rst
HowToBuildOnARM.rst Clean up docs references to './configure' in preparation for deprecating in-source builds 2015-04-29 20:06:41 +00:00
HowToCrossCompileLLVM.rst
HowToReleaseLLVM.rst
HowToSetUpLLVMStyleRTTI.rst [docs][LLVM-style RTTI] Add a mention of multiple inheritance. 2015-02-07 01:16:26 +00:00
HowToSubmitABug.rst Delete -std-compile-opts. 2014-10-16 20:00:02 +00:00
HowToUseAttributes.rst
HowToUseInstrMappings.rst
InAlloca.rst
index.rst Move lib/Fuzzer docs from a README.txt to a proper .rst file. 2015-03-30 23:05:30 +00:00
LangRef.rst [Docs] Fix scoped noalias example 2015-05-11 08:30:28 +00:00
Lexicon.rst [docs] Document what "NFC" means in a commit message. 2014-09-06 00:19:16 +00:00
LibFuzzer.rst [lib/Fuzzer] guess the right number of workers if -jobs=N is given but -workers=M is not. Update the docs. 2015-05-12 18:51:57 +00:00
LinkTimeOptimization.rst Fix a typo in the documentation of LTO 2014-12-03 07:32:36 +00:00
linpack-pc.png
LLVMBuild.rst
LLVMBuild.txt
make.bat
Makefile [docs] Update the doxygen configuration file. 2015-03-12 17:26:27 +00:00
Makefile.sphinx
MakefileGuide.rst
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 Minor typo. 2014-09-05 04:56:43 +00:00
MergeFunctions.rst Inspired by r231891, use gender neutral pronouns in the places I've 2015-03-11 00:15:44 +00:00
NVPTXUsage.rst
Packaging.rst
Passes.rst Remove the preverify pass from the documentation now that it has been removed 2015-01-30 20:51:09 +00:00
Phabricator.rst [docs] add cross-reference 2015-03-31 15:07:53 +00:00
ProgrammersManual.rst Editorial changes in the programmers manual. 2015-04-16 17:01:23 +00:00
Projects.rst
R600Usage.rst R600/SI: Initial support for assembler and inline assembly 2015-04-08 01:09:26 +00:00
re_format.7
README.txt
ReleaseNotes.rst Update 3.7 Release Note mentionning the non-optionality of the DataLayout 2015-03-18 22:01:44 +00:00
ReleaseProcess.rst
SegmentedStacks.rst
SourceLevelDebugging.rst IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
SphinxQuickstartTemplate.rst
StackMaps.rst [PowerPC] Adjust PatchPoints for ppc64le 2015-01-16 04:40:58 +00:00
Statepoints.rst [Statepoints] Support for "patchable" statepoints. 2015-05-12 23:52:24 +00:00
SystemLibrary.rst
TableGenFundamentals.rst
TestingGuide.rst Document some of the options in test/lit.cfg 2015-05-04 21:37:00 +00:00
TestSuiteMakefileGuide.rst
Vectorizers.rst Correct 'teh' and other typos / repeated words. 2015-04-14 20:52:58 +00:00
WritingAnLLVMBackend.rst configure.ac lives in autoconf/, not autotools/ 2014-11-10 22:36:04 +00:00
WritingAnLLVMPass.rst [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +00:00
yaml2obj.rst
YamlIO.rst YAML: Add an optional 'flow' field to the mapping trait to allow flow mapping output. 2015-05-04 20:11: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 <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 docs/
    make -f Makefile.sphinx
    $BROWSER _build/html/index.html

The mapping between reStructuredText files and generated documentation is
`docs/Foo.rst` <-> `_build/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/man/`.

    cd docs/
    make -f Makefile.sphinx man
    man -l _build/man/FileCheck.1

The correspondence between .rst files and man pages is
`docs/CommandGuide/Foo.rst` <-> `_build/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 reachibility of external links in the documentation can be checked by
running:

    cd docs/
    make -f Makefile.sphinx linkcheck