From a37005a1d4924f6301dac1f6a83c00772f7f30e6 Mon Sep 17 00:00:00 2001 From: Jakob Olesen Date: Tue, 9 Feb 2016 08:11:20 -0800 Subject: [PATCH] Enable inheritance diagrams. --- cranelift/docs/conf.py | 9 +++++++++ cranelift/docs/metaref.rst | 17 ++++++++++++----- meta/cretonne/types.py | 21 ++++++++++----------- 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/cranelift/docs/conf.py b/cranelift/docs/conf.py index 0b7f7667d8..c4ab93eff0 100644 --- a/cranelift/docs/conf.py +++ b/cranelift/docs/conf.py @@ -38,6 +38,8 @@ extensions = [ 'sphinx.ext.todo', 'sphinx.ext.mathjax', 'sphinx.ext.ifconfig', + 'sphinx.ext.graphviz', + 'sphinx.ext.inheritance_diagram', 'cton_domain', 'cton_lexer', ] @@ -293,3 +295,10 @@ texinfo_documents = [ # If true, do not generate a @detailmenu in the "Top" node's menu. #texinfo_no_detailmenu = False + + +# -- Options for Graphviz ------------------------------------------------- + +graphviz_output_format = 'svg' + +inheritance_graph_attrs = dict(rankdir='TD') diff --git a/cranelift/docs/metaref.rst b/cranelift/docs/metaref.rst index 42a471cc93..8cdece065c 100644 --- a/cranelift/docs/metaref.rst +++ b/cranelift/docs/metaref.rst @@ -13,21 +13,28 @@ directory that has a global variable called ``instructions``. The basic Cretonne instruction set described in :doc:`langref` is defined by the Python module :mod:`cretonne.instrs`. +.. module:: cretonne + Types ===== Concrete value types are represented as instances of :class:`cretonne.Type`. There are subclasses to represent scalar and vector types. -.. autoclass:: cretonne.Type -.. autoclass:: cretonne.ScalarType +.. inheritance-diagram:: Type ScalarType VectorType IntType FloatType + :parts: 1 +.. autoclass:: Type +.. autoclass:: ScalarType :members: -.. autoclass:: cretonne.VectorType +.. autoclass:: VectorType :members: -.. autoclass:: cretonne.IntType +.. autoclass:: IntType :members: -.. autoclass:: cretonne.FloatType +.. autoclass:: FloatType :members: + +Predefined types +---------------- .. automodule:: cretonne.types :members: diff --git a/meta/cretonne/types.py b/meta/cretonne/types.py index 27a74aec67..3d369a60e4 100644 --- a/meta/cretonne/types.py +++ b/meta/cretonne/types.py @@ -1,17 +1,21 @@ -"""Predefined types.""" +""" +The cretonne.types module predefines all the Cretonne scalar types. +""" from . import ScalarType, IntType, FloatType +#: Boolean. bool = ScalarType('bool', 0, """ A boolean value that is either true or false. """) -i8 = IntType(8) -i16 = IntType(16) -i32 = IntType(32) -i64 = IntType(64) +i8 = IntType(8) #: 8-bit int. +i16 = IntType(16) #: 16-bit int. +i32 = IntType(32) #: 32-bit int. +i64 = IntType(64) #: 64-bit int. +#: IEEE single precision. f32 = FloatType(32, """ A 32-bit floating point type represented in the IEEE 754-2008 *binary32* @@ -19,15 +23,10 @@ f32 = FloatType(32, C implementations. """) +#: IEEE double precision. f64 = FloatType(64, """ A 64-bit floating point type represented in the IEEE 754-2008 *binary64* interchange format. This corresponds to the :c:type:`double` type in most C implementations. """) - -i8x16 = i8.by(16) - -f32x4 = f32.by(4) -f64x2 = f64.by(2) -