MetaCG v0.3.0
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
andinstall
MetaCG