La bibliothèque Firm implémente la représentation intermédiaire Firm (ir). Vous pouvez trouver une ancienne description de Firm dans [TLB:99].
libFirm contient des algorithmes pour la construction du formulaire SSA directement à partir de l'arbre de syntaxe attribué. Un ensemble d’analyses et de phases d’optimisation est fourni. Cette version comprend un backend complet pour l'architecture IA32 et SPARC, ainsi que des backends inachevés pour MIPS, ARM et AMD64.
Prérequis pour le build :
Tapez simplement « make » dans le répertoire source. Les résultats sont placés dans un répertoire appelé "build". Vous pouvez remplacer les indicateurs existants du préprocesseur, du compilateur et de l'éditeur de liens en créant un fichier « config.mak ».
libFirm dispose d'un système de construction cmake supplémentaire. CMake est un système de construction plus complexe que celui basé sur make et la plupart des développeurs libFirm ne l'utilisent pas. Cependant, il peut adapter les indicateurs du compilateur et de l'éditeur de liens pour créer des bibliothèques partagées pour une gamme plus large de systèmes, fournit une cible d'installation et est souvent plus familier aux personnes préparant des packages pour la distribution.
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 officiel : http://libfirm.org/
Contact E-Mail: [email protected]
Liste de diffusion : https://lists.ira.uni-karlsruhe.de/mailman/listinfo/firm
Outil de suivi des bogues : http://pp.ipd.kit.edu/~firm/bugs
Chat relais Internet : #firm
sur irc.libera.chat