a³ release 25.04

Improved Qualification Support Kits

Improved visualization of flow coverage

Trace-based guessing of DLL addresses

Improved search

Improved graphs

New target

aiT for c28x now supports TMS320F28377D.

TimingProfiler

Up until now, TimingProfiler used generic processor models for most of the supported instruction set architectures, but with some exceptions. Starting with this release, generic processor models are used for all architectures without exception.

If your target architecture is affected, the WCET estimates calculated by this TimingProfiler release may differ from those produced by previous releases.

This adjustment results in faster and more consistent analyses across the board. It also enables us to introduce additional customization options to further reduce the memory consumption for all architectures.

This change has no effect on aiT WCET Analyzers, which rely on non-generic models in order to provide strict guarantees rather than estimates.

Qualification Support Kits

Transport layer security

If you are upgrading your a³ client from a release older than 23.10, make sure that your License Manager is upgraded as well. This is necessary due to the TLS-encrypted connection between the client and the Manager that was introduced in release 23.10.

Linux support

Support for RHEL 7 is now deprecated.
In the near future, the Linux version will require at least RHEL 9 (or compatible).

Improved graphs

  • Improved visualization of irreducible-loop exits.
  • Improved handling of trampoline routines.
  • Improved visualization of flow coverage.
  • Basic blocks with multiple End nodes now let you easily navigate from each End node to the corresponding target block.

Improved search

  • In the Sections view, the search now lets you find a hex sequence even if it happens to be broken up by a line end.
  • In the Symbols view, the search is now able to yield all potential paths through union objects.
  • In the Graph view, searching for accessed addresses and data ranges has been improved, and a new button to toggle between search modes has been added.

Improved stats

  • Per-analysis object size statistics now take into account additional entry points, e.g. specified via additional start annotations.
  • Statistics for additional-start analyses that have finished can now be already accessed while analyses for the remaining additional starts are still running.

Other GUI improvements

  • Improved visualization of routine starts in Disassembly view.
  • The context-menu option “Show in call graph” now indicates whether annotation targets are infeasible.
  • Value analysis results for a given instruction now offer two additional buttons for easily navigating to the results for the preceding and succeeding instruction, within basic-block boundaries.
  • Improved character encoding in all the integrated editors.

Annotations

  • evalC expressions now support C-style casts.
  • Improved handling of AIS files in analysis configurations.

Decoding

The pattern-based approach of the control-flow reconstruction has been re-worked and optimized.

DWARF

  • Improved extraction of type information.
  • Improved handling of:
    • bit fields members
    • type declarations
    • template value parameters
  • Improved EDG symbol name demangling.

Value analysis

  • Improved precision of the type domain.
  • Improved evaluation of the mem functor.

CSV export

Commas used as thousands separators are now omitted when exporting analysis results in CSV format.

ARM

Improved automatic resolution of computed calls.

ARM64

  • Improved automatic resolution of virtual member function calls.
  • Improved automatic switch-table decoding.

C28x

  • Support for C++ virtual member function calls.
  • Support for the instructions PREDIVF64, POSTDIVF64, and SUBC3F64.
  • Improved automatic switch table decoding for the TI compiler.

PowerPC

Improved automatic switch table decoding.

TriCore

  • Improved stability of decoder.
  • Improved handling of bit extraction instructions in the value analysis.
  • CSFR CUS_ID is now modeled by the value analysis.

TimeWeaver

  • Introducing an all-new widget that uses the available trace data to guess the base addresses of DLLs.
  • Improved tail call handling.

TraceVisualizer

  • Additional starts can be used to determine task info to extract from the input traces.
  • Improved interrupt handling.