Use https rather than http for several URLs.
This commit is contained in:
@@ -3,7 +3,7 @@ Cretonne Code Generator
|
|||||||
=======================
|
=======================
|
||||||
|
|
||||||
Cretonne is a low-level retargetable code generator. It translates a `target-independent
|
Cretonne is a low-level retargetable code generator. It translates a `target-independent
|
||||||
intermediate language <http://cretonne.readthedocs.io/en/latest/langref.html>`_ into executable
|
intermediate language <https://cretonne.readthedocs.io/en/latest/langref.html>`_ into executable
|
||||||
machine code.
|
machine code.
|
||||||
|
|
||||||
*This is a work in progress that is not yet functional.*
|
*This is a work in progress that is not yet functional.*
|
||||||
@@ -61,7 +61,7 @@ Building the documentation
|
|||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
To build the Cretonne documentation, you need the `Sphinx documentation
|
To build the Cretonne documentation, you need the `Sphinx documentation
|
||||||
generator <http://www.sphinx-doc.org/>`_::
|
generator <https://www.sphinx-doc.org/>`_::
|
||||||
|
|
||||||
$ pip install sphinx sphinx-autobuild sphinx_rtd_theme
|
$ pip install sphinx sphinx-autobuild sphinx_rtd_theme
|
||||||
$ cd cretonne/docs
|
$ cd cretonne/docs
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
Cretonne compared to LLVM
|
Cretonne compared to LLVM
|
||||||
*************************
|
*************************
|
||||||
|
|
||||||
`LLVM <http://llvm.org>`_ is a collection of compiler components implemented as
|
`LLVM <https://llvm.org>`_ is a collection of compiler components implemented as
|
||||||
a set of C++ libraries. It can be used to build both JIT compilers and static
|
a set of C++ libraries. It can be used to build both JIT compilers and static
|
||||||
compilers like `Clang <http://clang.llvm.org>`_, and it is deservedly very
|
compilers like `Clang <https://clang.llvm.org>`_, and it is deservedly very
|
||||||
popular. `Chris Lattner's chapter about LLVM
|
popular. `Chris Lattner's chapter about LLVM
|
||||||
<http://www.aosabook.org/en/llvm.html>`_ in the `Architecture of Open Source
|
<http://www.aosabook.org/en/llvm.html>`_ in the `Architecture of Open Source
|
||||||
Applications <http://aosabook.org/en/index.html>`_ book gives an excellent
|
Applications <http://aosabook.org/en/index.html>`_ book gives an excellent
|
||||||
@@ -40,7 +40,7 @@ Intermediate representations
|
|||||||
LLVM uses multiple intermediate representations as it translates a program to
|
LLVM uses multiple intermediate representations as it translates a program to
|
||||||
binary machine code:
|
binary machine code:
|
||||||
|
|
||||||
`LLVM IR <http://llvm.org/docs/LangRef.html>`_
|
`LLVM IR <https://llvm.org/docs/LangRef.html>`_
|
||||||
This is the primary intermediate language which has textual, binary, and
|
This is the primary intermediate language which has textual, binary, and
|
||||||
in-memory representations. It serves two main purposes:
|
in-memory representations. It serves two main purposes:
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ binary machine code:
|
|||||||
- Intermediate representation for common mid-level optimizations. A large
|
- Intermediate representation for common mid-level optimizations. A large
|
||||||
library of code analysis and transformation passes operate on LLVM IR.
|
library of code analysis and transformation passes operate on LLVM IR.
|
||||||
|
|
||||||
`SelectionDAG <http://llvm.org/docs/CodeGenerator.html#instruction-selection-section>`_
|
`SelectionDAG <https://llvm.org/docs/CodeGenerator.html#instruction-selection-section>`_
|
||||||
A graph-based representation of the code in a single basic block is used by
|
A graph-based representation of the code in a single basic block is used by
|
||||||
the instruction selector. It has both ISA-agnostic and ISA-specific
|
the instruction selector. It has both ISA-agnostic and ISA-specific
|
||||||
opcodes. These main passes are run on the SelectionDAG representation:
|
opcodes. These main passes are run on the SelectionDAG representation:
|
||||||
@@ -65,7 +65,7 @@ binary machine code:
|
|||||||
The SelectionDAG representation automatically eliminates common
|
The SelectionDAG representation automatically eliminates common
|
||||||
subexpressions and dead code.
|
subexpressions and dead code.
|
||||||
|
|
||||||
`MachineInstr <http://llvm.org/docs/CodeGenerator.html#machine-code-representation>`_
|
`MachineInstr <https://llvm.org/docs/CodeGenerator.html#machine-code-representation>`_
|
||||||
A linear representation of ISA-specific instructions that initially is in
|
A linear representation of ISA-specific instructions that initially is in
|
||||||
SSA form, but it can also represent non-SSA form during and after register
|
SSA form, but it can also represent non-SSA form during and after register
|
||||||
allocation. Many low-level optimizations run on MI code. The most important
|
allocation. Many low-level optimizations run on MI code. The most important
|
||||||
@@ -74,7 +74,7 @@ binary machine code:
|
|||||||
- Scheduling.
|
- Scheduling.
|
||||||
- Register allocation.
|
- Register allocation.
|
||||||
|
|
||||||
`MC <http://llvm.org/docs/CodeGenerator.html#the-mc-layer>`_
|
`MC <https://llvm.org/docs/CodeGenerator.html#the-mc-layer>`_
|
||||||
MC serves as the output abstraction layer and is the basis for LLVM's
|
MC serves as the output abstraction layer and is the basis for LLVM's
|
||||||
integrated assembler. It is used for:
|
integrated assembler. It is used for:
|
||||||
|
|
||||||
@@ -126,7 +126,7 @@ condition is false. The Cretonne representation is closer to how machine code
|
|||||||
works; LLVM's representation is more abstract.
|
works; LLVM's representation is more abstract.
|
||||||
|
|
||||||
LLVM uses `phi instructions
|
LLVM uses `phi instructions
|
||||||
<http://llvm.org/docs/LangRef.html#phi-instruction>`_ in its SSA
|
<https://llvm.org/docs/LangRef.html#phi-instruction>`_ in its SSA
|
||||||
representation. Cretonne passes arguments to EBBs instead. The two
|
representation. Cretonne passes arguments to EBBs instead. The two
|
||||||
representations are equivalent, but the EBB arguments are better suited to
|
representations are equivalent, but the EBB arguments are better suited to
|
||||||
handle EBBs that may contain multiple branches to the same destination block
|
handle EBBs that may contain multiple branches to the same destination block
|
||||||
|
|||||||
@@ -782,7 +782,7 @@ Integer operations
|
|||||||
|
|
||||||
For example, see
|
For example, see
|
||||||
`llvm.sadd.with.overflow.*` and `llvm.ssub.with.overflow.*` in
|
`llvm.sadd.with.overflow.*` and `llvm.ssub.with.overflow.*` in
|
||||||
`LLVM <http://llvm.org/docs/LangRef.html#arithmetic-with-overflow-intrinsics>`_.
|
`LLVM <https://llvm.org/docs/LangRef.html#arithmetic-with-overflow-intrinsics>`_.
|
||||||
|
|
||||||
.. autoinst:: imul
|
.. autoinst:: imul
|
||||||
.. autoinst:: imul_imm
|
.. autoinst:: imul_imm
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ if errorlevel 9009 (
|
|||||||
echo.may add the Sphinx directory to PATH.
|
echo.may add the Sphinx directory to PATH.
|
||||||
echo.
|
echo.
|
||||||
echo.If you don't have Sphinx installed, grab it from
|
echo.If you don't have Sphinx installed, grab it from
|
||||||
echo.http://sphinx-doc.org/
|
echo.https://sphinx-doc.org/
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ use timing;
|
|||||||
// The coalescing algorithm implemented follows this paper fairly closely:
|
// The coalescing algorithm implemented follows this paper fairly closely:
|
||||||
//
|
//
|
||||||
// Budimlic, Z., Cooper, K. D., Harvey, T. J., et al. (2002). Fast copy coalescing and
|
// Budimlic, Z., Cooper, K. D., Harvey, T. J., et al. (2002). Fast copy coalescing and
|
||||||
// live-range identification (Vol. 37, pp. 25–32). ACM. http://doi.org/10.1145/543552.512534
|
// live-range identification (Vol. 37, pp. 25–32). ACM. https://doi.org/10.1145/543552.512534
|
||||||
//
|
//
|
||||||
// We use a more efficient dominator forest representation (a linear stack) described here:
|
// We use a more efficient dominator forest representation (a linear stack) described here:
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ pub enum CtonError {
|
|||||||
/// Cretonne can compile very large and complicated functions, but the [implementation has
|
/// Cretonne can compile very large and complicated functions, but the [implementation has
|
||||||
/// limits][limits] that cause compilation to fail when they are exceeded.
|
/// limits][limits] that cause compilation to fail when they are exceeded.
|
||||||
///
|
///
|
||||||
/// [limits]: http://cretonne.readthedocs.io/en/latest/langref.html#implementation-limits
|
/// [limits]: https://cretonne.readthedocs.io/en/latest/langref.html#implementation-limits
|
||||||
ImplLimitExceeded,
|
ImplLimitExceeded,
|
||||||
|
|
||||||
/// The code size for the function is too large.
|
/// The code size for the function is too large.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//! This crate provides a text pattern matching library with functionality similar to the LLVM
|
//! This crate provides a text pattern matching library with functionality similar to the LLVM
|
||||||
//! project's [FileCheck command](http://llvm.org/docs/CommandGuide/FileCheck.html).
|
//! project's [FileCheck command](https://llvm.org/docs/CommandGuide/FileCheck.html).
|
||||||
//!
|
//!
|
||||||
//! A list of directives is typically extracted from a file containing a test case. The test case
|
//! A list of directives is typically extracted from a file containing a test case. The test case
|
||||||
//! is then run through the program under test, and its output matched against the directives.
|
//! is then run through the program under test, and its output matched against the directives.
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ impl FuncTranslator {
|
|||||||
///
|
///
|
||||||
/// See [the WebAssembly specification][wasm].
|
/// See [the WebAssembly specification][wasm].
|
||||||
///
|
///
|
||||||
/// [wasm]: http://webassembly.github.io/spec/binary/modules.html#code-section
|
/// [wasm]: https://webassembly.github.io/spec/binary/modules.html#code-section
|
||||||
///
|
///
|
||||||
/// The Cretonne IR function `func` should be completely empty except for the `func.signature`
|
/// The Cretonne IR function `func` should be completely empty except for the `func.signature`
|
||||||
/// and `func.name` fields. The signature may contain special-purpose arguments which are not
|
/// and `func.name` fields. The signature may contain special-purpose arguments which are not
|
||||||
|
|||||||
Reference in New Issue
Block a user