Release Notes¶
v1.4 - August 2020¶
Features¶
Support for cloning function return values
New unit tests
Better copying of debug info
Experimental stack protection
- 7 new command line argumentsSee Command Line Parameters for more information.
Directives¶
7 new directives
__ISR_FUNC__xMR_RET_VAL__xMR_PROT_LIB__xMR_ALL_AFTER_CALL__xMR_AFTER_CALL__NO_xMR_ARG__COAST_NO_INLINE
See In-code Directives for more information.
Bug Fixes¶
- Correct support for variadic functions
- Fix up debug info for global variables so it works better with GDB
- Better removal of unused functions
- Official way of marking ISR functions instead of function name text matching
v1.3 - November 2019¶
Changed the source of the LLVM project files from SVN (deprecated) to the Git mono-repo, version 7.1.0.
v1.2 - October 2019¶
Features¶
- Support for
invokeinstructions. - Replication rules, does NOT sync on stores by default, added flag to enable turning that on (
-storeDataSync). - Support for compiling multiple files in the same project at different times (using the
-noMainflag). - Before running the pass, validates that the replication rules given to COAST are consistent with themselves.
- Can sync on vector types.
- Added more unit tests, along with a test driver.
Directives¶
- Added directive
__SKIP_FN_CALLthat has the same behavior as-skipFnCalls=command line parameter. - Can add option to not check globals crossing Sphere of Replication (
__COAST_IGNORE_GLOBAL(name)). - Added directive macro for marking variables as volatile.
- Treats any globals or functions marked with
__attribute__((used))as volatile and will not remove them. Also true for globals used in functions marked as “used”. - Added wrapper macros for calling a function with the clones of the arguments. Useful for
printf()andmalloc(), etc, when you only want specific calls to be replicated.
Bug Fixes¶
Thanks to Christos Gentsos for pointing out some errors in the code base.
- Allow more usage of function pointers by printing warning message instead of crashing.
- Added various missing
nullptrchecks. - Fixed crashing on some
voidreturn type functions. - Better cleanup of stale pointers.
Debugging Tools¶
- Added an option to the
DebugStatementspass that only adds print statements to specified functions. - Created a simplistic profiling pass called
SmallProfilethat can collect function call counts. - Support for preserving debug info when source is compiled with debug flags.