145271bfeSMatthias BraunlibFirm -- A graph based SSA intermediate representation
245271bfeSMatthias Braun========================================================
33d16844cSGötz Lindenmaier
47f94203bSMatthias BraunIntroduction
57f94203bSMatthias Braun------------
63d16844cSGötz Lindenmaier
70064cc7eSAndreas ZwinkauThe Firm library implements the Firm intermediate representation (ir).
80064cc7eSAndreas ZwinkauYou can find an old description of Firm in [TLB:99].
93d16844cSGötz Lindenmaier
10a8fd6aa5SMatthias BraunlibFirm contains algorithms for construction of the SSA form directly from the
1120eb9c9eSSebastian Buchwaldattributed syntax tree. A set of analyses and optimization phases is provided.
129d9de9f6SAndreas ZwinkauThis version includes a complete backend for the IA32 and SPARC architecture,
139d9de9f6SAndreas Zwinkauas well as unfinished backends for MIPS, ARM, and AMD64.
146f39d981SMatthias Braun
157f94203bSMatthias BraunBuilding and Installation
167f94203bSMatthias Braun-------------------------
1749bffc79SGötz Lindenmaier
1845271bfeSMatthias BraunPrerequisites for the build:
1949bffc79SGötz Lindenmaier
20d53c485eSChristoph Mallon* Python (2.7.x or >=3.3 are supported)
21d53c485eSChristoph Mallon* Perl
229513fe2aSMatthias Braun* an ANSI C99 compiler (gcc, clang, icc are known to work)
2398b6ac00SAndreas Zwinkau* Git
246f39d981SMatthias Braun
257f94203bSMatthias Braun### Building with make
266f39d981SMatthias Braun
277f94203bSMatthias BraunJust type 'make' in the source directory. The results are put into a
28d8bc8e0fSMatthias Braundirectory called "build". You can override the existing preprocessor, compiler
29d8bc8e0fSMatthias Braunand linker flags by creating a 'config.mak' file.
30d8bc8e0fSMatthias Braun
317f94203bSMatthias Braun### Building with cmake
32d8bc8e0fSMatthias Braun
3361dc9c62SAndreas SeltenreichlibFirm has an additional cmake build system. CMake is a more complex build
3461dc9c62SAndreas Seltenreichsystem than the make based one and most libFirm developers do not use it.
3561dc9c62SAndreas SeltenreichHowever it can adapt the compiler and linker flags to build shared libraries
3661dc9c62SAndreas Seltenreichfor a wider range of systems, provides an installation target and is often more
377f94203bSMatthias Braunfamiliar for people preparing packages for distribution.
386f39d981SMatthias Braun
397f94203bSMatthias BraunFurther Information and Contact
407f94203bSMatthias Braun-------------------------------
4149bffc79SGötz Lindenmaier
4235e0f66dSMatthias BraunOfficial website: http://libfirm.org/
43a3b3ab86SAndreas Zwinkau
4435e0f66dSMatthias BraunContact E-Mail: firm@ipd.info.uni-karlsruhe.de
45a90029ddSMatthias Braun
4662ad61b5SMatthias BraunMailing list: https://lists.ira.uni-karlsruhe.de/mailman/listinfo/firm
47a90029ddSMatthias Braun
4835e0f66dSMatthias BraunBugtracker: http://pp.ipd.kit.edu/~firm/bugs
49e6e80f59SMatthias Braun
5035e0f66dSMatthias BraunInternet relay chat: irc://chat.freenode.net/#firm