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