Doc: Links should use https

This commit is contained in:
Sylvestre Ledru 2020-03-22 22:42:03 +01:00
parent 006244152d
commit 72fd1033ea
65 changed files with 195 additions and 195 deletions

View File

@ -119,7 +119,7 @@ Now we create the Importer and do the import:
llvm::Expected<Decl *> ImportedOrErr = Importer.Import(From);
The ``Import`` call returns with ``llvm::Expected``, so, we must check for any error.
Please refer to the `error handling <http://llvm.org/docs/ProgrammersManual.html#recoverable-errors>`_ documentation for details.
Please refer to the `error handling <https://llvm.org/docs/ProgrammersManual.html#recoverable-errors>`_ documentation for details.
.. code-block:: cpp

View File

@ -2199,9 +2199,9 @@ lck_rw_try_lock_exclusive, lck_rw_try_lock_shared, pthread_mutex_unlock, pthread
alpha.unix.SimpleStream (C)
"""""""""""""""""""""""""""
Check for misuses of stream APIs. Check for misuses of stream APIs: ``fopen, fclose``
(demo checker, the subject of the demo (`Slides <http://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf>`_ ,
(demo checker, the subject of the demo (`Slides <https://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf>`_ ,
`Video <https://youtu.be/kdxlsP5QVPw>`_) by Anna Zaks and Jordan Rose presented at the
`2012 LLVM Developers' Meeting <http://llvm.org/devmtg/2012-11/>`_).
`2012 LLVM Developers' Meeting <https://llvm.org/devmtg/2012-11/>`_).
.. code-block:: c

View File

@ -19,7 +19,7 @@ test libc++.
Please see the `Lit Command Guide`_ for more information about LIT.
.. _LIT Command Guide: http://llvm.org/docs/CommandGuide/lit.html
.. _LIT Command Guide: https://llvm.org/docs/CommandGuide/lit.html
Setting up the Environment
--------------------------

View File

@ -180,7 +180,7 @@ thread safety annotations.
Since libc++ 4.0 this extension has been disabled by default. This macro
may be defined to re-enable it in order to support existing code that depends
on the extension. New use of this extension should be discouraged.
See `PR 27374 <http://llvm.org/PR27374>`_ for more information.
See `PR 27374 <https://llvm.org/PR27374>`_ for more information.
Note: The "reduced-arity-initialization" extension is still offered but only
for explicit conversions. Example:

View File

@ -161,8 +161,8 @@ Build Bots and Test Coverage
Getting Involved
================
First please review our `Developer's Policy <http://llvm.org/docs/DeveloperPolicy.html>`__
and `Getting started with LLVM <http://llvm.org/docs/GettingStarted.html>`__.
First please review our `Developer's Policy <https://llvm.org/docs/DeveloperPolicy.html>`__
and `Getting started with LLVM <https://llvm.org/docs/GettingStarted.html>`__.
**Bug Reports**
@ -173,7 +173,7 @@ can post a message to the `libcxx-dev mailing list`_ or on IRC.
**Patches**
If you want to contribute a patch to libc++, the best place for that is
`Phabricator <http://llvm.org/docs/Phabricator.html>`_. Please add `libcxx-commits` as a subscriber.
`Phabricator <https://llvm.org/docs/Phabricator.html>`_. Please add `libcxx-commits` as a subscriber.
Also make sure you are subscribed to the `libcxx-commits mailing list <http://lists.llvm.org/mailman/listinfo/libcxx-commits>`_.
**Discussion and Questions**
@ -185,7 +185,7 @@ Send discussions and questions to the
Quick Links
===========
* `LLVM Homepage <http://llvm.org/>`_
* `LLVM Homepage <https://llvm.org/>`_
* `libc++abi Homepage <http://libcxxabi.llvm.org/>`_
* `LLVM Bugzilla <https://bugs.llvm.org/>`_
* `libcxx-commits Mailing List`_

View File

@ -57,8 +57,8 @@ build would look like this:
$ cd where-you-want-libunwind-to-live
$ # Check out llvm, and libunwind
$ ``svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm``
$ ``svn co http://llvm.org/svn/llvm-project/libunwind/trunk libunwind``
$ ``svn co https://llvm.org/svn/llvm-project/llvm/trunk llvm``
$ ``svn co https://llvm.org/svn/llvm-project/libunwind/trunk libunwind``
$ cd where-you-want-to-build
$ mkdir build && cd build
$ export CC=clang CXX=clang++

View File

@ -71,8 +71,8 @@ Notes and Known Issues
Getting Involved
================
First please review our `Developer's Policy <http://llvm.org/docs/DeveloperPolicy.html>`__
and `Getting started with LLVM <http://llvm.org/docs/GettingStarted.html>`__.
First please review our `Developer's Policy <https://llvm.org/docs/DeveloperPolicy.html>`__
and `Getting started with LLVM <https://llvm.org/docs/GettingStarted.html>`__.
**Bug Reports**
@ -84,7 +84,7 @@ Please include "libunwind" in your subject.
**Patches**
If you want to contribute a patch to libunwind, the best place for that is
`Phabricator <http://llvm.org/docs/Phabricator.html>`_. Please include [libunwind] in the subject and
`Phabricator <https://llvm.org/docs/Phabricator.html>`_. Please include [libunwind] in the subject and
add `cfe-commits` as a subscriber. Also make sure you are subscribed to the
`cfe-commits mailing list <http://lists.llvm.org/mailman/listinfo/cfe-commits>`_.
@ -97,7 +97,7 @@ Please include [libunwind] in the subject.
Quick Links
===========
* `LLVM Homepage <http://llvm.org/>`_
* `LLVM Homepage <https://llvm.org/>`_
* `LLVM Bugzilla <https://bugs.llvm.org/>`_
* `cfe-commits Mailing List`_
* `cfe-dev Mailing List`_

View File

@ -59,4 +59,4 @@ Indices and tables
* :ref:`genindex`
* :ref:`search`
__ http://llvm.org/docs/DeveloperPolicy.html#license
__ https://llvm.org/docs/DeveloperPolicy.html#license

View File

@ -248,7 +248,7 @@ Finally, the linker replaces bitcode symbols with ELF/COFF symbols,
so that they are linked as if they were in the native format from the beginning.
The details are described in this document.
http://llvm.org/docs/LinkTimeOptimization.html
https://llvm.org/docs/LinkTimeOptimization.html
Glossary
--------

View File

@ -326,7 +326,7 @@ Testing
The lld project contains a test suite which is being built up as new code is
added to lld. All new lld functionality should have a tests added to the test
suite. The test suite is `lit <http://llvm.org/cmds/lit.html/>`_ driven. Each
suite. The test suite is `lit <https://llvm.org/cmds/lit.html/>`_ driven. Each
test is a text file with comments telling lit how to run the test and check the
result To facilitate testing, the lld project builds a tool called lld-core.
This tool reads a YAML file (default from stdin), parses it into one or more

View File

@ -6,7 +6,7 @@ Development
Note: this document discuss Mach-O port of LLD. For ELF and COFF,
see :doc:`index`.
lld is developed as part of the `LLVM <http://llvm.org>`_ project.
lld is developed as part of the `LLVM <https://llvm.org>`_ project.
Creating a Reader
-----------------

View File

@ -6,7 +6,7 @@ Getting Started: Building and Running lld
This page gives you the shortest path to checking out and building lld. If you
run into problems, please file bugs in the `LLVM Bugzilla`__
__ http://llvm.org/bugs/
__ https://llvm.org/bugs/
Building lld
------------
@ -84,4 +84,4 @@ More Information
For more information on using CMake see the `LLVM CMake guide`_.
.. _LLVM CMake guide: http://llvm.org/docs/CMake.html
.. _LLVM CMake guide: https://llvm.org/docs/CMake.html

View File

@ -98,7 +98,7 @@ Build
If you have already checked out LLVM using SVN, you can check out LLD
under ``tools`` directory just like you probably did for clang. For the
details, see `Getting Started with the LLVM System
<http://llvm.org/docs/GettingStarted.html>`_.
<https://llvm.org/docs/GettingStarted.html>`_.
If you haven't checked out LLVM, the easiest way to build LLD is to
check out the entire LLVM projects/sub-projects from a git mirror and

View File

@ -9977,4 +9977,4 @@ Additional Documentation
.. [SEMVER] `Semantic Versioning <https://semver.org/>`__
.. [OpenCL] `The OpenCL Specification Version 2.0 <http://www.khronos.org/registry/cl/specs/opencl-2.0.pdf>`__
.. [HRF] `Heterogeneous-race-free Memory Models <http://benedictgaster.org/wp-content/uploads/2014/01/asplos269-FINAL.pdf>`__
.. [CLANG-ATTR] `Attributes in Clang <http://clang.llvm.org/docs/AttributeReference.html>`__
.. [CLANG-ATTR] `Attributes in Clang <https://clang.llvm.org/docs/AttributeReference.html>`__

View File

@ -19,7 +19,7 @@ indicating that two pointers always point to the same object, might point to the
same object, or are known to never point to the same object.
The LLVM `AliasAnalysis
<http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html>`__ class is the
<https://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html>`__ class is the
primary interface used by clients and implementations of alias analyses in the
LLVM system. This class is the common interface between clients of alias
analysis information and the implementations providing it, and is designed to
@ -36,7 +36,7 @@ points about what exactly results mean.
``AliasAnalysis`` Class Overview
================================
The `AliasAnalysis <http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html>`__
The `AliasAnalysis <https://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html>`__
class defines the interface that the various alias analysis implementations
should support. This class exports two important enums: ``AliasResult`` and
``ModRefResult`` which represent the result of an alias query or a mod/ref
@ -264,7 +264,7 @@ Interfaces which may be specified
---------------------------------
All of the `AliasAnalysis
<http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html>`__ virtual methods
<https://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html>`__ virtual methods
default to providing :ref:`chaining <aliasanalysis-chaining>` to another alias
analysis implementation, which ends up returning conservatively correct
information (returning "May" Alias and "Mod/Ref" for alias and mod/ref queries
@ -435,7 +435,7 @@ Using the ``AliasSetTracker`` class
Many transformations need information about alias **sets** that are active in
some scope, rather than information about pairwise aliasing. The
`AliasSetTracker <http://llvm.org/doxygen/classllvm_1_1AliasSetTracker.html>`__
`AliasSetTracker <https://llvm.org/doxygen/classllvm_1_1AliasSetTracker.html>`__
class is used to efficiently build these Alias Sets from the pairwise alias
analysis information provided by the ``AliasAnalysis`` interface.

View File

@ -601,7 +601,7 @@ LLVM-specific variables
**LLVM_BUILD_INSTRUMENTED_COVERAGE**:BOOL
If enabled, `source-based code coverage
<http://clang.llvm.org/docs/SourceBasedCodeCoverage.html>`_ instrumentation
<https://clang.llvm.org/docs/SourceBasedCodeCoverage.html>`_ instrumentation
is enabled while building llvm.
**LLVM_CCACHE_BUILD**:BOOL

View File

@ -70,4 +70,4 @@ COMMANDS
BUGS
----
To report bugs, please visit <http://llvm.org/bugs/>.
To report bugs, please visit <https://llvm.org/bugs/>.

View File

@ -545,7 +545,7 @@ Otherwise, it exits with code 0.
BUGS
----
To report bugs, please visit <http://llvm.org/bugs/>.
To report bugs, please visit <https://llvm.org/bugs/>.
There is a known issue with :option:`--input-target` and :option:`--target`
causing only ``binary`` and ``ihex`` formats to have any effect. Other values

View File

@ -324,7 +324,7 @@ MACH-O ONLY OPTIONS AND COMMANDS
BUGS
----
To report bugs, please visit <http://llvm.org/bugs/>.
To report bugs, please visit <https://llvm.org/bugs/>.
SEE ALSO
--------

View File

@ -195,4 +195,4 @@ Otherwise, it exits with code 0.
BUGS
----
To report bugs, please visit <http://llvm.org/bugs/>.
To report bugs, please visit <https://llvm.org/bugs/>.

View File

@ -127,4 +127,4 @@ Otherwise, it exits with code 0.
BUGS
----
To report bugs, please visit <http://llvm.org/bugs/>.
To report bugs, please visit <https://llvm.org/bugs/>.

View File

@ -190,7 +190,7 @@ Otherwise, it exits with code 0.
BUGS
----
To report bugs, please visit <http://llvm.org/bugs/>.
To report bugs, please visit <https://llvm.org/bugs/>.
SEE ALSO
--------

View File

@ -342,7 +342,7 @@ HD functions cannot be overloaded by H or D functions with the same signature:
When resolving an overloaded function, clang considers the host/device
attributes of the caller and callee. These are used as a tiebreaker during
overload resolution. See `IdentifyCUDAPreference
<http://clang.llvm.org/doxygen/SemaCUDA_8cpp.html>`_ for the full set of rules,
<https://clang.llvm.org/doxygen/SemaCUDA_8cpp.html>`_ for the full set of rules,
but at a high level they are:
* D functions prefer to call other Ds. HDs are given lower priority.
@ -507,12 +507,12 @@ LLVM to make it generate good GPU code. Among these changes are:
reduce redundancy within straight-line code.
* `Aggressive speculative execution
<http://llvm.org/docs/doxygen/html/SpeculativeExecution_8cpp_source.html>`_
<https://llvm.org/docs/doxygen/html/SpeculativeExecution_8cpp_source.html>`_
-- This is mainly for promoting straight-line scalar optimizations, which are
most effective on code along dominator paths.
* `Memory space inference
<http://llvm.org/doxygen/NVPTXInferAddressSpaces_8cpp_source.html>`_ --
<https://llvm.org/doxygen/NVPTXInferAddressSpaces_8cpp_source.html>`_ --
In PTX, we can operate on pointers that are in a particular "address space"
(global, shared, constant, or local), or we can operate on pointers in the
"generic" address space, which can point to anything. Operations in a
@ -521,7 +521,7 @@ LLVM to make it generate good GPU code. Among these changes are:
possible.
* `Bypassing 64-bit divides
<http://llvm.org/docs/doxygen/html/BypassSlowDivision_8cpp_source.html>`_ --
<https://llvm.org/docs/doxygen/html/BypassSlowDivision_8cpp_source.html>`_ --
This was an existing optimization that we enabled for the PTX backend.
64-bit integer divides are much slower than 32-bit ones on NVIDIA GPUs.
@ -536,7 +536,7 @@ LLVM to make it generate good GPU code. Among these changes are:
SROA, which sometimes speed up code by over 10x.
(Programmers can force unrolling and inline using clang's `loop unrolling pragmas
<http://clang.llvm.org/docs/AttributeReference.html#pragma-unroll-pragma-nounroll>`_
<https://clang.llvm.org/docs/AttributeReference.html#pragma-unroll-pragma-nounroll>`_
and ``__attribute__((always_inline))``.)
Publication
@ -558,4 +558,4 @@ Obtaining Help
==============
To obtain help on LLVM in general and its CUDA support, see `the LLVM
community <http://llvm.org/docs/#mailing-lists>`_.
community <https://llvm.org/docs/#mailing-lists>`_.

View File

@ -72,9 +72,9 @@ What source languages are supported?
------------------------------------
LLVM currently has full support for C and C++ source languages through
`Clang <http://clang.llvm.org/>`_. Many other language frontends have
`Clang <https://clang.llvm.org/>`_. Many other language frontends have
been written using LLVM, and an incomplete list is available at
`projects with LLVM <http://llvm.org/ProjectsWithLLVM/>`_.
`projects with LLVM <https://llvm.org/ProjectsWithLLVM/>`_.
I'd like to write a self-hosting LLVM compiler. How should I interface with the LLVM middle-end optimizers and back-end code generators?

View File

@ -16,7 +16,7 @@ files needed to process intermediate representations and converts it into
object files. Tools include an assembler, disassembler, bitcode analyzer, and
bitcode optimizer. It also contains basic regression tests.
C-like languages use the `Clang <http://clang.llvm.org/>`_ front end. This
C-like languages use the `Clang <https://clang.llvm.org/>`_ front end. This
component compiles C, C++, Objective C, and Objective C++ code into LLVM bitcode
-- and from there into object files, using LLVM.
@ -28,7 +28,7 @@ Getting the Source Code and Building LLVM
=========================================
The LLVM Getting Started documentation may be out of date. The `Clang
Getting Started <http://clang.llvm.org/get_started.html>`_ page might have more
Getting Started <https://clang.llvm.org/get_started.html>`_ page might have more
accurate information.
This is an example workflow and configuration to get and build the LLVM source:
@ -522,7 +522,7 @@ you need to check the code out of SVN rather than git for some reason, you can
do it like so:
* ``cd where-you-want-llvm-to-live``
* Read-Only: ``svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm``
* Read-Only: ``svn co https://llvm.org/svn/llvm-project/llvm/trunk llvm``
* Read-Write: ``svn co https://user@llvm.org/svn/llvm-project/llvm/trunk llvm``
This will create an '``llvm``' directory in the current directory and fully
@ -722,7 +722,7 @@ Note: There are some additional flags that need to be passed when building for
iOS due to limitations in the iOS SDK.
Check :doc:`HowToCrossCompileLLVM` and `Clang docs on how to cross-compile in general
<http://clang.llvm.org/docs/CrossCompilation.html>`_ for more information
<https://clang.llvm.org/docs/CrossCompilation.html>`_ for more information
about cross-compiling.
The Location of LLVM Object Files
@ -789,7 +789,7 @@ Directory Layout
One useful source of information about the LLVM source base is the LLVM `doxygen
<http://www.doxygen.org/>`_ documentation available at
`<http://llvm.org/doxygen/>`_. The following is a brief introduction to code
`<https://llvm.org/doxygen/>`_. The following is a brief introduction to code
layout:
``llvm/examples``
@ -1105,8 +1105,8 @@ things... there are many more interesting and complicated things that you can do
that aren't documented here (but we'll gladly accept a patch if you want to
write something up!). For more information about LLVM, check out:
* `LLVM Homepage <http://llvm.org/>`_
* `LLVM Doxygen Tree <http://llvm.org/doxygen/>`_
* `Starting a Project that Uses LLVM <http://llvm.org/docs/Projects.html>`_
* `LLVM Homepage <https://llvm.org/>`_
* `LLVM Doxygen Tree <https://llvm.org/doxygen/>`_
* `Starting a Project that Uses LLVM <https://llvm.org/docs/Projects.html>`_
.. _installing arcanist: https://secure.phabricator.com/book/phabricator/article/arcanist_quick_start/

View File

@ -18,7 +18,7 @@ to use LLVM. It contains an assembler, disassembler, bitcode analyzer and
bitcode optimizer. It also contains basic regression tests that can be used to
test the LLVM tools and the Clang front end.
The second piece is the `Clang <http://clang.llvm.org/>`_ front end. This
The second piece is the `Clang <https://clang.llvm.org/>`_ front end. This
component compiles C, C++, Objective C, and Objective C++ code into LLVM
bitcode. Clang typically uses LLVM libraries to optimize the bitcode and emit
machine code. LLVM fully supports the COFF object file format, which is
@ -233,6 +233,6 @@ things... there are many more interesting and complicated things that you can
do that aren't documented here (but we'll gladly accept a patch if you want to
write something up!). For more information about LLVM, check out:
* `LLVM homepage <http://llvm.org/>`_
* `LLVM doxygen tree <http://llvm.org/doxygen/>`_
* `LLVM homepage <https://llvm.org/>`_
* `LLVM doxygen tree <https://llvm.org/doxygen/>`_

View File

@ -76,7 +76,7 @@ generic and non-generic). There are some exceptions to this but in general:
way of getting a given operand's type (as there was no 1:1 mapping between
instruction types and operands).
We considered putting the type in some variant of MCInstrDesc instead:
See `PR26576 <http://llvm.org/PR26576>`_: [GlobalISel] Generic MachineInstrs
See `PR26576 <https://llvm.org/PR26576>`_: [GlobalISel] Generic MachineInstrs
need a type but this increases the memory footprint of the related objects
.. _gmir-regbank:

View File

@ -73,7 +73,7 @@ This differs from SelectionDAG's multiple vregs via ``GetValueVTs``.
As some of the bits are undef (padding), we should consider augmenting the
representation with additional metadata (in effect, caching computeKnownBits
information on vregs).
See `PR26161 <http://llvm.org/PR26161>`_: [GlobalISel] Value to vreg during
See `PR26161 <https://llvm.org/PR26161>`_: [GlobalISel] Value to vreg during
IR to MachineInstr translation for aggregate type
.. _irtranslator-constants:

View File

@ -97,4 +97,4 @@ Then it's just a matter of fetching the analysis and using it:
}
There are many more API's beyond ``getKnownBits()``. See the `API reference
<http://llvm.org/doxygen>`_ for more information
<https://llvm.org/doxygen>`_ for more information

View File

@ -125,7 +125,7 @@ II. Usage of clang driver:
invoking Graphviz.
For more information on getting Graphviz to work with clang/LLVM,
see: http://llvm.org/docs/ProgrammersManual.html#ViewGraph
see: https://llvm.org/docs/ProgrammersManual.html#ViewGraph
III. Current advantages over GCC:

View File

@ -9,7 +9,7 @@ This document contains information about building LLVM and
Clang on host machine, targeting another platform.
For more information on how to use Clang as a cross-compiler,
please check http://clang.llvm.org/docs/CrossCompilation.html.
please check https://clang.llvm.org/docs/CrossCompilation.html.
TODO: Add MIPS and other platforms to this document.
@ -189,7 +189,7 @@ identification), like:
If you copy that tarball to your target board, you'll be able to use
it for running the test-suite, for example. Follow the guidelines at
http://llvm.org/docs/lnt/quickstart.html, unpack the tarball in the
https://llvm.org/docs/lnt/quickstart.html, unpack the tarball in the
test directory, and use options:
.. code-block:: bash

View File

@ -380,8 +380,8 @@ contract, you can tweak and optimize it as much as you want.
For example, LLVM-style RTTI can work fine in the presence of
multiple-inheritance by defining an appropriate ``classof``.
An example of this in practice is
`Decl <http://clang.llvm.org/doxygen/classclang_1_1Decl.html>`_ vs.
`DeclContext <http://clang.llvm.org/doxygen/classclang_1_1DeclContext.html>`_
`Decl <https://clang.llvm.org/doxygen/classclang_1_1Decl.html>`_ vs.
`DeclContext <https://clang.llvm.org/doxygen/classclang_1_1DeclContext.html>`_
inside Clang.
The ``Decl`` hierarchy is done very similarly to the example setup
demonstrated in this tutorial.
@ -396,7 +396,7 @@ returning true for ones that are known to be ``DeclContext``'s.
Touch on some of the more advanced features, like ``isa_impl`` and
``simplify_type``. However, those two need reference documentation in
the form of doxygen comments as well. We need the doxygen so that we can
say "for full details, see http://llvm.org/doxygen/..."
say "for full details, see https://llvm.org/doxygen/..."
Rules of Thumb
==============

View File

@ -10,7 +10,7 @@
;
; For more information on the LLVMBuild system, please see:
;
; http://llvm.org/docs/LLVMBuild.html
; https://llvm.org/docs/LLVMBuild.html
;
;===------------------------------------------------------------------------===;

View File

@ -1692,7 +1692,7 @@ example:
functions.
``safestack``
This attribute indicates that
`SafeStack <http://clang.llvm.org/docs/SafeStack.html>`_
`SafeStack <https://clang.llvm.org/docs/SafeStack.html>`_
protection is enabled for this function.
If a function that has a ``safestack`` attribute is inlined into a
@ -6690,7 +6690,7 @@ TypeIdInfo
^^^^^^^^^^
The optional ``TypeIdInfo`` field, used for
`Control Flow Integrity <http://clang.llvm.org/docs/ControlFlowIntegrity.html>`_,
`Control Flow Integrity <https://clang.llvm.org/docs/ControlFlowIntegrity.html>`_,
looks like:
.. code-block:: text
@ -6767,7 +6767,7 @@ Type ID Summary Entry
Each type id summary entry corresponds to a type identifier resolution
which is generated during the LTO link portion of the compile when building
with `Control Flow Integrity <http://clang.llvm.org/docs/ControlFlowIntegrity.html>`_,
with `Control Flow Integrity <https://clang.llvm.org/docs/ControlFlowIntegrity.html>`_,
so these are only present in a combined summary index.
Example:

View File

@ -112,7 +112,7 @@ G
**GEP**
``GetElementPtr``. An LLVM IR instruction that is used to get the address
of a subelement of an aggregate data structure. It is documented in detail
`here <http://llvm.org/docs/GetElementPtr.html>`_.
`here <https://llvm.org/docs/GetElementPtr.html>`_.
**GVN**
Global Value Numbering. GVN is a pass that partitions values computed by a

View File

@ -581,7 +581,7 @@ you will want to know whether the function or the corpus can be improved further
One easy to use metric is, of course, code coverage.
We recommend to use
`Clang Coverage <http://clang.llvm.org/docs/SourceBasedCodeCoverage.html>`_,
`Clang Coverage <https://clang.llvm.org/docs/SourceBasedCodeCoverage.html>`_,
to visualize and study your code coverage
(`example <https://github.com/google/fuzzer-test-suite/blob/master/tutorial/libFuzzerTutorial.md#visualizing-coverage>`_).
@ -781,18 +781,18 @@ Trophies
.. _pcre2: http://www.pcre.org/
.. _AFL: http://lcamtuf.coredump.cx/afl/
.. _Radamsa: https://github.com/aoh/radamsa
.. _SanitizerCoverage: http://clang.llvm.org/docs/SanitizerCoverage.html
.. _SanitizerCoverageTraceDataFlow: http://clang.llvm.org/docs/SanitizerCoverage.html#tracing-data-flow
.. _AddressSanitizer: http://clang.llvm.org/docs/AddressSanitizer.html
.. _LeakSanitizer: http://clang.llvm.org/docs/LeakSanitizer.html
.. _SanitizerCoverage: https://clang.llvm.org/docs/SanitizerCoverage.html
.. _SanitizerCoverageTraceDataFlow: https://clang.llvm.org/docs/SanitizerCoverage.html#tracing-data-flow
.. _AddressSanitizer: https://clang.llvm.org/docs/AddressSanitizer.html
.. _LeakSanitizer: https://clang.llvm.org/docs/LeakSanitizer.html
.. _Heartbleed: http://en.wikipedia.org/wiki/Heartbleed
.. _FuzzerInterface.h: https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/fuzzer/FuzzerInterface.h
.. _3.7.0: http://llvm.org/releases/3.7.0/docs/LibFuzzer.html
.. _building Clang from trunk: http://clang.llvm.org/get_started.html
.. _MemorySanitizer: http://clang.llvm.org/docs/MemorySanitizer.html
.. _UndefinedBehaviorSanitizer: http://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
.. _`coverage counters`: http://clang.llvm.org/docs/SanitizerCoverage.html#coverage-counters
.. _3.7.0: https://llvm.org/releases/3.7.0/docs/LibFuzzer.html
.. _building Clang from trunk: https://clang.llvm.org/get_started.html
.. _MemorySanitizer: https://clang.llvm.org/docs/MemorySanitizer.html
.. _UndefinedBehaviorSanitizer: https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
.. _`coverage counters`: https://clang.llvm.org/docs/SanitizerCoverage.html#coverage-counters
.. _`value profile`: #value-profile
.. _`caller-callee pairs`: http://clang.llvm.org/docs/SanitizerCoverage.html#caller-callee-coverage
.. _`caller-callee pairs`: https://clang.llvm.org/docs/SanitizerCoverage.html#caller-callee-coverage
.. _BoringSSL: https://boringssl.googlesource.com/boringssl/

View File

@ -152,7 +152,7 @@ It is ensured by the LoopSimplify
(:ref:`-loop-simplify <passes-loop-simplify>`) pass and is automatically
added by the pass managers when scheduling a LoopPass.
This pass is implemented in
`LoopSimplify.h <http://llvm.org/doxygen/LoopSimplify_8h_source.html>`_.
`LoopSimplify.h <https://llvm.org/doxygen/LoopSimplify_8h_source.html>`_.
When it is successful, the loop has:
* A preheader.
@ -178,7 +178,7 @@ Rotated Loops
Loops are rotated by the LoopRotate (:ref:`loop-rotate <passes-loop-rotate>`)
pass, which converts loops into do/while style loops and is
implemented in
`LoopRotation.h <http://llvm.org/doxygen/LoopRotation_8h_source.html>`_. Example:
`LoopRotation.h <https://llvm.org/doxygen/LoopRotation_8h_source.html>`_. Example:
.. code-block:: C

View File

@ -64,7 +64,7 @@ structure.
### Example Subsection
Make a link [like this](http://llvm.org/). There is also a more
Make a link [like this](https://llvm.org/). There is also a more
sophisticated syntax which [can be more readable] for longer links since
it disrupts the flow less. You can put the `[link name]: <URL>` block
pretty much anywhere later in the document.

View File

@ -39,16 +39,16 @@ LLVM code fundamentals. In this article, we assume the reader is familiar with
`Single Static Assignment
<http://en.wikipedia.org/wiki/Static_single_assignment_form>`_
concept and has an understanding of
`IR structure <http://llvm.org/docs/LangRef.html#high-level-structure>`_.
`IR structure <https://llvm.org/docs/LangRef.html#high-level-structure>`_.
We will use terms such as
"`module <http://llvm.org/docs/LangRef.html#high-level-structure>`_",
"`function <http://llvm.org/docs/ProgrammersManual.html#the-function-class>`_",
"`module <https://llvm.org/docs/LangRef.html#high-level-structure>`_",
"`function <https://llvm.org/docs/ProgrammersManual.html#the-function-class>`_",
"`basic block <http://en.wikipedia.org/wiki/Basic_block>`_",
"`user <http://llvm.org/docs/ProgrammersManual.html#the-user-class>`_",
"`value <http://llvm.org/docs/ProgrammersManual.html#the-value-class>`_",
"`user <https://llvm.org/docs/ProgrammersManual.html#the-user-class>`_",
"`value <https://llvm.org/docs/ProgrammersManual.html#the-value-class>`_",
"`instruction
<http://llvm.org/docs/ProgrammersManual.html#the-instruction-class>`_".
<https://llvm.org/docs/ProgrammersManual.html#the-instruction-class>`_".
As a good starting point, the Kaleidoscope tutorial can be used:

View File

@ -24,7 +24,7 @@ continuously growing source code that makes up the LLVM infrastructure. Note
that this manual is not intended to serve as a replacement for reading the
source code, so if you think there should be a method in one of these classes to
do something, but it's not listed, check the source. Links to the `doxygen
<http://llvm.org/doxygen/>`__ sources are provided to make this as easy as
<https://llvm.org/doxygen/>`__ sources are provided to make this as easy as
possible.
The first section of this document describes general information that is useful
@ -32,7 +32,7 @@ to know when working in the LLVM infrastructure, and the second describes the
Core LLVM classes. In the future this manual will be extended with information
describing how to use extension libraries, such as dominator information, CFG
traversal routines, and useful utilities like the ``InstVisitor`` (`doxygen
<http://llvm.org/doxygen/InstVisitor_8h_source.html>`__) template.
<https://llvm.org/doxygen/InstVisitor_8h_source.html>`__) template.
.. _general:
@ -108,7 +108,7 @@ they don't have some drawbacks (primarily stemming from the fact that
``dynamic_cast<>`` only works on classes that have a v-table). Because they are
used so often, you must know what they do and how they work. All of these
templates are defined in the ``llvm/Support/Casting.h`` (`doxygen
<http://llvm.org/doxygen/Casting_8h_source.html>`__) file (note that you very
<https://llvm.org/doxygen/Casting_8h_source.html>`__) file (note that you very
rarely have to include this file directly).
``isa<>``:
@ -231,7 +231,7 @@ and clients can call it using any one of:
Similarly, APIs which need to return a string may return a ``StringRef``
instance, which can be used directly or converted to an ``std::string`` using
the ``str`` member function. See ``llvm/ADT/StringRef.h`` (`doxygen
<http://llvm.org/doxygen/StringRef_8h_source.html>`__) for more
<https://llvm.org/doxygen/StringRef_8h_source.html>`__) for more
information.
You should rarely use the ``StringRef`` class directly, because it contains
@ -243,7 +243,7 @@ passed by value.
The ``Twine`` class
^^^^^^^^^^^^^^^^^^^
The ``Twine`` (`doxygen <http://llvm.org/doxygen/classllvm_1_1Twine.html>`__)
The ``Twine`` (`doxygen <https://llvm.org/doxygen/classllvm_1_1Twine.html>`__)
class is an efficient way for APIs to accept concatenated strings. For example,
a common LLVM paradigm is to name one instruction based on the name of another
instruction with a suffix, for example:
@ -261,7 +261,7 @@ of strings until it is actually required, at which point it can be efficiently
rendered directly into a character array. This avoids unnecessary heap
allocation involved in constructing the temporary results of string
concatenation. See ``llvm/ADT/Twine.h`` (`doxygen
<http://llvm.org/doxygen/Twine_8h_source.html>`__) and :ref:`here <dss_twine>`
<https://llvm.org/doxygen/Twine_8h_source.html>`__) and :ref:`here <dss_twine>`
for more information.
As with a ``StringRef``, ``Twine`` objects point to external memory and should
@ -1056,7 +1056,7 @@ The ``function_ref`` class template
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The ``function_ref``
(`doxygen <http://llvm.org/doxygen/classllvm_1_1function__ref_3_01Ret_07Params_8_8_8_08_4.html>`__) class
(`doxygen <https://llvm.org/doxygen/classllvm_1_1function__ref_3_01Ret_07Params_8_8_8_08_4.html>`__) class
template represents a reference to a callable object, templated over the type
of the callable. This is a good choice for passing a callback to a function,
if you don't need to hold onto the callback after the function returns. In this
@ -1106,7 +1106,7 @@ you don't want them to always be noisy. A standard compromise is to comment
them out, allowing you to enable them if you need them in the future.
The ``llvm/Support/Debug.h`` (`doxygen
<http://llvm.org/doxygen/Debug_8h_source.html>`__) file provides a macro named
<https://llvm.org/doxygen/Debug_8h_source.html>`__) file provides a macro named
``LLVM_DEBUG()`` that is a much nicer solution to this problem. Basically, you can
put arbitrary code into the argument of the ``LLVM_DEBUG`` macro, and it is only
executed if '``opt``' (or any other tool) is run with the '``-debug``' command
@ -1203,7 +1203,7 @@ The ``Statistic`` class & ``-stats`` option
-------------------------------------------
The ``llvm/ADT/Statistic.h`` (`doxygen
<http://llvm.org/doxygen/Statistic_8h_source.html>`__) file provides a class
<https://llvm.org/doxygen/Statistic_8h_source.html>`__) file provides a class
named ``Statistic`` that is used as a unified way to keep track of what the LLVM
compiler is doing and how effective various optimizations are. It is useful to
see what optimizations are contributing to making a particular program run
@ -1298,7 +1298,7 @@ They provide a framework for making parts of your code only execute a
certain number of times.
The ``llvm/Support/DebugCounter.h`` (`doxygen
<http://llvm.org/doxygen/DebugCounter_8h_source.html>`__) file
<https://llvm.org/doxygen/DebugCounter_8h_source.html>`__) file
provides a class named ``DebugCounter`` that can be used to create
command line counter options that control execution of parts of your code.
@ -2513,7 +2513,7 @@ If you're finding that you commonly iterate over a ``Function``'s
``BasicBlock``\ s and then that ``BasicBlock``'s ``Instruction``\ s,
``InstIterator`` should be used instead. You'll need to include
``llvm/IR/InstIterator.h`` (`doxygen
<http://llvm.org/doxygen/InstIterator_8h.html>`__) and then instantiate
<https://llvm.org/doxygen/InstIterator_8h.html>`__) and then instantiate
``InstIterator``\ s explicitly in your code. Here's a small example that shows
how to dump all instructions in a function to the standard error stream:
@ -2664,7 +2664,7 @@ and in other situations, you may find that you want to treat ``CallInst``\ s and
``InvokeInst``\ s the same way, even though their most-specific common base
class is ``Instruction``, which includes lots of less closely-related things.
For these cases, LLVM provides a handy wrapper class called ``CallSite``
(`doxygen <http://llvm.org/doxygen/classllvm_1_1CallSite.html>`__) It is
(`doxygen <https://llvm.org/doxygen/classllvm_1_1CallSite.html>`__) It is
essentially a wrapper around an ``Instruction`` pointer, with some methods that
provide functionality common to ``CallInst``\ s and ``InvokeInst``\ s.
@ -2680,7 +2680,7 @@ Iterating over def-use & use-def chains
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Frequently, we might have an instance of the ``Value`` class (`doxygen
<http://llvm.org/doxygen/classllvm_1_1Value.html>`__) and we want to determine
<https://llvm.org/doxygen/classllvm_1_1Value.html>`__) and we want to determine
which ``User``\ s use the ``Value``. The list of all ``User``\ s of a particular
``Value`` is called a *def-use* chain. For example, let's say we have a
``Function*`` named ``F`` to a particular function ``foo``. Finding all of the
@ -2698,7 +2698,7 @@ chain of ``F``:
}
Alternatively, it's common to have an instance of the ``User`` Class (`doxygen
<http://llvm.org/doxygen/classllvm_1_1User.html>`__) and need to know what
<https://llvm.org/doxygen/classllvm_1_1User.html>`__) and need to know what
``Value``\ s are used by it. The list of all ``Value``\ s used by a ``User`` is
known as a *use-def* chain. Instances of class ``Instruction`` are common
``User`` s, so we might want to iterate over all of the values that a particular
@ -2770,7 +2770,7 @@ will create an ``AllocaInst`` instance that represents the allocation of one
integer in the current stack frame, at run time. Each ``Instruction`` subclass
is likely to have varying default parameters which change the semantics of the
instruction, so refer to the `doxygen documentation for the subclass of
Instruction <http://llvm.org/doxygen/classllvm_1_1Instruction.html>`_ that
Instruction <https://llvm.org/doxygen/classllvm_1_1Instruction.html>`_ that
you're interested in instantiating.
*Naming values*
@ -2928,7 +2928,7 @@ Replacing individual instructions
"""""""""""""""""""""""""""""""""
Including "`llvm/Transforms/Utils/BasicBlockUtils.h
<http://llvm.org/doxygen/BasicBlockUtils_8h_source.html>`_" permits use of two
<https://llvm.org/doxygen/BasicBlockUtils_8h_source.html>`_" permits use of two
very useful replace functions: ``ReplaceInstWithValue`` and
``ReplaceInstWithInst``.
@ -2974,8 +2974,8 @@ Replacing multiple uses of Users and Values
You can use ``Value::replaceAllUsesWith`` and ``User::replaceUsesOfWith`` to
change more than one use at a time. See the doxygen documentation for the
`Value Class <http://llvm.org/doxygen/classllvm_1_1Value.html>`_ and `User Class
<http://llvm.org/doxygen/classllvm_1_1User.html>`_, respectively, for more
`Value Class <https://llvm.org/doxygen/classllvm_1_1Value.html>`_ and `User Class
<https://llvm.org/doxygen/classllvm_1_1User.html>`_, respectively, for more
information.
.. _schanges_deletingGV:
@ -3103,7 +3103,7 @@ The ``ValueSymbolTable`` class
------------------------------
The ``ValueSymbolTable`` (`doxygen
<http://llvm.org/doxygen/classllvm_1_1ValueSymbolTable.html>`__) class provides
<https://llvm.org/doxygen/classllvm_1_1ValueSymbolTable.html>`__) class provides
a symbol table that the :ref:`Function <c_Function>` and Module_ classes use for
naming value definitions. The symbol table can provide a name for any Value_.
@ -3124,10 +3124,10 @@ autoinsert it into the appropriate symbol table.
The ``User`` and owned ``Use`` classes' memory layout
-----------------------------------------------------
The ``User`` (`doxygen <http://llvm.org/doxygen/classllvm_1_1User.html>`__)
The ``User`` (`doxygen <https://llvm.org/doxygen/classllvm_1_1User.html>`__)
class provides a basis for expressing the ownership of ``User`` towards other
`Value instance <http://llvm.org/doxygen/classllvm_1_1Value.html>`_\ s. The
``Use`` (`doxygen <http://llvm.org/doxygen/classllvm_1_1Use.html>`__) helper
`Value instance <https://llvm.org/doxygen/classllvm_1_1Value.html>`_\ s. The
``Use`` (`doxygen <https://llvm.org/doxygen/classllvm_1_1Use.html>`__) helper
class is employed to do the bookkeeping and to facilitate *O(1)* addition and
removal.
@ -3414,9 +3414,9 @@ The Core LLVM Class Hierarchy Reference
``#include "llvm/IR/Type.h"``
header source: `Type.h <http://llvm.org/doxygen/Type_8h_source.html>`_
header source: `Type.h <https://llvm.org/doxygen/Type_8h_source.html>`_
doxygen info: `Type Classes <http://llvm.org/doxygen/classllvm_1_1Type.html>`_
doxygen info: `Type Classes <https://llvm.org/doxygen/classllvm_1_1Type.html>`_
The Core LLVM classes are the primary means of representing the program being
inspected or transformed. The core LLVM classes are defined in header files in
@ -3518,9 +3518,9 @@ The ``Module`` class
``#include "llvm/IR/Module.h"``
header source: `Module.h <http://llvm.org/doxygen/Module_8h_source.html>`_
header source: `Module.h <https://llvm.org/doxygen/Module_8h_source.html>`_
doxygen info: `Module Class <http://llvm.org/doxygen/classllvm_1_1Module.html>`_
doxygen info: `Module Class <https://llvm.org/doxygen/classllvm_1_1Module.html>`_
The ``Module`` class represents the top level structure present in LLVM
programs. An LLVM module is effectively either a translation unit of the
@ -3611,9 +3611,9 @@ The ``Value`` class
``#include "llvm/IR/Value.h"``
header source: `Value.h <http://llvm.org/doxygen/Value_8h_source.html>`_
header source: `Value.h <https://llvm.org/doxygen/Value_8h_source.html>`_
doxygen info: `Value Class <http://llvm.org/doxygen/classllvm_1_1Value.html>`_
doxygen info: `Value Class <https://llvm.org/doxygen/classllvm_1_1Value.html>`_
The ``Value`` class is the most important class in the LLVM Source base. It
represents a typed value that may be used (among other things) as an operand to
@ -3702,9 +3702,9 @@ The ``User`` class
``#include "llvm/IR/User.h"``
header source: `User.h <http://llvm.org/doxygen/User_8h_source.html>`_
header source: `User.h <https://llvm.org/doxygen/User_8h_source.html>`_
doxygen info: `User Class <http://llvm.org/doxygen/classllvm_1_1User.html>`_
doxygen info: `User Class <https://llvm.org/doxygen/classllvm_1_1User.html>`_
Superclass: Value_
@ -3749,10 +3749,10 @@ The ``Instruction`` class
``#include "llvm/IR/Instruction.h"``
header source: `Instruction.h
<http://llvm.org/doxygen/Instruction_8h_source.html>`_
<https://llvm.org/doxygen/Instruction_8h_source.html>`_
doxygen info: `Instruction Class
<http://llvm.org/doxygen/classllvm_1_1Instruction.html>`_
<https://llvm.org/doxygen/classllvm_1_1Instruction.html>`_
Superclasses: User_, Value_
@ -3773,7 +3773,7 @@ instructions in LLVM. It describes the enum values that are used as opcodes
concrete sub-classes of ``Instruction`` that implement the instruction (for
example BinaryOperator_ and CmpInst_). Unfortunately, the use of macros in this
file confuses doxygen, so these enum values don't show up correctly in the
`doxygen output <http://llvm.org/doxygen/classllvm_1_1Instruction.html>`_.
`doxygen output <https://llvm.org/doxygen/classllvm_1_1Instruction.html>`_.
.. _s_Instruction:
@ -3890,10 +3890,10 @@ The ``GlobalValue`` class
``#include "llvm/IR/GlobalValue.h"``
header source: `GlobalValue.h
<http://llvm.org/doxygen/GlobalValue_8h_source.html>`_
<https://llvm.org/doxygen/GlobalValue_8h_source.html>`_
doxygen info: `GlobalValue Class
<http://llvm.org/doxygen/classllvm_1_1GlobalValue.html>`_
<https://llvm.org/doxygen/classllvm_1_1GlobalValue.html>`_
Superclasses: Constant_, User_, Value_
@ -3948,10 +3948,10 @@ The ``Function`` class
``#include "llvm/IR/Function.h"``
header source: `Function.h <http://llvm.org/doxygen/Function_8h_source.html>`_
header source: `Function.h <https://llvm.org/doxygen/Function_8h_source.html>`_
doxygen info: `Function Class
<http://llvm.org/doxygen/classllvm_1_1Function.html>`_
<https://llvm.org/doxygen/classllvm_1_1Function.html>`_
Superclasses: GlobalValue_, Constant_, User_, Value_
@ -4057,10 +4057,10 @@ The ``GlobalVariable`` class
``#include "llvm/IR/GlobalVariable.h"``
header source: `GlobalVariable.h
<http://llvm.org/doxygen/GlobalVariable_8h_source.html>`_
<https://llvm.org/doxygen/GlobalVariable_8h_source.html>`_
doxygen info: `GlobalVariable Class
<http://llvm.org/doxygen/classllvm_1_1GlobalVariable.html>`_
<https://llvm.org/doxygen/classllvm_1_1GlobalVariable.html>`_
Superclasses: GlobalValue_, Constant_, User_, Value_
@ -4115,10 +4115,10 @@ The ``BasicBlock`` class
``#include "llvm/IR/BasicBlock.h"``
header source: `BasicBlock.h
<http://llvm.org/doxygen/BasicBlock_8h_source.html>`_
<https://llvm.org/doxygen/BasicBlock_8h_source.html>`_
doxygen info: `BasicBlock Class
<http://llvm.org/doxygen/classllvm_1_1BasicBlock.html>`_
<https://llvm.org/doxygen/classllvm_1_1BasicBlock.html>`_
Superclass: Value_

View File

@ -319,7 +319,7 @@ Currently
# direct SVN checkout
svn co https://user@llvm.org/svn/llvm-project/llvm/trunk llvm
# or using the read-only Git view, with git-svn
git clone http://llvm.org/git/llvm.git
git clone https://llvm.org/git/llvm.git
cd llvm
git svn init https://llvm.org/svn/llvm-project/llvm/trunk --username=<username>
git config svn-remote.svn.fetch :refs/remotes/origin/master
@ -381,29 +381,29 @@ Currently
::
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm -r $REVISION
svn co https://llvm.org/svn/llvm-project/llvm/trunk llvm -r $REVISION
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/clang/trunk clang -r $REVISION
svn co https://llvm.org/svn/llvm-project/clang/trunk clang -r $REVISION
cd ../projects
svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx -r $REVISION
svn co https://llvm.org/svn/llvm-project/libcxx/trunk libcxx -r $REVISION
Or using git-svn::
git clone http://llvm.org/git/llvm.git
git clone https://llvm.org/git/llvm.git
cd llvm/
git svn init https://llvm.org/svn/llvm-project/llvm/trunk --username=<username>
git config svn-remote.svn.fetch :refs/remotes/origin/master
git svn rebase -l
git checkout `git svn find-rev -B r258109`
cd tools
git clone http://llvm.org/git/clang.git
git clone https://llvm.org/git/clang.git
cd clang/
git svn init https://llvm.org/svn/llvm-project/clang/trunk --username=<username>
git config svn-remote.svn.fetch :refs/remotes/origin/master
git svn rebase -l
git checkout `git svn find-rev -B r258109`
cd ../../projects/
git clone http://llvm.org/git/libcxx.git
git clone https://llvm.org/git/libcxx.git
cd libcxx
git svn init https://llvm.org/svn/llvm-project/libcxx/trunk --username=<username>
git config svn-remote.svn.fetch :refs/remotes/origin/master

View File

@ -5,7 +5,7 @@ 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
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
@ -17,7 +17,7 @@ Sphinx <http://sphinx-doc.org/> and then do:
$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` <-> `http://llvm.org/docs/Foo.html`.
`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
@ -41,7 +41,7 @@ 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.
`http://llvm.org/docs/CommandGuide/Foo.html`.
`https://llvm.org/docs/CommandGuide/Foo.html`.
Checking links
==============

View File

@ -53,8 +53,8 @@ LLVM and API reference documentation.
API Reference
-------------
`Doxygen generated documentation <http://llvm.org/doxygen/>`_
(`classes <http://llvm.org/doxygen/inherits.html>`_)
`Doxygen generated documentation <https://llvm.org/doxygen/>`_
(`classes <https://llvm.org/doxygen/inherits.html>`_)
:doc:`HowToUseAttributes`
Answers some questions about the new Attributes infrastructure.

View File

@ -115,7 +115,7 @@ Test Suite
:local:
Follow the `LNT Quick Start Guide
<http://llvm.org/docs/lnt/quickstart.html>`__ link on how to set-up the
<https://llvm.org/docs/lnt/quickstart.html>`__ link on how to set-up the
test-suite
The binary location you'll have to use for testing is inside the
@ -160,7 +160,7 @@ candidates, on the previous release.
You should:
* Download the previous release sources from
http://llvm.org/releases/download.html.
https://llvm.org/releases/download.html.
* Run the test-release.sh script on ``final`` mode (change ``-rc 1`` to
``-final``).
@ -190,7 +190,7 @@ to them), and run the release test as above.
You should:
* Download the current candidate sources from where the release manager points
you (ex. http://llvm.org/pre-releases/3.3/rc1/).
you (ex. https://llvm.org/pre-releases/3.3/rc1/).
* Repeat the steps above with ``-rc 1``, ``-rc 2`` etc modes and run the
test-suite the same way.

View File

@ -84,7 +84,7 @@ To create a new paragraph, simply insert a blank line.
Links
=====
You can format a link `like this <http://llvm.org/>`_. A more `sophisticated syntax`_ allows you to place the ``.. _`link text`: <URL>`` block
You can format a link `like this <https://llvm.org/>`_. A more `sophisticated syntax`_ allows you to place the ``.. _`link text`: <URL>`` block
pretty much anywhere else in the document. This is useful when linking to especially long URLs.
.. _`sophisticated syntax`: http://en.wikipedia.org/wiki/LLVM

View File

@ -28,7 +28,7 @@ hands the result off to a domain-specific `backend`_ for processing.
The current major users of TableGen are :doc:`../CodeGenerator`
and the
`Clang diagnostics and attributes <http://clang.llvm.org/docs/UsersManual.html#controlling-errors-and-warnings>`_.
`Clang diagnostics and attributes <https://clang.llvm.org/docs/UsersManual.html#controlling-errors-and-warnings>`_.
Note that if you work on TableGen much, and use emacs or vim, that you can find
an emacs "TableGen mode" and a vim language file in the ``llvm/utils/emacs`` and

View File

@ -19,7 +19,7 @@ Quickstart
% mkdir venv
% virtualenv venv
% . venv/bin/activate
% pip install svn+http://llvm.org/svn/llvm-project/llvm/trunk/utils/lit
% pip install svn+https://llvm.org/svn/llvm-project/llvm/trunk/utils/lit
% lit --version
lit 0.8.0dev
```
@ -279,7 +279,7 @@ Example usage:
LNT is a set of client and server tools for continuously monitoring
performance. You can find more information at
[http://llvm.org/docs/lnt](http://llvm.org/docs/lnt). The official LNT instance
[https://llvm.org/docs/lnt](https://llvm.org/docs/lnt). The official LNT instance
of the LLVM project is hosted at [http://lnt.llvm.org](http://lnt.llvm.org).
@ -348,7 +348,7 @@ Cross Compilation and External Devices
CMake allows to cross compile to a different target via toolchain files. More
information can be found here:
- [http://llvm.org/docs/lnt/tests.html#cross-compiling](http://llvm.org/docs/lnt/tests.html#cross-compiling)
- [https://llvm.org/docs/lnt/tests.html#cross-compiling](https://llvm.org/docs/lnt/tests.html#cross-compiling)
- [https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html](https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html)
@ -389,7 +389,7 @@ Running the test-suite via LNT
The LNT tool can run the test-suite. Use this when submitting test results to
an LNT instance. See
[http://llvm.org/docs/lnt/tests.html#llvm-cmake-test-suite](http://llvm.org/docs/lnt/tests.html#llvm-cmake-test-suite)
[https://llvm.org/docs/lnt/tests.html#llvm-cmake-test-suite](https://llvm.org/docs/lnt/tests.html#llvm-cmake-test-suite)
for details.
Running the test-suite via Makefiles (deprecated)

View File

@ -129,7 +129,7 @@ in release mode, i.e.
% cmake -DCMAKE_BUILD_TYPE="Release" -DLLVM_ENABLE_ASSERTIONS=On
If you have `Clang <http://clang.llvm.org/>`_ checked out and built, you
If you have `Clang <https://clang.llvm.org/>`_ checked out and built, you
can run the LLVM and Clang tests simultaneously using:
.. code-block:: bash

View File

@ -29,7 +29,7 @@ or functions.
An intrinsic, :ref:`llvm.type.test <type.test>`, is used to test whether a
given pointer is associated with a type identifier.
.. _control flow integrity: http://clang.llvm.org/docs/ControlFlowIntegrity.html
.. _control flow integrity: https://clang.llvm.org/docs/ControlFlowIntegrity.html
Representing Type Information using Type Metadata
=================================================
@ -160,7 +160,7 @@ as the former will be the jump table entry if a jump table is necessary.
The `GlobalLayoutBuilder`_ class is responsible for laying out the globals
efficiently to minimize the sizes of the underlying bitsets.
.. _control flow integrity design document: http://clang.llvm.org/docs/ControlFlowIntegrityDesign.html
.. _control flow integrity design document: https://clang.llvm.org/docs/ControlFlowIntegrityDesign.html
:Example:

View File

@ -2,7 +2,7 @@ User Guides
===========
NOTE: If you are a user who is only interested in using an LLVM-based compiler,
you should look into `Clang <http://clang.llvm.org>`_ instead. The
you should look into `Clang <https://clang.llvm.org>`_ instead. The
documentation here is intended for users who have a need to work with the
intermediate LLVM representation.
@ -71,7 +71,7 @@ Clang
`How to build the C, C++, ObjC, and ObjC++ front end`__
Instructions for building the clang front-end from source.
.. __: http://clang.llvm.org/get_started.html
.. __: https://clang.llvm.org/get_started.html
:doc:`CoverageMappingFormat`
This describes the format and encoding used for LLVMs code coverage mapping.

View File

@ -80,7 +80,7 @@ specifying a vector width and interleaving count:
See the Clang
`language extensions
<http://clang.llvm.org/docs/LanguageExtensions.html#extensions-for-loop-hint-optimizations>`_
<https://clang.llvm.org/docs/LanguageExtensions.html#extensions-for-loop-hint-optimizations>`_
for details.
Diagnostics
@ -133,7 +133,7 @@ switch statement cannot be vectorized.
To ensure line and column numbers are produced include the command line options
``-gline-tables-only`` and ``-gcolumn-info``. See the Clang `user manual
<http://clang.llvm.org/docs/UsersManual.html#options-to-emit-optimization-reports>`_
<https://clang.llvm.org/docs/UsersManual.html#options-to-emit-optimization-reports>`_
for details
Features

View File

@ -17,7 +17,7 @@ build the analysis results that are used by these transformations, and they
are, above all, a structuring technique for compiler code.
All LLVM passes are subclasses of the `Pass
<http://llvm.org/doxygen/classllvm_1_1Pass.html>`_ class, which implement
<https://llvm.org/doxygen/classllvm_1_1Pass.html>`_ class, which implement
functionality by overriding virtual methods inherited from ``Pass``. Depending
on how your pass works, you should inherit from the :ref:`ModulePass
<writing-an-llvm-pass-ModulePass>` , :ref:`CallGraphSCCPass
@ -98,8 +98,8 @@ Start out with:
#include "llvm/Support/raw_ostream.h"
Which are needed because we are writing a `Pass
<http://llvm.org/doxygen/classllvm_1_1Pass.html>`_, we are operating on
`Function <http://llvm.org/doxygen/classllvm_1_1Function.html>`_\ s, and we will
<https://llvm.org/doxygen/classllvm_1_1Pass.html>`_, we are operating on
`Function <https://llvm.org/doxygen/classllvm_1_1Function.html>`_\ s, and we will
be doing some printing.
Next we have:
@ -336,7 +336,7 @@ The ``ImmutablePass`` class
---------------------------
The most plain and boring type of pass is the "`ImmutablePass
<http://llvm.org/doxygen/classllvm_1_1ImmutablePass.html>`_" class. This pass
<https://llvm.org/doxygen/classllvm_1_1ImmutablePass.html>`_" class. This pass
type is used for passes that do not have to be run, do not change state, and
never need to be updated. This is not a normal type of transformation or
analysis, but can provide information about the current compiler configuration.
@ -353,7 +353,7 @@ invalidated, and are never "run".
The ``ModulePass`` class
------------------------
The `ModulePass <http://llvm.org/doxygen/classllvm_1_1ModulePass.html>`_ class
The `ModulePass <https://llvm.org/doxygen/classllvm_1_1ModulePass.html>`_ class
is the most general of all superclasses that you can use. Deriving from
``ModulePass`` indicates that your pass uses the entire program as a unit,
referring to function bodies in no predictable order, or adding and removing
@ -388,7 +388,7 @@ The ``CallGraphSCCPass`` class
------------------------------
The `CallGraphSCCPass
<http://llvm.org/doxygen/classllvm_1_1CallGraphSCCPass.html>`_ is used by
<https://llvm.org/doxygen/classllvm_1_1CallGraphSCCPass.html>`_ is used by
passes that need to traverse the program bottom-up on the call graph (callees
before callers). Deriving from ``CallGraphSCCPass`` provides some mechanics
for building and traversing the ``CallGraph``, but also allows the system to
@ -460,7 +460,7 @@ The ``FunctionPass`` class
--------------------------
In contrast to ``ModulePass`` subclasses, `FunctionPass
<http://llvm.org/doxygen/classllvm_1_1Pass.html>`_ subclasses do have a
<https://llvm.org/doxygen/classllvm_1_1Pass.html>`_ subclasses do have a
predictable, local behavior that can be expected by the system. All
``FunctionPass`` execute on each function in the program independent of all of
the other functions in the program. ``FunctionPass``\ es do not require that
@ -498,7 +498,7 @@ being processed. The ``doInitialization`` method call is not scheduled to
overlap with any other pass executions (thus it should be very fast).
A good example of how this method should be used is the `LowerAllocations
<http://llvm.org/doxygen/LowerAllocations_8cpp-source.html>`_ pass. This pass
<https://llvm.org/doxygen/LowerAllocations_8cpp-source.html>`_ pass. This pass
converts ``malloc`` and ``free`` instructions into platform dependent
``malloc()`` and ``free()`` function calls. It uses the ``doInitialization``
method to get a reference to the ``malloc`` and ``free`` functions that it
@ -761,7 +761,7 @@ The ``getAnalysisUsage`` method
By implementing the ``getAnalysisUsage`` method, the required and invalidated
sets may be specified for your transformation. The implementation should fill
in the `AnalysisUsage
<http://llvm.org/doxygen/classllvm_1_1AnalysisUsage.html>`_ object with
<https://llvm.org/doxygen/classllvm_1_1AnalysisUsage.html>`_ object with
information about which passes are required and not invalidated. To do this, a
pass may call any of the following methods on the ``AnalysisUsage`` object:
@ -914,14 +914,14 @@ be registered with :ref:`RegisterAnalysisGroup
<writing-an-llvm-pass-RegisterAnalysisGroup>`.
As a concrete example of an Analysis Group in action, consider the
`AliasAnalysis <http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html>`_
`AliasAnalysis <https://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html>`_
analysis group. The default implementation of the alias analysis interface
(the `basicaa <http://llvm.org/doxygen/structBasicAliasAnalysis.html>`_ pass)
(the `basicaa <https://llvm.org/doxygen/structBasicAliasAnalysis.html>`_ pass)
just does a few simple checks that don't require significant analysis to
compute (such as: two different globals can never alias each other, etc).
Passes that use the `AliasAnalysis
<http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html>`_ interface (for
example the `gvn <http://llvm.org/doxygen/classllvm_1_1GVN.html>`_ pass), do not
<https://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html>`_ interface (for
example the `gvn <https://llvm.org/doxygen/classllvm_1_1GVN.html>`_ pass), do not
care which implementation of alias analysis is actually provided, they just use
the designated interface.
@ -963,7 +963,7 @@ implementations of the interface by using the following code:
This just shows a class ``FancyAA`` that uses the ``INITIALIZE_AG_PASS`` macro
both to register and to "join" the `AliasAnalysis
<http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html>`_ analysis group.
<https://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html>`_ analysis group.
Every implementation of an analysis group should join using this macro.
.. code-block:: c++
@ -982,13 +982,13 @@ argument to the ``INITIALIZE_AG_PASS`` template). There must be exactly one
default implementation available at all times for an Analysis Group to be used.
Only default implementation can derive from ``ImmutablePass``. Here we declare
that the `BasicAliasAnalysis
<http://llvm.org/doxygen/structBasicAliasAnalysis.html>`_ pass is the default
<https://llvm.org/doxygen/structBasicAliasAnalysis.html>`_ pass is the default
implementation for the interface.
Pass Statistics
===============
The `Statistic <http://llvm.org/doxygen/Statistic_8h_source.html>`_ class is
The `Statistic <https://llvm.org/doxygen/Statistic_8h_source.html>`_ class is
designed to be an easy way to expose various success metrics from passes.
These statistics are printed at the end of a run, when the :option:`-stats`
command line option is enabled on the command line. See the :ref:`Statistics
@ -999,8 +999,8 @@ section <Statistic>` in the Programmer's Manual for details.
What PassManager does
---------------------
The `PassManager <http://llvm.org/doxygen/PassManager_8h_source.html>`_ `class
<http://llvm.org/doxygen/classllvm_1_1PassManager.html>`_ takes a list of
The `PassManager <https://llvm.org/doxygen/PassManager_8h_source.html>`_ `class
<https://llvm.org/doxygen/classllvm_1_1PassManager.html>`_ takes a list of
passes, ensures their :ref:`prerequisites <writing-an-llvm-pass-interaction>`
are set up correctly, and then schedules passes to run efficiently. All of the
LLVM tools that run passes use the PassManager for execution of these passes.
@ -1030,7 +1030,7 @@ series of passes:
touching the LLVM program representation for a single function at a time,
instead of traversing the entire program. It reduces the memory consumption
of compiler, because, for example, only one `DominatorSet
<http://llvm.org/doxygen/classllvm_1_1DominatorSet.html>`_ needs to be
<https://llvm.org/doxygen/classllvm_1_1DominatorSet.html>`_ needs to be
calculated at a time. This also makes it possible to implement some
:ref:`interesting enhancements <writing-an-llvm-pass-SMP>` in the future.

View File

@ -4,7 +4,7 @@ About
.. warning::
If you are using a released version of LLVM, see `the download page
<http://llvm.org/releases/>`_ to find your documentation.
<https://llvm.org/releases/>`_ to find your documentation.
The LLVM compiler infrastructure supports a wide range of projects, from
industrial strength compilers to specialized JIT applications to small
@ -27,7 +27,7 @@ Several introductory papers and presentations.
`Introduction to the LLVM Compiler`__
Presentation providing a users introduction to LLVM.
.. __: http://llvm.org/pubs/2008-10-04-ACAT-LLVM-Intro.html
.. __: https://llvm.org/pubs/2008-10-04-ACAT-LLVM-Intro.html
`Intro to LLVM`__
A chapter from the book "The Architecture of Open Source Applications" that
@ -39,12 +39,12 @@ Several introductory papers and presentations.
`LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation`__
Design overview.
.. __: http://llvm.org/pubs/2004-01-30-CGO-LLVM.html
.. __: https://llvm.org/pubs/2004-01-30-CGO-LLVM.html
`LLVM: An Infrastructure for Multi-Stage Optimization`__
More details (quite old now).
.. __: http://llvm.org/pubs/2002-12-LattnerMSThesis.html
.. __: https://llvm.org/pubs/2002-12-LattnerMSThesis.html
Documentation
=============

View File

@ -320,4 +320,4 @@ Here is the code:
+-----------------------------+-----------------------------------------------+
.. [3] See the ErrorHandling section in the LLVM Programmer's Manual
(http://llvm.org/docs/ProgrammersManual.html#error-handling)
(https://llvm.org/docs/ProgrammersManual.html#error-handling)

View File

@ -718,7 +718,7 @@ Full Code Listing
Here is the complete code listing for our running example. Because this
uses the LLVM libraries, we need to link them in. To do this, we use the
`llvm-config <http://llvm.org/cmds/llvm-config.html>`_ tool to inform
`llvm-config <https://llvm.org/cmds/llvm-config.html>`_ tool to inform
our makefile/command line about which options to use:
.. code-block:: bash

View File

@ -20,7 +20,7 @@ later. LLVM 3.6 and before will not work with it. Also note that you
need to use a version of this tutorial that matches your LLVM release:
If you are using an official LLVM release, use the version of the
documentation included with your release or on the `llvm.org releases
page <http://llvm.org/releases/>`_.
page <https://llvm.org/releases/>`_.
Code Generation Setup
=====================
@ -90,7 +90,7 @@ detail, we just need a single instance to pass into APIs that require it.
The ``Builder`` object is a helper object that makes it easy to generate
LLVM instructions. Instances of the
`IRBuilder <http://llvm.org/doxygen/IRBuilder_8h-source.html>`_
`IRBuilder <https://llvm.org/doxygen/IRBuilder_8h-source.html>`_
class template keep track of the current place to insert instructions
and has methods to create new instructions.
@ -549,7 +549,7 @@ Full Code Listing
Here is the complete code listing for our running example, enhanced with
the LLVM code generator. Because this uses the LLVM libraries, we need
to link them in. To do this, we use the
`llvm-config <http://llvm.org/cmds/llvm-config.html>`_ tool to inform
`llvm-config <https://llvm.org/cmds/llvm-config.html>`_ tool to inform
our makefile/command line about which options to use:
.. code-block:: bash

View File

@ -98,7 +98,7 @@ LLVM Optimization Passes
Due to the transition to the new PassManager infrastructure this tutorial
is based on ``llvm::legacy::FunctionPassManager`` which can be found in
`LegacyPassManager.h <http://llvm.org/doxygen/classllvm_1_1legacy_1_1FunctionPassManager.html>`_.
`LegacyPassManager.h <https://llvm.org/doxygen/classllvm_1_1legacy_1_1FunctionPassManager.html>`_.
For the purpose of the this tutorial the above should be used until
the pass manager transition is complete.

View File

@ -213,7 +213,7 @@ Kaleidoscope looks like this:
}
To visualize the control flow graph, you can use a nifty feature of the
LLVM '`opt <http://llvm.org/cmds/opt.html>`_' tool. If you put this LLVM
LLVM '`opt <https://llvm.org/cmds/opt.html>`_' tool. If you put this LLVM
IR into "t.ll" and run "``llvm-as < t.ll | opt -analyze -view-cfg``", `a
window will pop up <../../ProgrammersManual.html#viewing-graphs-while-debugging-code>`_ and you'll
see this graph:

View File

@ -23,7 +23,7 @@ machine.
To specify the architecture that you want to target, we use a string
called a "target triple". This takes the form
``<arch><sub>-<vendor>-<sys>-<abi>`` (see the `cross compilation docs
<http://clang.llvm.org/docs/CrossCompilation.html#target-triple>`_).
<https://clang.llvm.org/docs/CrossCompilation.html#target-triple>`_).
As an example, we can see what clang thinks is our current target
triple:

View File

@ -165,13 +165,13 @@ DWARF Emission Setup
====================
Similar to the ``IRBuilder`` class we have a
`DIBuilder <http://llvm.org/doxygen/classllvm_1_1DIBuilder.html>`_ class
`DIBuilder <https://llvm.org/doxygen/classllvm_1_1DIBuilder.html>`_ class
that helps in constructing debug metadata for an LLVM IR file. It
corresponds 1:1 similarly to ``IRBuilder`` and LLVM IR, but with nicer names.
Using it does require that you be more familiar with DWARF terminology than
you needed to be with ``IRBuilder`` and ``Instruction`` names, but if you
read through the general documentation on the
`Metadata Format <http://llvm.org/docs/SourceLevelDebugging.html>`_ it
`Metadata Format <https://llvm.org/docs/SourceLevelDebugging.html>`_ it
should be a little more clear. We'll be using this class to construct all
of our IR level descriptions. Construction for it takes a module so we
need to construct it shortly after we construct our module. We've left it

View File

@ -65,7 +65,7 @@ the top-level structure that the LLVM IR uses to contain code.
The ``Codegen.builder`` object is a helper object that makes it easy to
generate LLVM instructions. Instances of the
`IRBuilder <http://llvm.org/doxygen/IRBuilder_8h-source.html>`_
`IRBuilder <https://llvm.org/doxygen/IRBuilder_8h-source.html>`_
class keep track of the current place to insert instructions and has
methods to create new instructions.
@ -522,7 +522,7 @@ Full Code Listing
Here is the complete code listing for our running example, enhanced with
the LLVM code generator. Because this uses the LLVM libraries, we need
to link them in. To do this, we use the
`llvm-config <http://llvm.org/cmds/llvm-config.html>`_ tool to inform
`llvm-config <https://llvm.org/cmds/llvm-config.html>`_ tool to inform
our makefile/command line about which options to use:
.. code-block:: bash

View File

@ -161,7 +161,7 @@ Kaleidoscope looks like this:
}
To visualize the control flow graph, you can use a nifty feature of the
LLVM '`opt <http://llvm.org/cmds/opt.html>`_' tool. If you put this LLVM
LLVM '`opt <https://llvm.org/cmds/opt.html>`_' tool. If you put this LLVM
IR into "t.ll" and run "``llvm-as < t.ll | opt -analyze -view-cfg``", `a
window will pop up <../ProgrammersManual.html#viewing-graphs-while-debugging-code>`_ and you'll
see this graph:

View File

@ -51,5 +51,5 @@ External Tutorials
Advanced Topics
===============
#. `Writing an Optimization for LLVM <http://llvm.org/pubs/2004-09-22-LCPCLLVMTutorial.html>`_
#. `Writing an Optimization for LLVM <https://llvm.org/pubs/2004-09-22-LCPCLLVMTutorial.html>`_

View File

@ -4,7 +4,7 @@ How to Build the LLVM* OpenMP* Libraries
This repository requires `CMake <http://www.cmake.org/>`_ v2.8.0 or later. LLVM
and Clang need a more recent version which also applies for in-tree builds. For
more information than available in this document please see
`LLVM's CMake documentation <http://llvm.org/docs/CMake.html>`_ and the
`LLVM's CMake documentation <https://llvm.org/docs/CMake.html>`_ and the
`official documentation <https://cmake.org/cmake/help/v2.8.0/cmake.html>`_.
.. contents::

View File

@ -21,7 +21,7 @@ Using bugpoint to track down errors in large files
- ``$ bugpoint crash.ll -polly-codegen -opt-args -polly-canonicalize -polly-process-unprofitable``
For more documentation on bugpoint, `Visit the LLVM manual <http://llvm.org/docs/Bugpoint.html>`_
For more documentation on bugpoint, `Visit the LLVM manual <https://llvm.org/docs/Bugpoint.html>`_
Understanding which pass makes a particular change