README.md 1.65 KB
Newer Older
1
2
libFirm -- A graph based SSA intermediate representation
========================================================
Götz Lindenmaier's avatar
Götz Lindenmaier committed
3

4
5
Introduction
------------
Götz Lindenmaier's avatar
Götz Lindenmaier committed
6

Andreas Zwinkau's avatar
Andreas Zwinkau committed
7
8
The Firm library implements the Firm intermediate representation (ir).
You can find an old description of Firm in [TLB:99].
Götz Lindenmaier's avatar
Götz Lindenmaier committed
9

Matthias Braun's avatar
Matthias Braun committed
10
libFirm contains algorithms for construction of the SSA form directly from the
yb9976's avatar
yb9976 committed
11
attributed syntax tree. A set of analyses and optimization phases is provided.
Andreas Zwinkau's avatar
Andreas Zwinkau committed
12
13
This version includes a complete backend for the IA32 and SPARC architecture,
as well as unfinished backends for MIPS, ARM, and AMD64.
Matthias Braun's avatar
Matthias Braun committed
14

15
16
Building and Installation
-------------------------
17

18
Prerequisites for the build:
19

Christoph Mallon's avatar
Christoph Mallon committed
20
21
* Python (2.7.x or >=3.3 are supported)
* Perl
Matthias Braun's avatar
Matthias Braun committed
22
* an ANSI C99 compiler (gcc, clang, icc are known to work)
Andreas Zwinkau's avatar
Andreas Zwinkau committed
23
* Git
Matthias Braun's avatar
Matthias Braun committed
24

25
### Building with make
Matthias Braun's avatar
Matthias Braun committed
26

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

31
### Building with cmake
32

Andreas Seltenreich's avatar
Andreas Seltenreich committed
33
34
35
36
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
37
familiar for people preparing packages for distribution.
Matthias Braun's avatar
Matthias Braun committed
38

39
40
Further Information and Contact
-------------------------------
41

42
Official website: http://libfirm.org/
43

44
Contact E-Mail: firm@ipd.info.uni-karlsruhe.de
Matthias Braun's avatar
Matthias Braun committed
45

46
Mailing list: https://lists.ira.uni-karlsruhe.de/mailman/listinfo/firm
Matthias Braun's avatar
Matthias Braun committed
47

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

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