Skip to content

tanghaoth90/revised-rules

Repository files navigation

Compile the analysis rules

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)

Run original analysis

./1-object-sensitive -j[NumOfThreads] -F[OriginalFactDir] -D[OriginalDBDir]

Relabel facts into combined version

g++ [name].cpp -std=c++11 -o [name]

[name] = [findeqv, applyreplace]

  1. ./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?

  1. ./applyreplace [original_facts_dir] [new_facts_dir] [replace_file]

apply the replacement rules to facts generate "new" facts

Run analysis on new facts

./1-object-sensitive -j[NumOfThreads] -F[NewFactDir] -D[NewDBDir]

Experimental Discovery

  • [Incorrectness] The result (Stats_Simple_InsensCallGraphEdge.csv) is not sound. The old version deduces more facts than the new one.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors