Coder Social home page Coder Social logo

jfirm's Introduction

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 (>=3.5 are supported)
  • Perl
  • an ANSI C99 compiler (gcc, clang, icc are known to work)
  • Git

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 more complex build system than the make based one 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.

Repository Structure

  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

Further Information and Contact

Official website: http://libfirm.org/

Contact E-Mail: [email protected]

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

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

Internet relay chat: #firm on irc.libera.chat

jfirm's People

Contributors

dbdanielb avatar fread avatar kha avatar manuelmohr avatar matzeb avatar uniqp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.