A biblioteca Firm implementa a representação intermediária Firm (ir). Você pode encontrar uma descrição antiga da Firma em [TLB:99].
libFirm contém algoritmos para construção do formulário SSA diretamente da árvore de sintaxe atribuída. É fornecido um conjunto de análises e fases de otimização. Esta versão inclui um backend completo para a arquitetura IA32 e SPARC, bem como backends inacabados para MIPS, ARM e AMD64.
Pré-requisitos para a construção:
Basta digitar 'make' no diretório de origem. Os resultados são colocados em um diretório chamado “build”. Você pode substituir os sinalizadores existentes do pré-processador, compilador e vinculador criando um arquivo 'config.mak'.
libFirm possui um sistema de compilação cmake adicional. CMake é um sistema de construção mais complexo do que o baseado em make e a maioria dos desenvolvedores libFirm não o utiliza. No entanto, ele pode adaptar os sinalizadores do compilador e do linker para construir bibliotecas compartilhadas para uma ampla gama de sistemas, fornece um alvo de instalação e é frequentemente mais familiar para pessoas que preparam pacotes para distribuição.
include/libfirm/ # public API
ir/ # nearly all the code
ir/adt/ # containers and other generic data types
ir/ana/ # analysis (for optimizations)
ir/be/ # backends (x86, sparc, amd64, etc)
ir/common/ # utility stuff
ir/ident/ # identifier data structure
ir/ir/ # core data types of intermediate representation
ir/kaps/ # PBQP solver
ir/libcore/ # utility stuff
ir/lower/ # lowering phases from high-level to low-level mechanisms
ir/lpp/ # interface for external ILP solvers
ir/obstack/ # arena memory allocator
ir/opt/ # optimization phases
ir/stat/ # statistics
ir/tr/ # type representation
ir/tv/ # target values (architecture-independent arithmetic)
scripts/ # generator scripts, firm node specification
unittests/ # unittests
build/ # build system generates stuff here
Site oficial: http://libfirm.org/
E-mail de contato: [email protected]
Lista de discussão: https://lists.ira.uni-karlsruhe.de/mailman/listinfo/firm
Rastreador de bugs: http://pp.ipd.kit.edu/~firm/bugs
Bate-papo de retransmissão na Internet: #firm
em irc.libera.chat