|
Production
1.00 Build A
Fixed Bugs and New Features |
The following items are fixed bugs and features added in this release. As such, they only affect Alpha and Beta testers.
- for ( declaration ; ... ) statement with declaration as loop initializer
- _Bool type support
- long long int (signed & unsigned) type support
- array of pointers to int were showing up in the debug information as a pointer to an array of int; this has been fixed.
- library functions for dual-parameter coherency reads and writes have been added.
- named register handling has been cleaned up. Registers a, b, c, d, and sr can be directly allocated as variables, although this is generally not recommened and should be used carefully. Allocation of these locks out the compiler from using the register and could potentially result in compilation failure in some cases. All other registers act as aliases when applied to variables.
- a number of optimzations have been added, including better code generation for logical operations, use of dispatch when appropriate for switch statements, better register usage for local variables and in function calls. [still a lot more about to be added]
- Certain atomic constructs were not being treated as atomic, now fixed.
- Analyses file was not being generated.
- Stack size calculation is now generating a #define for use on the host side.
- Stack frame pointer is now eliminated if not needed (previously it existed and took up RAM, even when no stack for function calls or local variable overflow (from registers) was occuring.
- Linker detection of duplicate symbols, symbol type mismatch has been significantly improved.
- Significantly improved code size optmization ( ~20% improvement relative to beta)
![]()