Commit Lab 5a

This commit is contained in:
Rémi Di Guardia
2022-10-19 09:50:20 +02:00
parent deb7cc0b54
commit 5e8c7214d9
46 changed files with 2421 additions and 55 deletions
+7
View File
@@ -0,0 +1,7 @@
Lib.Dominators module
=====================
.. automodule:: Lib.Dominators
:members:
:undoc-members:
:show-inheritance:
+7
View File
@@ -0,0 +1,7 @@
Lib.Graphes module
==================
.. automodule:: Lib.Graphes
:members:
:undoc-members:
:show-inheritance:
+7
View File
@@ -0,0 +1,7 @@
Lib.PhiNode module
==================
.. automodule:: Lib.PhiNode
:members:
:undoc-members:
:show-inheritance:
+3
View File
@@ -9,10 +9,13 @@ Submodules
Lib.Allocator
Lib.CFG
Lib.Dominators
Lib.Errors
Lib.FunctionData
Lib.Graphes
Lib.LinearCode
Lib.Operands
Lib.PhiNode
Lib.RiscV
Lib.Statement
Lib.Terminator
+15
View File
@@ -15,10 +15,13 @@ Welcome to MiniC's documentation!
Base library - RISC-V instructions <api/Lib.RiscV>
Base library - Operands <api/Lib.Operands>
Base library - Function data <api/Lib.FunctionData>
Base library - Graphs <api/Lib.Graphes>
Linear intermediate representation <api/Lib.LinearCode>
Temporary allocation <api/Lib.Allocator>
Control Flow Graph - CFG and Basic blocks <api/Lib.CFG>
Control Flow Graph - Terminators <api/Lib.Terminator>
SSA form - Dominance frontier <api/Lib.Dominators>
SSA form - Phi Nodes <api/Lib.PhiNode>
These pages document the various Python sources in the Lib/
folder of MiniC. You should not have to edit them *at all*.
@@ -36,6 +39,9 @@ and pseudo-instructions, we give you the :doc:`api/Lib.RiscV`.
RISC-V instructions take arguments of various kinds,
as defined in the :doc:`api/Lib.Operands`.
At some point, we will need some basic functions about oriented and non oriented graphs,
those are present in :doc:`api/Lib.Graphes`.
Linear Intermediate representation
----------------------------------
@@ -54,6 +60,15 @@ Control Flow Graph Intermediate representation
The classes for the CFG and its basic blocks are in the :doc:`api/Lib.CFG`.
Each block ends with a terminator, as documented in the :doc:`api/Lib.Terminator`.
SSA form
--------
The translation of the CFG into SSA form makes use of dominance frontiers.
Functions to work with dominance are defined in the :doc:`api/Lib.Dominators`.
Phi nodes, a special kind of statement that appears in CFGs in SSA form,
are defined in the :doc:`api/Lib.PhiNode`.
Indices and tables
==================