We have developed the proposed validator which validates the LLVM compilation of C/C++ programs with concurrency primitives. The parameters of the validator are (i) memory model: C11/LLVM (ii) approach: CIM/MD (iii) mode: end-to-end(E2E)/stepwise(STEP) (iv) LLVM version: V1(3.6)/V2(3.7rc2) We provide the builds of modified LLVM versions (3.6, 3.7rc2) as well as a test case generator to generate new test cases to test the validator. All the artifacts are provided in virtualbox at \url{http://plv.mpi-sws.org/validc/xvalidc.ova}. Go to /home/xvalidc/validc/. This directory (validc) contains the following subdirectories - src/ : validator source code - bin/ : validator class files and Z3 SMT solver - llvm-3.6.0.src/ : Modified to attach metadata. The LLVM version before fixing the reported LLVM bugs (22514, 22708, 22306). - llvm-3.7.0rc2.src/ : Modified to attach metadata. The LLVM version after fixing the reported LLVM bugs. - tc/ : test directory with sub-directories > a/ : Straightline test cases > b/ : Branches test cases > c/ : Dead paths test cases > d/ : Loops test cases > e/ : smaller tests test cases > test/ : litmus test cases make.py : compile validator source code run.py : run the validator build Commands -------------- 1) Validator source code ~/validc $ python make.py 2) LLVM versions are already built in build/ sub-directory. Run Commands ------------- The parameters of the validators (i) memory model: C11/LLVM (ii) approach: CIM/MD (iii) mode: end-to-end(E2E)/stepwise(STEP) (iv) LLVM version: V1(3.6)/V2(3.7rc2) These parameters are passed to the validator by command line arguments along with the directory location within which the test cases are validated and the message option(result/match/verbose) as follows: ~/validc $ python run.py -- For example, ~/validc $ python run.py /home/xvalidc/validc/tc/test/ C11 CIM STEP V1 --result It runs all the test cases in the particular directory. Output ------ /---.result : summarizes the validation results of all test case within a directory. Each row contain the name of the program log file, validation configuration. For end-to-end validation 'PASS' represents that the transformation is safe and 'FAIL' signifies that the validator found the transformation erroneous and in that case it reports the error message. For stepwise validation we report #IR dumps, #identical IR dumps, #IR dumps validate, #passed/failed optimizations and the failed optimization passes. /.log : action matching and other debug messages. Test case generator ------------------- tc/a/, tc/b/, tc/c/, tc/d/, tc/e/ directories contain the respective test case generators tcgen.java Compile command --------------- ~/validc $ javac tcgen.java Run Command ----------- ~/validc/ $ java tcgen