Skip to content

MetaCG v0.3.0

Compare
Choose a tag to compare
@jplehr jplehr released this 14 Feb 16:16
· 204 commits to master since this release

Changes

Features are user-facing, Fixes are both user-facing and developer-facing, Refactorings are developer-facing, CI are infrastructure related notes.

Features

  • Aggregation strategies for Extra-P performance models and analysis parameter config file (PIRA II, LIDe)
  • MetaCollectors for loop depth, conditional branches, (experimental) type of statements count, when type 2 metadata is enabled
  • Add new algorithms for static filtering based on loop depth, FPAndMemOps or conditional branches
  • Add options to select the algorithm for the cutoff selection
  • Adds citation file
  • Significant refactoring of MetaCG components (for details see below)

Fixes

  • Update ToolchainOptions to explicit link required libraries. New linker versions are more strict with linking not explicit declared dependencies
  • Update spdlog
  • Fix warnings reported by clang-tidy, especially unnecessary copies
  • Run tests in Debug configuration, so that asserts are enabled
  • Remove leftover headers
  • Update detection of python include directory
  • Disable wrong asserts
  • Updates MetaCG to correct release version
  • Working on issue w.r.t. recursion and adds test for recursive function
  • Potential temporary fix for non-terminating CGCollector on some target codes

Refactorings

  • Split graph components into their own library / namespace
  • Moved top-level MetaData to own file.
  • Moved MCGReader to graph lib && removed outdated code
  • New high-level interface for callgraph construction
  • Moved MetaData basic definitions to their own respective file in graph namespace
  • Moved graph library into separate componen
  • Prefer set/map over the unordered variants to make results consistent across different systems
  • External dependencies are now put into ${METACG_REPO}/extern by default
  • Applies the source formatter to all source code files (seems that CLion in my branch messed that up)
  • cmake-format style file to be used with cmake-format
  • Removed outdated CMake resources
  • Renamed CMake to better fit overall structure

CI

  • Added container step in Gitlab CI
  • Different stages won't work on different machines. Make sure you use the right tags.
  • Updated Gitlab CI yaml config to account for new project structure
  • Improves container setup to use pre-stored base image from registry
  • CI will fail if CMakeLists and other CMake-related files do not adhere to the formatting style file
  • Enables podman builds for all branches and runs PGIS unit tests in the container
  • Uses more modern CMake commands to build and install MetaCG