Releases: tudasc/TypeART
TypeART 1.8.1
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
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 linetypeart-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
andtypeart-mpicxx
are thus generated for a specific MPI implementation (based on result ofFindMPI
)
- 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
orTYPEART_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
Major changes
- Supports LLVM 10 to 13.
- Compiler wrapper for TypeART, e.g.,
env CC=typeart-clang
orenv MPICXX=typeart-mpic++
- No need to directly invoke
clang
andopt
w.r.t. TypeART anymore - Works with CMake
- No need to directly invoke
- 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
TypeART 1.6
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
andrun.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
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:
TypeART 1.5
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
This release was used in the C3PO workshop paper "Compiler-assisted type-safe checkpointing"
TypeART 1.2
Comes with an updated README and implements minor bug fixes.
Initial TypeART Release
This version was used in the 2018 Correctness workshop paper, see our paper.