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