diff --git a/docs/AliasAnalysis.rst b/docs/AliasAnalysis.rst index 712d57d14b1..3bfb0953aff 100644 --- a/docs/AliasAnalysis.rst +++ b/docs/AliasAnalysis.rst @@ -51,7 +51,7 @@ starting address and size, and function calls are represented as the actual get mod/ref information for arbitrary instructions. All ``AliasAnalysis`` interfaces require that in queries involving multiple -values, values which are not `constants `_ are all +values, values which are not :ref:`constants ` are all defined within the same function. Representation of Pointers @@ -111,7 +111,7 @@ returns MustAlias, PartialAlias, MayAlias, or NoAlias as appropriate. Like all ``AliasAnalysis`` interfaces, the ``alias`` method requires that either the two pointer values be defined within the same function, or at least one of -the values is a `constant `_. +the values is a :ref:`constant `. .. _Must, May, or No: @@ -126,7 +126,7 @@ used for reading memory. Another is when the memory is freed and reallocated between accesses through one pointer and accesses through the other --- in this case, there is a dependence, but it's mediated by the free and reallocation. -As an exception to this is with the `noalias `_ keyword; +As an exception to this is with the :ref:`noalias ` keyword; the "irrelevant" dependencies are ignored. The ``MayAlias`` response is used whenever the two pointers might refer to the diff --git a/docs/Bugpoint.rst b/docs/Bugpoint.rst index 1a5fc8c0276..8fa64bc1242 100644 --- a/docs/Bugpoint.rst +++ b/docs/Bugpoint.rst @@ -17,7 +17,7 @@ optimization (or combination of optimizations) that causes the crash, and reduce the file down to a small example which triggers the crash. For detailed case scenarios, such as debugging ``opt``, or one of the LLVM code -generators, see `How To Submit a Bug Report document `_. +generators, see :doc:`HowToSubmitABug`. Design Philosophy ================= diff --git a/docs/CodeGenerator.rst b/docs/CodeGenerator.rst index 58906c2749b..81fa26438b7 100644 --- a/docs/CodeGenerator.rst +++ b/docs/CodeGenerator.rst @@ -70,7 +70,7 @@ different pieces of this will be useful to you. In any case, you should be familiar with the `target description`_ and `machine code representation`_ classes. If you want to add a backend for a new target, you will need to `implement the target description`_ classes for your new target and understand -the `LLVM code representation `_. If you are interested in +the :doc:`LLVM code representation `. If you are interested in implementing a new `code generation algorithm`_, it should only depend on the target-description and machine code representation classes, ensuring that it is portable. diff --git a/docs/CodingStandards.rst b/docs/CodingStandards.rst index 2ebdfbc91bf..529464aa284 100644 --- a/docs/CodingStandards.rst +++ b/docs/CodingStandards.rst @@ -76,10 +76,7 @@ implemented in the LLVM namespace following the expected standard interface. There are some exceptions such as the standard I/O streams library which are avoided. Also, there is much more detailed information on these subjects in the -`Programmer's Manual`_. - -.. _Programmer's Manual: - http://llvm.org/docs/ProgrammersManual.html +:doc:`ProgrammersManual`. Supported C++11 Language and Library Features --------------------------------------------- @@ -605,7 +602,7 @@ is never used for a class. Because of this, we turn them off globally in the code. That said, LLVM does make extensive use of a hand-rolled form of RTTI that use -templates like `isa<>, cast<>, and dyn_cast<> `_. +templates like :ref:`isa\<>, cast\<>, and dyn_cast\<> `. This form of RTTI is opt-in and can be :doc:`added to any class `. It is also substantially more efficient than ``dynamic_cast<>``. diff --git a/docs/GettingStartedVS.rst b/docs/GettingStartedVS.rst index 628bfdc7cb5..aa980d20d24 100644 --- a/docs/GettingStartedVS.rst +++ b/docs/GettingStartedVS.rst @@ -34,7 +34,7 @@ Most of the tools build and work. ``bugpoint`` does build, but does not work. Additional information about the LLVM directory structure and tool chain -can be found on the main `Getting Started `_ page. +can be found on the main :doc:`GettingStarted` page. Requirements @@ -97,7 +97,7 @@ Here's the short story for getting up and running quickly with LLVM: using LLVM. Another important option is ``LLVM_TARGETS_TO_BUILD``, which controls the LLVM target architectures that are included on the build. - * See the `LLVM CMake guide `_ for detailed information about + * See the :doc:`LLVM CMake guide ` for detailed information about how to configure the LLVM build. 6. Start Visual Studio @@ -215,8 +215,8 @@ An Example Using the LLVM Tool Chain Common Problems =============== If you are having problems building or using LLVM, or if you have any other -general questions about LLVM, please consult the `Frequently Asked Questions -`_ page. +general questions about LLVM, please consult the :doc:`Frequently Asked Questions +` page. Links diff --git a/docs/LangRef.rst b/docs/LangRef.rst index 0654ca62e3d..fff627b8bb7 100644 --- a/docs/LangRef.rst +++ b/docs/LangRef.rst @@ -802,6 +802,9 @@ Currently, only the following parameter attributes are defined: not to trap and to be properly aligned. This may only be applied to the first parameter. This is not a valid attribute for return values. + +.. _noalias: + ``noalias`` This indicates that pointer values :ref:`based ` on the argument or return value do not alias pointer values which are @@ -811,8 +814,8 @@ Currently, only the following parameter attributes are defined: "irrelevant" to the ``noalias`` keyword for the arguments and return value used in that call. The caller shares the responsibility with the callee for ensuring that these requirements are met. For further - details, please see the discussion of the NoAlias response in `alias - analysis `_. + details, please see the discussion of the NoAlias response in :ref:`alias + analysis `. Note that this definition of ``noalias`` is intentionally similar to the definition of ``restrict`` in C99 for function arguments, @@ -1986,6 +1989,8 @@ notion of a forward declared structure. | ``opaque`` | An opaque type. | +--------------+-------------------+ +.. _constants: + Constants =========