Skip to content

alias-checker/dyn-aa

Repository files navigation

Building the system
====================

Build repo rcs first. See rcs/README.
./configure --with-rcssrc=<rcs source directory> --with-rcsobj=<rcs object directory> --prefix=`llvm-config --prefix`
make
make install

Running the system
====================

From now on in this manual, we assume the program name is hello, and the alias
analysis we are checking is basicaa.

Generate a bitcode file using clang
clang++ hello.cpp -o hello.bc -c -emit-llvm

Online mode
--------------------
dynaa_insert_alias_checker.py hello basicaa

If --disable-inline is specified, the alias checks will not be inlined, and
will be linked in the codegen phase. If --disable-opt is specified, the script
will not run the standard compiler optimizations (-O3).  Run the output
executable (hello.ac). If it aborts or fails asserts, there is an error in the
alias analysis we are checking.

Offline mode
--------------------
dynaa_hook_mem.py hello
./hello.inst
mv /tmp/pts hello.pts
dynaa_check_aa.py hello.bc hello.pts basicaa

Utilities
--------------------
dynaa_dump_log -log-file hello.pts > hello.log

About

NeonGoby alias analysis checker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published