a³ Release 22.04 New analysis type Introducing the new analysis type TraceVisualizer that extracts measured tast executions from given trace data and displays them in a GANTT chart. Improved documentation - New application notes for aiT, StackAnalyzer and TimeWeaver that provide additional information on how to apply each tool to real-world industrial programs. The notes are accessible from the Welcome page, as well as via the Help menu. - Updated design of user manuals and other documents shipped with the software. - Updated sections about EN 50128 and EN 60657 in the Safety Manual. Improved Unicode support Improved support for Unicode file names in all tools. On Unices, it is assumed that the locale is set to a UTF-8 variant for the wanted language. QSKs - New QSKs: - aiT for e300 with gcc-3.3.2 - aiT for MPC5674F - All QSKs now come with the QSLCD report included. GUI - Significantly improved performance for projects with a large number of analyses. - Improved handling of workspace files. Visualization and results - Improved filtering in contextual statistics views. - Symbols view: Improved searching for addresses that point inside class member functions. ResultCombinator - New functor "entries(@groupid)" that returns the number of analyses in the group. - For a failed analysis, the result is now assumed to be "?". TimeWeaver - Trace interrupt statistics now show the total interrupt blocking time per trace snippet. - Improved look-and-feel of trace segment and interrupt statistics views. - Trace segment and interrupt statistics views no longer filter by non-zero standard deviation. - Trace statistics now additionally include the summary trace time. - The symbol table view can now show the occurrences of traced entries. Annotations - Introducing a new program point construct for TriCore, "trapEntry(<TCN>)", to determine the address of a trap handler associated with the given trap class number (TCN). - Improved handling of annotations that change the instruction type. - Improved handling of global restrict and global default memory access annotations for architectures with a 64-bit address space. - Changed the AIS2 grammar such that an instruction annotation scope nested in another instruction annotation scope now has to be enclosed by braces. For example, the following is no longer accepted: instruction "main" instruction -> 8 bytes { ... } and instead needs to be written as: instruction "main" { instruction -> 8 bytes { ... } } - The "area ... count accesses" annotation is now also available for TimeWeaver analyses. In addition to global statistics, per-block statistics are output to the XML report file and visualized in the results graph. - New annotation to specify that the stack pointer has been aligned to a power-of-two, multiple-of-element-size boundary: instruction <pp> { stack <stack_name> alignment: <n> bytes; } - Improved "routine/loop takes xxx cycles" annotations. The tool now honors program exits in routines/loops cut out with such annotations even though all other effects are still ignored. - Fixed imprecision in value partitioning annotation when applied to multiple program points, which sometimes resulted in unwanted additional partitions with unknown values. Decoding - Improved resolving of C++ virtual member function calls. - Improved resolving of virtual member function calls in the presence of multiple inheritance. - Improved handling of computed calls whose call targets have been partially resolved and where all call targets are annotated to never return. DWARF - Improved reading address information from DWARF debug info. - Improved handling of instruction-level DWARF debug info. - Improved extraction of type information about local variables inside inlined functions. - Improved handling of enumeragor tags used in template specifiers. - Improved handling of template argument lists in function names. More plain-text release notes coming soon. ------------------------------------------------------------------------------ Last updated on 28 April 2022 by alex@absint.com. Copyright 2022 AbsInt. ------------------------------------------------------------------------------ An HTML version of these release notes is available at absint.com/releasenotes/a3/22.04