Skip to content

dianpeng/libfirm

 
 

Repository files navigation

libFirm -- A graph based SSA intermediate representation

Introduction

The Firm library implements the Firm intermediate representation (ir). You can find an old description of Firm in [TLB:99].

libFirm contains algorithms for construction of the SSA form directly from the attributed syntax tree. A set of analyses and optimization phases is provided. This version includes a complete backend for the IA32 and SPARC architecture, as well as unfinished backends for MIPS, ARM, and AMD64.

Building and Installation

Prerequisites for the build:

  • Python (2.7.x or >=3.3 are supported)
  • Perl
  • an ANSI C99 compiler (gcc, clang, icc are known to work)

Building with make

Just type 'make' in the source directory. The results are put into a directory called "build". You can override the existing preprocessor, compiler and linker flags by creating a 'config.mak' file.

Building with cmake

libFirm has an additional cmake build system. CMake is a complexer build system than the make based build and most libFirm developers do not use it. However it can adapt the compiler and linker flags to build shared libraries for a wider range of systems, provides an installation target and is often more familiar for people preparing packages for distribution.

Further Information and Contact

Official website: http://libfirm.org/

Contact E-Mail: firm@ipd.info.uni-karlsruhe.de

Mailing list: https://lists.ira.uni-karlsruhe.de/mailman/listinfo/firm

Bugtracker: http://pp.ipd.kit.edu/~firm/bugs

Internet relay chat: irc://chat.freenode.net/#firm

About

graph based intermediate representation and backend for optimising compilers

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 82.0%
  • Python 14.0%
  • Other 1.8%
  • C++ 1.1%
  • Perl 0.7%
  • CMake 0.2%
  • Other 0.2%