Git Product home page Git Product logo

dependablesystemslab / trident Goto Github PK

View Code? Open in Web Editor NEW
6.0 13.0 7.0 203.43 MB

Trident is a tool to analytically model the Silent-Data Corruption (SDC) rate of a program, to replace expensive fault injection experiments. Please refer to our papers at DSN 2018 for more details (links in the README)

License: MIT License

CMake 0.96% C 1.15% C++ 50.25% Makefile 15.28% Python 1.31% Shell 0.31% LLVM 19.41% M4 0.09% OCaml 0.27% HTML 2.11% CSS 0.02% Roff 0.02% PHP 7.40% Objective-C 0.01% Assembly 1.28% Ada 0.01% Fortran 0.01% Objective-C++ 0.01% Batchfile 0.01% Perl 0.13%
fault injection analytical resilience sdcs

trident's Issues

Questions I met when running this code

I'm sorry to say that I don't understand the fourth step in the preparation of Trident.What would I do for choosing the LLVM IR instructions?And when I run the ./test,the log file "fi_breakdown.txt" didnot update the probabilities of SDC,Benign,Crash and breakdown.It just equals to the log file "fi_breakdown.txt" generated in ./inst_count.

Questions I met when running this code

I'm sorry to say that I don't understand the fourth step in the preparation of Trident.What would I do for choosing the LLVM IR instructions?And when I run the ./test,the log file "fi_breakdown.txt" didnot update the probabilities of SDC,Benign,Crash and breakdown.It just equals to the log file "fi_breakdown.txt" generated in ./inst_count.

How can I make instruction duplication with this work?

I found this code has the ability to make instruction duplication and duplication check.
But when I tried this, I found there may be some check functions used in the DuplicationCheck pass are not defined.
Is it defined in the file "sync_check.ll"? And where should I find it ?

Besides, how can I generate the "select_set_file" needed by the DuplicationCheck pass?
Thanks.

Errors I met when running this code.

I happen to be doing the same research,and found this awesome job.
This code runs very well, but I still met some errors about some test cases, for example, the 'susan' in Mibench.
Now I just make some null check, and dropped the error data, but I don't know if it will affect the analysis result.
The errors I met is as follows:

  1. In file $Trident-master/llvm-2.9/lib/Transforms/CmpProfileValue/Hello.cpp,line 123 and 124:
    // // Convert float to double FPExtInst* convertInst1 = new FPExtInst(cmpInst->getOperand(0), Type::getDoubleTy(appModule->getContext()), "convt1", instPos); FPExtInst* convertInst2 = new FPExtInst(cmpInst->getOperand(1), Type::getDoubleTy(appModule->getContext()), "convt2", instPos);
    fails the assertion " assert(castIsValid(getOpcode(), S, Ty) && "Illegal FPExt");"at some time.

  2. In file $Trident-master/llvm-2.9/lib/Transforms/StaticInstModeling/Hello.cpp, line 143:
    printf("%ld call %s: %.6f, %.6f, %.6f\n", curInstIndex, dyn_cast<CallInst>(curInst)->getCalledFunction()->getName(), curNode->accumPR, curNode->accumMR, curNode->accumCR);
    will report error some times.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.