souffle -c -o 1-object-sensitive 1-object-sensitive.dl -p 1-object-sensitive.log
(1-object-sensitive.dl is the concatenated version.) (*.log is for souffle-profile)
./1-object-sensitive -j[NumOfThreads] -F[OriginalFactDir] -D[OriginalDBDir]
g++ [name].cpp -std=c++11 -o [name]
[name] = [findeqv, applyreplace]
- ./findeqv [analysis_result_file] [replace_file]
extract equivalent classes from original facts // TODO: explain how to see equivalent classes generate replace.csv, each line represents a replacement rule formatted as "[Element]\t[NewElement]", here [NewElement] is the md5 code of the "class feature" // TODO: Is class feature a good name?
- ./applyreplace [original_facts_dir] [new_facts_dir] [replace_file]
apply the replacement rules to facts generate "new" facts
./1-object-sensitive -j[NumOfThreads] -F[NewFactDir] -D[NewDBDir]
- [Incorrectness] The result (Stats_Simple_InsensCallGraphEdge.csv) is not sound. The old version deduces more facts than the new one.