Running RV-Predict/C
RV-Predict/C works in two steps. First, $ rvpc file.c creates an instrumented version of a multithreaded C program (rvpc is just a wrapper for our customized version of clang compiler). Second, $ ./a.out runs the program and performs offline data-race analysis.
rvpc file.c
./a.out
For C++ programs, just use rvpc++ file.cpp as shown below:
rvpc++ file.cpp
./a.out
To use RV-Predict/C with a piece of software that is configured using GNU Autoconf, use the following command:
CC=rvpc CXX=rvpc++ LD=rvpld ./configure
To use RV-Predict/C on a project that uses a makefile but does not use GNU autoconf, provide a CC variable on the command line:
make <target> CC=rvpc CXX=rvpc++ LD=rvpld
Note: if your code uses g++ or clang++, then replace rvpc with rvpc++.