NEWS.md 6.67 KB
Newer Older
Christoph Mallon's avatar
Christoph Mallon committed
1
libFirm 1.22.0 (2015-12-31)
2
3
---------------------------
* Improved PIC support, linux/elf is now supported
Christoph Mallon's avatar
Christoph Mallon committed
4
* Many additional local optimization rules (instcombine)
5
* Inline assembly support for sparc/amd64
yb9976's avatar
yb9976 committed
6
* Improved constant bit analysis
7
* Improved load/store optimization, featuring compound value optimizations
yb9976's avatar
yb9976 committed
8
* Improved reassociation pass
Christoph Mallon's avatar
Christoph Mallon committed
9
* Improved amd64 (aka x86_64) backend, it is now able to bootstrap libfirm
10
11
12
13
14
* Improved arm backend (but still experimental)
* Improved inliner (can inline compound types)
* Compiletime performance improvements
* Cleanups and API simplifications
* Switch to C99 and corresponding code cleanup and simplification
Christoph Mallon's avatar
Christoph Mallon committed
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
* More details in dumped IR graphs
* Streamlined IR
* Improved IR graph verifiers
* Further unify backend infrastructure
* Support for arrays as parameter and return types
* Updated documentation
* Perform precise 80bit spilling for x87 floating point
* Improved permutation decomposition for copy coalescing
* Added bitwise 'don't care' analysis and use it for optimizing occult constants
* Support builtin 'saturating increment' (amd64, ia32, sparc)
* Improved generated code for division by constant
* Support builtin 'compare and swap' (amd64, ia32, sparc)
* Support alias entities
* Improved scalar conversion optimization
* Added store combine optimization
* Overhauled representation and handling of infinite loops
* Improved use of flag results generated as side effect of instructions (ia32)
* Improved calculation of execution frequency estimation for large graphs
* Improved instruction selection (amd64, arm, ia32, sparc)
* Improved x87 floating point code generation
* Support early clobbers in inline assembly
* Support x87 constraints in inline assembly (ia32)
37
* Support `__attribute__((visibility("hidden")))` and `__attribute__((visible("protected")))`
Christoph Mallon's avatar
Christoph Mallon committed
38
* Optionally use CMake as build system
39
* Support `make install` with the usual variables (INSTALLPREFIX, ...)
40
41
* Bugfixes

Matthias Braun's avatar
Matthias Braun committed
42
43
44
45
libFirm 1.21.0 (2012-11-16)
---------------------------
* Improvements of x86 backend (esp. x87 floatingpoint code)
* Improvements to sparc backend (better use of delay slots)
yb9976's avatar
yb9976 committed
46
* Improved local optimization rules (esp. conversions)
Matthias Braun's avatar
Matthias Braun committed
47
48
49
* Make compiler more deterministic
* Bugfixes

50
51
libFirm 1.20.0 (2011-12-07)
---------------------------
52

53
54
55
56
57
58
59
60
61
62
* 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)
63

64
65
66
67
68
libFirm 1.19.1 (2011-05-17)
---------------------------

* Fix some set_XXX functions not being exported in the shared library

Matthias Braun's avatar
Matthias Braun committed
69
libFirm 1.19.0 (2011-03-15)
70
71
---------------------------

Matthias Braun's avatar
Matthias Braun committed
72
73
74
75
76
77
* Includes "SSA-Based Register Allocation with PBQP"
* Improved Sparc backend
* New (optimistic) fixpoint based value-range propagation/bit analysis
* Code cleanup and refactoring
* Bugfixes

Matthias Braun's avatar
Matthias Braun committed
78
libFirm 1.18.1 (2010-05-05)
79
80
---------------------------

Matthias Braun's avatar
Matthias Braun committed
81
* Fix bug where stackframe was not always setup for -fno-omit-frame-pointer
Matthias Braun's avatar
Matthias Braun committed
82
* bugfixes in Asm handling
Matthias Braun's avatar
Matthias Braun committed
83

84
85
86
libFirm 1.18.0 (2010-04-15)
---------------------------

Matthias Braun's avatar
Matthias Braun committed
87
* Includes "Preference Guided Register Assignment" algorithm
Matthias Braun's avatar
Matthias Braun committed
88
* Experimental Value Range Propagation
89
* Loop Inversion and experimental Loop Unrolling code
Matthias Braun's avatar
Matthias Braun committed
90
91
92
93
94
95
* 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

96
97
98
libFirm 1.17.0 (2009-05-15)
---------------------------

Matthias Braun's avatar
Matthias Braun committed
99
* bugfixes
yb9976's avatar
yb9976 committed
100
* advanced load/store optimization which hoists loads out of loops
Matthias Braun's avatar
Matthias Braun committed
101
102
103
104
* 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
yb9976's avatar
yb9976 committed
105
* Support and optimizations for trampolines
Matthias Braun's avatar
Matthias Braun committed
106
107
* fix PIC support

108
109
110
libFirm 1.16.0 (2009-01-28)
---------------------------

Christoph Mallon's avatar
Christoph Mallon committed
111
* bugfixes
112
* support for builtin nodes
Christoph Mallon's avatar
Christoph Mallon committed
113

114
115
libFirm 1.15.0 (2008-12-01)
---------------------------
Matthias Braun's avatar
Matthias Braun committed
116
117
* bugfixes

118
119
120
libFirm 1.14.0 (2008-11-22)
---------------------------

yb9976's avatar
yb9976 committed
121
* Implementation of Clicks Combined Analysis/Optimizations
Matthias Braun's avatar
Matthias Braun committed
122
123
124
125
126
127
128
129
* 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
yb9976's avatar
yb9976 committed
130
* improve peephole optimizations for x86
Matthias Braun's avatar
Matthias Braun committed
131
132
* bugfixes

133
134
libFirm 1.13.0 (2008-07-31)
---------------------------
Michael Beck's avatar
Michael Beck committed
135

Michael Beck's avatar
updated    
Michael Beck committed
136
* VanDrunen's GVN-PRE fixed
Michael Beck's avatar
Michael Beck committed
137
* operator strength reduce fixed and improved
yb9976's avatar
typos    
yb9976 committed
138
* fixed 64bit code generation for some rare compare cases
Michael Beck's avatar
updated    
Michael Beck committed
139
* better tailrecursion optimization: handles x * func() and x + func()
yb9976's avatar
typos    
yb9976 committed
140
* improved inliner: better heuristics for inlining, can now inline recursive calls
Michael Beck's avatar
updated    
Michael Beck committed
141
* improved spiller
Michael Beck's avatar
updated    
Michael Beck committed
142
143
* lowering of CopyB nodes
* better memory disambiguator
Michael Beck's avatar
updated    
Michael Beck committed
144
* float->64bit conversion fixed for x87
145
* removed old verbosity level based debugging: all modules use the new debug facility
Michael Beck's avatar
updated    
Michael Beck committed
146
* Improved Confirm based optimization and conditional evaluation (using Confirm nodes)
Michael Beck's avatar
updated    
Michael Beck committed
147
* BugFixes: tail recursion, load/store optimization, lowering of structure return, conditional
Michael Beck's avatar
updated    
Michael Beck committed
148
  evaluation, removal of unused methods
Michael Beck's avatar
updated    
Michael Beck committed
149
* reduced numer of indirections for backend operation
Michael Beck's avatar
updated    
Michael Beck committed
150
* ia32 Backend: supports more CPU architectures
Michael Beck's avatar
updated    
Michael Beck committed
151
* ARM Backend: fixed frame access
Matthias Braun's avatar
Matthias Braun committed
152
* support for special segments (like constructors, destructors)
Michael Beck's avatar
Michael Beck committed
153

154
155
libFirm 1.12.1 (2008-02-18)
---------------------------
Matthias Braun's avatar
Matthias Braun committed
156
157
158
159

* bugfixes for new style initializers with bitfield types
* make lowerer look at constant initializers too

160
161
libFirm 1.12.0 (2008-02-14)
---------------------------
Matthias Braun's avatar
Matthias Braun committed
162

Matthias Braun's avatar
Matthias Braun committed
163
* dependency on libcore and libobstack dropped
Matthias Braun's avatar
Matthias Braun committed
164
165
166
167
* there's an alternative easier to use way to construct compound initializers
* bugfixes
* improved support for exceptions
* speed improvements
yb9976's avatar
yb9976 committed
168
* optimization of known libc functions
Matthias Braun's avatar
Matthias Braun committed
169

170
171
libFirm 1.11.0 (2008-11-05)
---------------------------
Matthias Braun's avatar
Matthias Braun committed
172
173
174
175
176
177

* Lots of bugfixes
* Compilation speed improved
* Completely improved and rewritten handling of x86 address mode
* Optimized Mul -> Lea,Shift,Add transformation
* 64bit operations fixed and improved
yb9976's avatar
yb9976 committed
178
179
* More local optimizations
* New backend peephole optimizations
Matthias Braun's avatar
Matthias Braun committed
180
* Explicit status flag modeling (only for x86 for now)
yb9976's avatar
yb9976 committed
181
* Improvements of Load/Store optimization and alias analysis
182
* All C benchmarks from Spec CINT2000 work now (with our edg frontend)