assem | Pseudo assembly support |
Comment | |
Fragment | Abstract a fragment in assembly language |
DataFrag | Encapsulate a data fragment in assembly language |
ProcFrag | Encapsulate an instruction fragment in assembly language |
Fragments | Abstract a fragment in assembly language |
Instr | Root for abstract assembly instructions |
Instrs | |
Label | |
Layout | Abstract a fragments's layout |
Move | |
Oper | |
GenVisitor | |
ast | Ast management |
tasks | Task for ast |
AnyDecs | Abstract a "list of D-declarations" node |
ArrayTy | ArrayTy |
Ast | Ast |
CastExp | Cast the type of an expression to a given type |
CastVar | Cast the type of an l-value to a given type |
ClassTy | ClassTy |
Dec | Dec |
DecsList | DecsList |
Decs | Declare Decs |
GenDefaultVisitor | Just visit the whole Ast tree (except object-related nodes) |
Exp | Exp |
FieldInit | FieldInit |
Field | Field |
ForExp | ForExp |
FunctionDec | FunctionDec |
IntExp | IntExp |
MethodDec | Method declaration |
NameTy | NameTy |
NilExp | NilExp |
GenNonObjectVisitor | |
GenObjectVisitor | |
OpExp | OpExp |
PrettyPrinter | Visit an Ast and print the content of each node |
SimpleVar | SimpleVar |
SubscriptVar | SubscriptVar |
Ty | Ty |
TypeDec | TypeDec |
VarDec | VarDec |
GenVisitor | Root class of all Ast visitors |
WhileExp | WhileExp |
astclone | Cloning an ast::Ast |
tasks | Tasks of the astclone module |
Cloner | Duplicate an Ast |
bind | |
Binder | Binding identifier uses to their definitions |
Renamer | Perform identifier renaming within an AST (in place) |
boost | |
callgraph | Computing static link related information |
tasks | The Tasks of the escapes module |
CallGraphVisitor | Computes the CallGraph |
FundecGraph | |
canon | Simplification of tree::Tree code |
tasks | |
BasicBlock | A location independent piece of tree::Tree code |
is_nop | Return false if tree has to be run. Try to say true as much as possible |
commute_p | Return false if a and b cannot be swapped, try to say true as much as possible |
Canon | Object function to canonicalize tree::Tree code |
jump_name_p | Is tree a JUMP(NAME())? This is a predicate |
label_to_p | Is tree a LABEL pointing to label? |
Traces | Object function to linearize canonicalized tree::Tree code |
desugar | Desugaring an ast::Ast |
tasks | Tasks of the desugar module |
BoundCheckingVisitor | Add dynamic array bound checks while duplicating an AST |
DesugarVisitor | Desugar some syntactic structures while duplicating an Ast |
escapes | Computing escape and static link related information |
tasks | The Tasks of the escapes module |
EscapesVisitor | Compute the escapes |
frame | Tools to describe activation blocks: Frame, Access |
Access | Variables have to be stored. There are two kinds of places: saved in a register, or in the frame. Access abstracts both |
In_Register | Local variable stored in register |
In_Frame | Local variable stored in the stack frame |
Frame | Stack frame (or activation record) of a function |
inlining | Inlining functions of an ast::Ast |
tasks | Tasks of the inlining module |
Inliner | Perform inline expansion of functions |
Pruner | Prune useless function declarations within an AST |
liveness | Generation of the FlowGraph, Liveness graph, and InterferenceGraph |
tasks | |
FlowGraph | Flow graph |
InterferenceGraph | Provide liveness analysis |
Liveness | FlowGraph labeled with live Temp |
misc | Handling of generic, oriented or undirected, graph |
Deref | |
endo_map | A renaming mapping defaulting to identity: Mapping a class with itself (endomorphism). Unless a value is already mapped onto another, map it to itself if nonstrict. This is a special case of std::map |
error | Handle errors in the whole project |
escaped | |
file_library | Manage search path |
generic_variant | |
graph | |
empty | |
directed_graph | |
undirected_graph | |
list | |
map | Wrapper around std::map providing syntactic sugar for any mapping of types manipulation |
pair | |
path | Helper for handling paths |
ref | |
scoped_map | |
constify_traits | Return T constified |
id_traits | Return T as is |
select_iterator | The iterator over a non const structure is plain iterator |
select_iterator< const T > | The iterator over a const structure is a const_iterator |
separator | |
set | The class misc::set is wrapper around std::set |
symbol | Define symbol class |
timer | Timing nested tasks |
time | |
time_var | |
unique | Define unique class |
variant | |
iomanipulator | Defines the operator() for the classes get_type, set_type and swap_type |
xalloc | Allocate slots in std::ostreams |
get_type | Handle the data to get from the xalloced place |
set_type | Handle the data to put in the xalloced place |
swap_type | Swap the data stored in the stream for a given one |
object | |
tasks | The Tasks of the object module |
Binder | Computing bindings with support for objects |
DesugarVisitor | Desugar some object structures while duplicating an Ast |
Renamer | Perform identifier renaming within an AST (in place), with support for objects |
TypeChecker | |
overload | Perform type checking, allowing function overloading |
tasks | |
Binder | Computing bindings with support for overloaded functions |
OverTable | |
TypeChecker | |
parse | Parsing the input, delivering an ast::Ast |
tasks | Tasks of the parse module |
MetavarMap | A generic map of metavariables |
TigerParser | Conduct the scanner and the parser |
Tweast | TWEAST stands for ``Text With Embedded Abstract Syntax Trees'' |
regalloc | Perform the register allocation |
tasks | Tasks for register allocation. |
Color | Just color the graph itself |
UselessMove | Predicate (object function) checking whether an instruction is a useless MOVE according to the TEMPMAP, and deleting it |
RegisterAllocator | "Allocate-registers" functor |
target | Multiple target support |
ia32 | |
Cpu | Describes IA-32's registers |
GasAssembly | Implements a GAS compatible assembly language |
GasLayout | Abstract GAS' fragments's layout |
Target | An IA-32 Target is the union of an IA-32 Cpu and an IA-32 Codegen |
mips | |
Cpu | Describes MIPS's registers |
SpimAssembly | Implements a SPIM compatible assembly language |
SpimLayout | Abstract SPIM's fragments's layout |
Target | A MIPS Target is the union of a MIPS Cpu and a MIPS Codegen |
tasks | |
Assembly | An assembly language comes with its syntax, its runtime library, and its layout of fragments |
Codegen | Abstract a Code Generator |
CpuLimits | A set of restriction over a Cpu |
Cpu | A Cpu mainly describes target machine's registers |
Target | A Target is the union of a Cpu and a Codegen |
task | Handling of Task |
tasks | |
BooleanTask | A simple Task that sets a Boolean variable to true |
DisjunctiveTask | |
FunctionTask | A simple Task that invokes a callback function |
IntTask | A simple Task that sets an Int variable |
MultipleStringTask | A simple task that invokes callback function with string argument |
StringTask | A simple Task that sets a String variable |
char_ptr_less | 'char*' lower-than functor |
TaskRegister | Register Tasks |
Task | A function bound to a command line option |
temp | Managing Temp and Label |
tasks | |
Identifier | Root for Named or anonymous (fresh) identifiers |
IdentifierCompareVisitor | |
label_traits< misc::symbol > | |
label_traits< unsigned > | |
temp_traits< misc::symbol > | |
temp_traits< unsigned > | |
translate | Translation from ast::Ast to tree::Node |
tasks | |
Access | Wrapper around frame::Access |
Exp | Root for all the following classes |
Cx | Natural representation for conditionals |
Ex | Natural representation for expressions |
Nx | Natural representation for statements |
Ix | Specialization of Exp for branchings |
Level | Stack frames for languages with non local variables |
Translator | Translate an ast::Ast into High level tree::Tree code |
tree | (Low/High) intermediate code |
Binop | |
Call | |
Cjump | Conditional branching |
Const | |
Eseq | |
Exp | Node that has a value, contrary to Stm |
Fragment | Piece of intermediate representation resource |
DataFrag | Fragment for a string data |
ProcFrag | Fragment for some code `data' |
Fragments | Fragments: Fragment list |
Iterator | |
Jump | |
Label | |
Mem | Memory indirection |
Move | Copy the content of the second operand to the first operand |
Name | |
Seq | |
Stm | Node that has no value, contrary to Exp |
Sxp | An expression which value is discarded |
Temp | An Exp for a temporary (pseudo register) |
Tree | |
GenVisitor | |
type | Type-checking an ast::Ast |
tasks | |
Array | Array types |
Attribute | The base object for Class attributes |
Nil | The builtin type of `nil' only (singleton class) |
Class | Class types |
Field | The base type for Record fields |
Function | Function types |
Method | Method types |
Named | Named types |
Record | Record types |
TypeChecker | |
Type | Abstract a type |
adjacency_list | |
FlexLexer | |
shared_ptr | |
variant | |
yyFlexLexer | |