From 39df8fb19bacb38f317abf06de432b83296dfdd1 Mon Sep 17 00:00:00 2001 From: xleroy Date: Wed, 23 Apr 2014 09:46:13 +0000 Subject: Update with post-2.2 changes git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2460 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- Changelog | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/Changelog b/Changelog index f5bfbbf..7c0c982 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,39 @@ +Language features: +- Support for C99 designated initializers. (ISO C99 section 6.7.8.) + +Improvements in confidence: +- More theorems proved about float<->integer conversions. + +Optimizations: +- Optimize "x != 0", "x == 0", "x != 1", and "x == 1" when x is known + to be a boolean already, ranging over {0, 1, undef}. +- More systematic constant propagation in pass Selection, lightens + the work of later RTL optimisations. +- IA32: recognize and use the "not" instruction. + +Usability: +- Option "-timings" to print compilation times for various passes. +- Various tweaks in IRC graph coloring to reduce compilation time. + +Improvements in ABI conformance: +- IA32: revised handling of "common" variables to conform with ABI. + +Bug fixing: +- In -fbitfields emulation: "a->f" was not properly rewritten if "a" + had "array of structs" type instead of "pointer to struct". +- Moved analysis of single-precision floats from RTLtyping to Machtyping. + (RTLtyping was incorrectly rejecting some functions involving + single-precision floats.) Simplified LTL semantics and Allocation + pass accordingly. +- Assignment to a l-value of "volatile float" type could cause + an internal error in RTLtyping/Machtyping. +- The case __builtin_fabs applied to integers was missing in the + C semantics and in C#minor generation. +- Fixed some type annotations on CompCert C expressions. These + annotations were incorrect but not in a way that impacted code + generation. + + Release 2.2, 2014-02-24 ======================= -- cgit v1.2.3