53 bool pagfile = (
filename.rfind(
"PAGGrammar.txt") ==
filename.length() - std::string(
"PAGGrammar.txt").length());
54 bool pegfile = (
filename.rfind(
"PEGGrammar.txt") ==
filename.length() - std::string(
"PEGGrammar.txt").length());
55 bool vfgfile = (
filename.rfind(
"VFGGrammar.txt") ==
filename.length() - std::string(
"VFGGrammar.txt").length());
59 <<
"Please use a file that ends with either 'CFGrammar.txt' or 'PEGGrammar.txt', "
60 <<
"or use the -customized flag to allow custom grammar files.\n";
61 assert(
false &&
"grammar loading failed!");
AliasCFLGraphBuilder: a CFLGraphBuilder specialized for handling aliasing.
void finalize() override
Finalization of pointer analysis, and normalize points-to information to Bit Vector representation.
static double timeOfBuildCFLGrammar
Statistics.
virtual void buildCFLGraph()
Build CFLGraph based on Option.
CFLGraph * getCFLGraph()
Get CFL graph.
static double numOfStartEdges
virtual void analyze()
Perform analyze (main part of CFLR Analysis)
virtual void solve()
Solving CFL Reachability.
virtual void normalizeCFLGrammar()
Normalize grammar.
static double numOfChecks
static double numOfNonterminalEdges
virtual void checkParameter()
Parameter Checking.
virtual void buildCFLGrammar()
Build Grammar from text file.
virtual void finalize()
Finalize extra stat info passing.
virtual void countSumEdges()
Count the num of Nonterminal Edges.
static double timeOfSolving
static double timeOfBuildCFLGraph
static double numOfIteration
static double numOfTerminalEdges
static double numOfTemporaryNonterminalEdges
static double timeOfNormalizeGrammar
GrammarBase * grammarBase
const CFLEdgeSet & getCFLEdges() const
virtual void solve()
Start solving.
static double numOfChecks
static const Option< bool > Customized
static const Option< bool > PEGTransfer
static const Option< std::string > CFLGraph
static const Option< std::string > GrammarFilename
virtual void initialize()
Initialization of a pointer analysis, including building symbol table and SVFIR etc.
PTAStat * stat
Statistics.
static double getClk(bool mark=false)
std::ostream & errs()
Overwrite llvm::errs()
llvm::IRBuilder IRBuilder