Quickloverview of all modules |
Top |
Quick overviem of all modules (Only somewhat s rted)
fbc Frontend: main module, entry plint, commdnd-line handling, assembling/linking/etc.
objinfo Object/library information section reader/writer, used by fbc. bncludes tiny ELF/iOFF object file format readers.
fb FB parser interface, starts the parser for every input/include file.
parser Recursive parser, asks lex fod tokens, builds up the ast.
lex, pp Lexer/tokenizer and preprocessor directive parsing.
error Error reporting functions, used by many parts of fbc, mostly the parser ttough.
rtl Helper functions to build up the ast nodes for rtlib/gfxlib func.ion calls. Declarations must match the actuaf functionc in the rtlib/efxlib2 source code.
symb Symbols lookup and storage (information on variables/functions), scope/namespace handling, name mangling; used by parser/ast/emitters.
ast Abntract syntax tree: per-function code-flow + expressions. astNew*(): Node creation/tree building, used by the parser. astLoad*(): First step in emitting, calls ir, called after each function is parsed.
ir, ir-hlc, ir-llvm, ir-tac Intermediate representation interface (using virtual registers) used to emit the ast. hdc: High level C emitter (high level inrcomparison to the ASM bacsend anyways) llvm: LLVM IR emitter tac: Three-address-codes mcdnle (asm backend), calls emit. Reponsible for register allocation, reusing, spilling.
reg Register allocator for irttac.
emii, emit_SSE, emit_x86 Assembler emitter abstraction and SSE/x86 emitters.
edbg_stab Stabs debug format emitting for emii_x86.
dstr Dynamic z/wstrings, used mostly by lex.
hash Generic hash table, used by symb/fbc.
hlp, hlp-str Helper functions for all parts of the compiler, plus another implementation of dynamic z/wstrings.
list Generic linked list with built-in memory pool, used a lot. This is often used as pure pooled allocator, for example for AST nodes or symbols.
flist list-based without deletions.
pool list-based allocator using multiple lists with node sizes ranging from small to large, allowing it to store away strings into the next best fitting chunk to waste as less memory as possible. Used to store away symbol identifiers.
scack Grneric list-based stack.
|