MiniC
Contents:
Base library - Errors
Base library - Statement
Base library - RISC-V instructions
Base library - Operands
Base library - Function data
Base library - Graphs
Linear intermediate representation
Temporary allocation
Control Flow Graph - CFG and Basic blocks
Control Flow Graph - Terminators
SSA form - Dominance frontier
SSA form - Phi Nodes
MiniC
Index
Index
A
|
B
|
C
|
D
|
E
|
F
|
G
|
I
|
J
|
L
|
M
|
N
|
O
|
P
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Z
A
A (in module Lib.Operands)
A0 (in module Lib.Operands)
A1 (in module Lib.Operands)
AbsoluteJump (class in Lib.Statement)
add() (in module Lib.RiscV)
add_block() (Lib.CFG.CFG method)
add_comment() (Lib.LinearCode.LinearCode method)
add_edge() (Lib.CFG.CFG method)
(Lib.Graphes.DiGraph method)
(Lib.Graphes.Graph method)
add_instruction() (Lib.CFG.Block method)
(Lib.LinearCode.LinearCode method)
add_instruction_PRINTLN_INT() (Lib.LinearCode.LinearCode method)
add_label() (Lib.LinearCode.LinearCode method)
add_phi() (Lib.CFG.Block method)
add_tmp() (Lib.Operands.TemporaryPool method)
add_vertex() (Lib.Graphes.GeneralGraph method)
AllocationError
Allocator (class in Lib.Allocator)
args() (Lib.Statement.AbsoluteJump method)
(Lib.Statement.ConditionalJump method)
(Lib.Statement.Instru3A method)
(Lib.Statement.Instruction method)
(Lib.Terminator.BranchingTerminator method)
(Lib.Terminator.Return method)
B
bfs_traversal() (Lib.Graphes.GeneralGraph method)
Block (class in Lib.CFG)
BranchingTerminator (class in Lib.Terminator)
C
call() (in module Lib.RiscV)
CFG (class in Lib.CFG)
color() (Lib.Graphes.Graph method)
color_with_k_colors() (Lib.Graphes.Graph method)
Comment (class in Lib.Statement)
comment (Lib.Statement.Comment attribute)
computeDF() (in module Lib.Dominators)
computeDom() (in module Lib.Dominators)
computeDT() (in module Lib.Dominators)
cond (Lib.Statement.ConditionalJump attribute)
(Lib.Terminator.BranchingTerminator attribute)
Condition (class in Lib.Operands)
conditional_jump() (in module Lib.RiscV)
ConditionalJump (class in Lib.Statement)
connected_components() (Lib.Graphes.GeneralGraph method)
copy() (Lib.Operands.Renamer method)
D
DataLocation (class in Lib.Operands)
defined() (Lib.Operands.Renamer method)
(Lib.PhiNode.PhiNode method)
(Lib.Statement.Instruction method)
(Lib.Statement.Statement method)
delete_edge() (Lib.Graphes.DiGraph method)
(Lib.Graphes.Graph method)
delete_vertex() (Lib.Graphes.DiGraph method)
(Lib.Graphes.Graph method)
dfs_traversal() (Lib.Graphes.GeneralGraph method)
DiGraph (class in Lib.Graphes)
div() (in module Lib.RiscV)
E
edges() (Lib.Graphes.DiGraph method)
(Lib.Graphes.GeneralGraph method)
(Lib.Graphes.Graph method)
F
fdata (Lib.CFG.CFG attribute)
(Lib.LinearCode.LinearCode attribute)
FP (in module Lib.Operands)
fresh() (Lib.Operands.Renamer method)
fresh_label() (Lib.FunctionData.FunctionData method)
fresh_offset() (Lib.FunctionData.FunctionData method)
fresh_tmp() (Lib.FunctionData.FunctionData method)
(Lib.Operands.TemporaryPool method)
Function (class in Lib.Operands)
FunctionData (class in Lib.FunctionData)
G
gather_defs() (Lib.CFG.CFG method)
GeneralGraph (class in Lib.Graphes)
get_all_statements() (Lib.CFG.Block method)
get_all_temps() (Lib.Operands.TemporaryPool method)
get_alloced_loc() (Lib.Operands.Temporary method)
(Lib.Operands.TemporaryPool method)
get_block() (Lib.CFG.CFG method)
get_blocks() (Lib.CFG.CFG method)
get_body() (Lib.CFG.Block method)
get_body_and_terminator() (Lib.CFG.Block method)
get_end() (Lib.CFG.CFG method)
get_entries() (Lib.CFG.CFG method)
get_in() (Lib.CFG.Block method)
get_instructions() (Lib.LinearCode.LinearCode method)
get_label() (Lib.CFG.Block method)
get_label_div_by_zero() (Lib.FunctionData.FunctionData method)
get_name() (Lib.FunctionData.FunctionData method)
get_offset() (Lib.FunctionData.FunctionData method)
(Lib.Operands.Offset method)
get_phis() (Lib.CFG.Block method)
get_srcs() (Lib.PhiNode.PhiNode method)
get_start() (Lib.CFG.CFG method)
get_terminator() (Lib.CFG.Block method)
GP (in module Lib.Operands)
GP_REGS (in module Lib.Operands)
Graph (class in Lib.Graphes)
graph_dict (Lib.Graphes.GeneralGraph attribute)
GraphError
I
Immediate (class in Lib.Operands)
ins (Lib.Statement.AbsoluteJump attribute)
(Lib.Statement.Instruction attribute)
Instru3A (class in Lib.Statement)
Instruction (class in Lib.Statement)
is_reachable_from() (Lib.Graphes.GeneralGraph method)
is_read_only() (Lib.Statement.Instruction method)
(Lib.Terminator.Return method)
iter_statements() (Lib.CFG.Block method)
(Lib.CFG.CFG method)
(Lib.LinearCode.LinearCode method)
J
jump() (in module Lib.RiscV)
jump2terminator() (in module Lib.Terminator)
L
Label (class in Lib.Statement)
label (Lib.Statement.AbsoluteJump attribute)
(Lib.Statement.ConditionalJump attribute)
label_else (Lib.Terminator.BranchingTerminator attribute)
label_then (Lib.Terminator.BranchingTerminator attribute)
land() (in module Lib.RiscV)
ld() (in module Lib.RiscV)
li() (in module Lib.RiscV)
Lib
module
Lib.Allocator
module
Lib.CFG
module
Lib.Dominators
module
Lib.Errors
module
Lib.FunctionData
module
Lib.Graphes
module
Lib.LinearCode
module
Lib.Operands
module
Lib.PhiNode
module
Lib.RiscV
module
Lib.Statement
module
Lib.Terminator
module
LinearCode (class in Lib.LinearCode)
linearize_naive() (Lib.CFG.CFG method)
lor() (in module Lib.RiscV)
M
message (Lib.Graphes.GraphError attribute)
MiniCInternalError
MiniCRuntimeError
MiniCTypeError
MiniCUnsupportedError
module
Lib
Lib.Allocator
Lib.CFG
Lib.Dominators
Lib.Errors
Lib.FunctionData
Lib.Graphes
Lib.LinearCode
Lib.Operands
Lib.PhiNode
Lib.RiscV
Lib.Statement
Lib.Terminator
mul() (in module Lib.RiscV)
mv() (in module Lib.RiscV)
N
NaiveAllocator (class in Lib.Allocator)
name (Lib.Statement.Label attribute)
negate() (Lib.Operands.Condition method)
neighbourhoods() (Lib.Graphes.DiGraph method)
O
Offset (class in Lib.Operands)
op1 (Lib.Statement.ConditionalJump attribute)
(Lib.Terminator.BranchingTerminator attribute)
op2 (Lib.Statement.ConditionalJump attribute)
(Lib.Terminator.BranchingTerminator attribute)
Operand (class in Lib.Operands)
out_blocks() (Lib.CFG.CFG method)
P
PhiNode (class in Lib.PhiNode)
pred() (Lib.Graphes.DiGraph method)
prepare() (Lib.Allocator.Allocator method)
(Lib.Allocator.NaiveAllocator method)
print_code() (Lib.CFG.CFG method)
(Lib.LinearCode.LinearCode method)
print_dot() (Lib.CFG.CFG method)
(Lib.Graphes.DiGraph method)
(Lib.Graphes.Graph method)
(Lib.LinearCode.LinearCode method)
printDT() (in module Lib.Dominators)
printIns() (Lib.PhiNode.PhiNode method)
(Lib.Statement.Comment method)
(Lib.Statement.Instruction method)
(Lib.Statement.Label method)
(Lib.Statement.Statement method)
(Lib.Terminator.Return method)
R
RA (in module Lib.Operands)
Register (class in Lib.Operands)
regset_to_string() (in module Lib.Statement)
rem() (in module Lib.RiscV)
remove_all_phis() (Lib.CFG.Block method)
remove_edge() (Lib.CFG.CFG method)
rename() (Lib.PhiNode.PhiNode method)
(Lib.Statement.AbsoluteJump method)
(Lib.Statement.ConditionalJump method)
(Lib.Statement.Instru3A method)
(Lib.Statement.Instruction method)
(Lib.Terminator.BranchingTerminator method)
(Lib.Terminator.Return method)
rename_from() (Lib.PhiNode.PhiNode method)
Renamer (class in Lib.Operands)
replace() (Lib.Allocator.Allocator method)
(Lib.Allocator.NaiveAllocator method)
(Lib.Operands.Renamer method)
Return (class in Lib.Terminator)
rewriteCode() (Lib.Allocator.Allocator method)
S
S (in module Lib.Operands)
sd() (in module Lib.RiscV)
set_phis() (Lib.CFG.Block method)
set_start() (Lib.CFG.CFG method)
set_temp_allocation() (Lib.Operands.TemporaryPool method)
set_terminator() (Lib.CFG.Block method)
SP (in module Lib.Operands)
srcs (Lib.PhiNode.PhiNode attribute)
Statement (class in Lib.Statement)
sub() (in module Lib.RiscV)
substitute() (Lib.Statement.AbsoluteJump method)
(Lib.Statement.ConditionalJump method)
(Lib.Statement.Instru3A method)
(Lib.Statement.Statement method)
(Lib.Terminator.BranchingTerminator method)
(Lib.Terminator.Return method)
T
T (in module Lib.Operands)
targets() (Lib.Statement.AbsoluteJump method)
(Lib.Terminator.BranchingTerminator method)
(Lib.Terminator.Return method)
Temporary (class in Lib.Operands)
TemporaryPool (class in Lib.Operands)
Terminator (in module Lib.Terminator)
to_dot() (Lib.CFG.Block method)
TP (in module Lib.Operands)
U
used() (Lib.PhiNode.PhiNode method)
(Lib.Statement.Instruction method)
(Lib.Statement.Statement method)
V
var (Lib.PhiNode.PhiNode attribute)
vertices() (Lib.Graphes.GeneralGraph method)
W
with_args() (Lib.Statement.AbsoluteJump method)
(Lib.Statement.ConditionalJump method)
(Lib.Statement.Instru3A method)
(Lib.Statement.Statement method)
(Lib.Terminator.BranchingTerminator method)
(Lib.Terminator.Return method)
X
xor() (in module Lib.RiscV)
Z
ZERO (in module Lib.Operands)