README file for the Microtec PowerPC C/C++ compiler patch 3.5.11 for dSPACE RPC&HIL Releases 6.4 to 6.6 October 15, 2012 Copyright (c) 2012 dSPACE GmbH, Germany =========================================================================================== ------------------------------------------------------------------------------------------- This file contains information concerning 1. Introduction / Products revised by this Installation 2. How to install 3. Software changes 4. Restrictions ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- 1. Introduction / Products revised by this Installation ------------------------------------------------------------------------------------------- This version has been created to work with: Microtec PowerPC C/C++ compiler 3.5 for Release 6.4 Microtec PowerPC C/C++ compiler 3.5 for Release 6.5 Microtec PowerPC C/C++ compiler 3.5 for Release 6.6 ------------------------------------------------------------------------------------------- 2. How to install ------------------------------------------------------------------------------------------- The Microtec PowerPC C/C++ compiler patch 3.5.11 updates the compiler release 3.5 as provided on your dSPACE RCP&HIL installation media. It is also compatible with dSPACE setups in which the previously issued compiler patches DS_MCCPPC_3.5.8p1_160267.exe and/or DS_MCCPPC_3_5_10p2_187410.exe have been installed. To install the Microtec PowerPC C/C++ compiler patch 3.5.11, please execute the file DS_MCCPPC_3_5_11p3_209881.exe. The following binaries will be installed in your Microtec PowerPC C/C++ compiler directory: %PPC_ROOT%\bin\asmppc.exe %PPC_ROOT%\bin\cbeppc.exe %PPC_ROOT%\bin\cxxfe.exe %PPC_ROOT%\bin\mccppc.exe The previous versions will be overwritten. NOTE: You need to close any dSPACE software and MATLAB before invoking the installation. ------------------------------------------------------------------------------------------- 3. Software changes ------------------------------------------------------------------------------------------- The Microtec PowerPC C/C++ compiler patch 3.5.11 fixes the following issues of the Microtec PowerPC C/C++ compiler versions 3.5, 3.5.8 and 3.5.10: * When compiling a C source file with "global-flow optimizations" (-Og), which are enabled when using the optimization sets "optimize for time" (-Ot) or "optimize for size" (-Os), local variables on the stack might not be correctly initialized. This issue only affects the previously issued compiler patch 3.5.10. * "Greater (or equal) than"-, "less (or equal) than"-, and "is equal to"-comparisons of two floating point numbers return the wrong result if one or both of the float numbers compared is not-a-number (NaN). According to IEEE specifications, such comparisons must always return FALSE, even for NaN == NaN. With compiler version 3.5, the result is TRUE instead. * The compiler's C++ frontend terminates when processing a C++ source file containing the declarations of a base class and a class derived from the base class if: - the base class destructor is not declared 'virtual' and - informational messages are not suppressed (parameter -Qi is not set) Upon termination, the C++ frontend shows the error message: '(F); ".cpp", line pos ; diag_message: missing type substitution' The following errors could be encountered in particular when compiling very large computational applications or applications making extensive use of communications blocksets such as RTIxxxMM or FlexRay, resulting in individual functions consisting of several 10.000 lines of code in the generated C source files: * When using the "optimize for time" setting (-Ot), an error in the compiler's loop optimization may lead to an erratic behaviour of individual model variables at run-time, which can be observed in ControlDesk. This error occurs only when a loop, whose complexity forces the compiler to spill variables processed within the loop from registers to the stack, is optimized using -Ot. The 'optimize for size' setting (-Os) is not affected by this problem. * Incorrect behaviour of the compiler when computing displacements for conditional branch instructions in large applications could lead to the assembler terminating, showing the error message "(E) #A0681-D Branch target expression is larger than 16 bits". * Due to an internal error, the compiler might terminate, showing the standard Windows error message "cbeppc.exe has encountered a problem and needs to close" or the error message "Assertion failed in (... Global Detection phase) ... : Illegal Exposed Use after Optimizer: TN297 in BB:1". * The compiler might abort when using high optimization settings containing the "extensive optimization" flag -Ox, i.e. the default RTI optimization setting -Otrix. Possible error messages corresponding with this issue are: - "IPA hash overflow", - "Out of space in ADD_DEPLST", - "ipabe.2224", - "ipabe.2225", - "ipabe.515" * Very large functions in the generated C source files as described above can cause the compiler to take several hours to finish or never to finish when using high optimization settings, while the same source file can be compiled within a short amount of time at a lower optimization level. Both stability and compilation time have been significantly improved for very large applications with the patch 3.5.11 in comparison to the base release 3.5. ------------------------------------------------------------------------------------------- 4. Restrictions ------------------------------------------------------------------------------------------- This patch is compatible with dSPACE Releases 6.4 to 6.6. This patch does not support older or future versions of the dSPACE software. ======================================================================= End of File