33using namespace SVFUtil;
76 bool vfgfile = (
filename.rfind(
"VFGGrammar.txt") ==
filename.length() - std::string(
"VFGGrammar.txt").length());
80 <<
"Please use a file that ends with 'VFG.txt', "
81 <<
"or use the -customized flag to allow custom grammar files.\n";
82 assert(
false &&
"grammar loading failed!");
static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)
Create an singleton instance directly instead of invoking llvm pass manager.
virtual void normalizeCFLGrammar()
Normalize grammar.
virtual void buildCFLGrammar()
Build Grammar from text file.
GrammarBase * grammarBase
void dump(const std::string &filename)
virtual void checkParameter()
Parameter Checking.
virtual void finalize()
Print grammar and graph.
virtual void initialize()
Initialize the grammar, graph, solver.
void buildCFLGraph()
Build CFLGraph via VFG.
void dump(std::string name)
Dump SVFIR.
static const Option< bool > Customized
static const Option< std::string > CFLGraph
static const Option< bool > PrintCFL
static const Option< std::string > GrammarFilename
virtual void initialize()
Initialization of a pointer analysis, including building symbol table and SVFIR etc.
SVFG * buildFullSVFG(BVDataPTAImpl *pta)
VFCFLGraphBuilder: a CFLGraphBuilder specialized for handling value-flow.
std::ostream & errs()
Overwrite llvm::errs()
llvm::IRBuilder IRBuilder