Skip to content

Releases: tudasc/TypeART

TypeART 1.8.1

12 Jul 12:51
3b3e9c3
Compare
Choose a tag to compare

Bugfix release.

Fix git tag issue with (optional) phpmap dependency.
Misc: Remove CI-ext AD run with safeptr map, see #64.

Full Changelog: v1.8...v1.8.1

TypeART 1.8

04 May 14:13
6912548
Compare
Choose a tag to compare

This release primarily improves interoperability when other projects consume TypeART.
This includes naming (mostly prefixing) of CMake variables, to better support inclusion via FetchContent or with add_subdirectory, and extending the package config to provide TypeART script (binaries).

The API of typeart_get_subtype was changed to avoid copying the TypeART struct info by copy. It is now passed as a const pointer.

The TypeART pass now supports stack lifetime markers, see lifetime.start.
Only when the lifetime of a stack variable starts, are it's address and type information valid. This is especially the case in the context of stack coloring, where stack space is re-used (with potentially different types but same memory address)

Detailed changes

Runtime

  • Changed API of typeart_get_subtype: Pass struct info by pointer

LLVM pass

  • Remove deprecated (stack/global) allocation filter. Filters are selectable with a fixed set: none (no filtering), std (standard filter), cg (call-graph based filter) uisng the command line typeart-call-filter-impl
  • Refactor command line options to use prefix typeart-
  • Stack allocations: Support LLVM stack lifetime start markers for instrumenting the stack, fixes #113
  • Add support for LLVM 14

Scripts & compiler wrapper

  • Try to detect and support Open MPI, Intel MPI and MPICH wrapping
    • typeart-mpicc and typeart-mpicxx are thus generated for a specific MPI implementation (based on result of FindMPI)
  • Support compile & link single invocation, i.e., typeart-clang source.cpp -o source.exe now works, see #112

CMake

  • Start options and cache variables with TYPEART_ prefix
  • Use correct option name, fixes #114
Packaging
  • Package config provides the wrapper scripts via find_program as cached variables, e.g.:
    • TYPEART_MPICC_CMD or TYPEART_MPICC_CMD_DEBUG for the mpicc wrapper

Misc

  • Update clang-format (configuration) to version 12
  • Provide new btree-backed map as alternative to Abseils
  • Set Abseil to long-term release version
  • Add codespell config file
  • Add lit test targets check-typeart-... for testing
  • Fix lit flag for when thread support is detected, i.e., use Threads_FOUND, see #120

Full Changelog: v1.7...v1.8

TypeART 1.7

03 Jan 20:56
a83c63b
Compare
Choose a tag to compare

Major changes

  • Supports LLVM 10 to 13.
  • Compiler wrapper for TypeART, e.g., env CC=typeart-clang or env MPICXX=typeart-mpic++
    • No need to directly invoke clang and opt w.r.t. TypeART anymore
    • Works with CMake
  • Redone library naming (#81), installing, packacking (CMake)
    • Allows consuming TypeART in other projects as a library

Detailed changes

Runtime

  • Runtime does not exit when default types.yaml is missing. Supports checks fo built-in types (double etc.).

Pass

  • TypeART uses single LLVM pass (instead of analysis + transform)
  • Filter allocas of pointer values by default (can be disabled)
  • Globals have a reworked pre-filtering, closes #101
  • Add CallSite.h from LLVM 10
    • Enabled for builds with LLVM 11 and higher for compatibility

Misc general

  • CMake build system modernized, requires CMake >= 3.20.
  • find_package(LLVM) first uses provided LLVM_DIR and falls back to find_package(LLVM 10) for support of different versions
  • Fix #84, closes #87
  • Updated copyright year in headers
  • Updated README.md

TypeART 1.6

21 Jun 11:06
e563d3d
Compare
Choose a tag to compare

Major changes

  • OpenMP support and thread-safety for the runtime were added.
  • Array cookies for new[], delete[] are explicitly handled.

Detailed changes

Passes

  • Filter aware of OpenMP microtask outlining & API
  • Filter aware of Clang sanitizer API calls (asan, ubsan, msan)
  • Support for C++ array cookies added, see #71

Runtime

  • Runtime is thread-safe, see #10
  • Refactoring: Split up runtime type-checking and allocation tracking

Misc general

  • Bug fixes, see #63 #65 #67
  • Install target for scripts apply.sh and run.sh, see #70
  • Should build with LLVM libcxx, closes #58 and #60
    • Requires full stack to be build with libcxx to be usable (e.g., LLVM (opt) build with libcxx)
  • Fixed demo Makefile and Open MPI 4 deprecation, see #76
  • Extended CI tests, see #2
  • Updated README.md

TypeART 1.5.1

04 Jan 16:22
71d7993
Compare
Choose a tag to compare

Bugfix release.

Runtime softcounter:

  • Count maxHeapAlloc correctly even if free/delete is never called, see #45

Runtime callback interface (hidden API):

  • Fix bug where calling interface directly can cause a crash, see #40
  • Fix mismatch between CallbackInterface.h and LLVM pass instrumentation type for stack deallcoation function, see #41

Scripts:

  • Properly support optimization flags, see #43
  • Fix bug when optimization flag is passed, the script will apply heap instrumentation twice, see #44

TypeART 1.5

29 Dec 14:21
aeb9ca5
Compare
Choose a tag to compare

Passes

  • Support InvokeInst
  • More memory allocation functions supported
  • Selectable filter implementations
    • new dataflow allocations filter
    • new call-graph based filter option

Runtime

  • Extended AccessCounter stats (counting of allocation operations)
  • Use btree map of abseil as default

Misc General

  • More tests (and more code coverage)
  • Coverage options (lcov, gcovr, llvm-cov)
  • Changed project structure (lib/ now contains runtime, passes etc)
  • Updated CI setup (recent Ubuntu runner, test AD lulesh), compute coverage with Coveralls

TyCart 0.1

03 Jun 12:46
Compare
Choose a tag to compare

This release was used in the C3PO workshop paper "Compiler-assisted type-safe checkpointing"

TypeART 1.2

17 Apr 07:44
Compare
Choose a tag to compare

Comes with an updated README and implements minor bug fixes.

Initial TypeART Release

17 Apr 07:38
6090bbf
Compare
Choose a tag to compare

This version was used in the 2018 Correctness workshop paper, see our paper.