[LAD] Stoat 1.0 Release

Mark D. McCurry mark.d.mccurry at gmail.com
Fri Aug 15 04:04:00 UTC 2014


Hello all,

The first release of stoat is available.

Stoat is a S.T.atic (LLVM) O.bject file A.nalysis T.ool which is a rewrite of
sfpv (Static Function Property Verification) due to the very quick bitrot of the
clang API (stoat uses only the llvm optimizer pass API).

This tool is designed to evaulate if any realtime function can end up calling a
non-realtime function eg a jack process callback being able to call malloc or
free.
It does this by:
1) Using either inline or external function whitelists and function
   blacklists to establish which functions are safe and unsafe.
2) Extracting a function callgraph (including virtual function calls)
   from the LLVM IR representation of code (which is effectively one level above
   assembly)
3) Perform simple deductions based upon the callgraph

This approach is designed to work best for C/C++ projects and for realtime
verification, but fairly little stops it from generalizing to other languages
(assuming the other languages compile with llvm) and other function properties.

Existing annotations from sfpv should still work, though the only project that
I've seen using them has been jalv so far.

As this might seem quite abstract, here is an example usage with non-timeline:
http://log.fundamental-code.com/2014/08/15/stoat-tutorial-example

Project Home:
https://github.com/fundamental/stoat

Report bugs to:
https://github.com/fundamental/stoat/issues

Mark
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.linuxaudio.org/pipermail/linux-audio-dev/attachments/20140815/0d725f8e/attachment.pgp>


More information about the Linux-audio-dev mailing list