Changes:
* Further improvemens to sparc backend (SPEC2000 works with softfloat)
* Tuning of x86 backend
* Software floatingpoint lowerer
* Fixed firm profiling
* New pass management allowing to specify pre-/postconditions for passes
* Remove dependency on liblpp, add support for gurobi ILP solver
* Experimental dwarf debugging support
* Code cleanups, refactoring
* Restructured API documentation
* Bugfixes (we did alot of csmith testing)
* Includes "SSA-Based Register Allocation with PBQP"
* Improved Sparc backend
* New (optimistic) fixpoint based value-range propagation/bit analysis
* Code cleanup and refactoring
* Bugfixes
* Includes "Preference Guided Register Assignment" algorithm
* Experimental Value Range Propagation
* Loop Inversion and experimental Loop Unrolling code
* Simplified construction interface. Most node constructors don't need graph/block arguments anymore.
* Reworked type interface. Type names are optional now. Support for additional linkage types that among others support C++ 'linkonce' semantics now.
* Small changes in constructors and node getters/setters (mostly adding 'const' to some getters)
* code cleanup, smaller improvements in API specification
* bugfixes
* bugfixes
* advanced load/store optimisation which hoists loads out of loops
* Internal restruturing: Alot of node structures are automatically generated from a specification file now.
* Add support for multiple calling conventions
* New experimental support for reading and writing programgraphs to disk
* Support and optimisations for trampolines
* fix PIC support
We've setup a public mirror of our sourcecode repositories.
You can find it at github: http://github.com/MatzeB/libfirm
libfirm 1.16.0 has been released fixing lots of bugs reported in our bugtracker.
We just released a new versions of libFirm and cparser. Detailed list of changes for libFirm:
* Implementation of Clicks Combined Analysis/Optimisations
* New switch lowering code
* support for global asm statements
* improved asm support
* PIC support for Mac OS X
* New register pressure minimizing scheduler
* Improvements to spill algorithm
* fix endless loop problems
* further improve inlining heuristics
* improve peephole optimisations for x86
* bugfixes... read more
We just finished a new release of libfirm. With lots of detail improvements, new optimisations and performance fixes. It is accompanied with new releases of the brainfuck tutorial and the cparser frontend which now handles the complete SPECint 2000.
Detailed list of changes:
* VanDrunen's GVN-PRE fixed
* operator strength reduce fixed and improved
* fixed 64bit code generation for some rare compare cases
* better tailrecursion optimization: handles x * func() and x + func()
* improved inliner: better heuristics for inlining, can now inline recursive calls
* improved spiller
* lowering of CopyB nodes
* better memory disambiguator
* float->64bit conversion fixed for x87
* removed old verbosity level based debugging: all modules use the new debug facility
* Improved Confirm based optimization and conditional evaluation (using Confirm nodes)
* BugFixes: tail recursion, load/store optimization, lowering of structure return, conditional
evaluation, removal of unused methods
* reduced numer of indirections for backend operation
* ia32 Backend: supports more CPU architectures
* ARM Backend: fixed frame access
* support for special segments (like constructors, destructors)
A first release of our new c frontend is available at: http://www.sf.net/projects/cparser
We also released libfirm-1.12.1 with small bugfixes that allow cparser to bootstrap itself.
libfirm 1.12.0 has been released. There were mostly smaller changes in preparation for our soon to be released C frontend.
* dependency on libcore and libobstack dropped
* there's an alternative easier to use way to construct compound initializers
* bugfixes
* improved support for exceptions
* speed improvements
* optimisation of known libc functions
We now have an online demonstrations that shows code generation and displays an svg graph of the optimized main function: http://kreacher.is-a-geek.net/~matze/online_compiler
libfirm 1.11.0 has been released with a huge set of bugfixes and optimisations. This is the first release that is stable and complete enough to handle all C benchmarks of the Spec2000 suite.
We have a frontend for the brainfuck language now. The code is short (~400 lines) and can serve as a good first example on how to construct a working Firm fronted.
First benchmarks are very promising. I don't know of any brainfuck compiler that produces faster x86 code ;-)
- Several serious bugfixes
- improved boolean mode handling
- improved ia32 performance
- switched to automake
- new Conv optimisation
- strictConv support
The Firm library implements the Firm intermediate representation (ir), a graph based SSA intermediate represenation for compilers.
This is the initial sourceforge release.
More information will be available soon on the project homepage.