Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ae convert CFBBG to ICFG #1384

Merged
merged 9 commits into from
Feb 22, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix some comments
  • Loading branch information
bjjwwang committed Feb 22, 2024
commit c0e870550e6856af3309f8e0385baf09e96f38ba
24 changes: 12 additions & 12 deletions svf/include/AE/Svfexe/AbstractExecution.h
Original file line number Diff line number Diff line change
Expand Up @@ -146,37 +146,37 @@ class AbstractExecution
void markRecursiveFuns();

/**
* Check if execution state exist by merging states of predecessor blocks
* Check if execution state exist by merging states of predecessor nodes
*
* @param block The basic block to analyse
* @return if this block has preceding execution state
* @param node The ICFGNode to analyse
* @return if this node has preceding execution state
*/
bool hasInEdgesES(const ICFGNode *block);
bool hasInEdgesES(const ICFGNode *node);

/**
* Check if execution state exist at the branch edge
*
* @param intraEdge the edge from CmpStmt to the next Block
* @param intraEdge the edge from CmpStmt to the next node
* @return if this edge is feasible
*/
bool hasBranchES(const IntraCFGEdge* intraEdge, IntervalExeState& es);

/**
* handle instructions in svf basic blocks
* handle instructions in ICFGNode
*
* @param block basic block that has a series of instructions
*/
void handleWTONode(const ICFGNode* node);

/**
* handle one instruction in svf basic blocks
* handle one instruction in ICFGNode
*
* @param node ICFGNode which has a single instruction
*/
virtual void handleICFGNode(const ICFGNode *node);

/**
* handle call node in svf basic blocks
* handle call node in ICFGNode
*
* @param node ICFGNode which has a single CallICFGNode
*/
Expand Down Expand Up @@ -222,7 +222,7 @@ class AbstractExecution
*
* @param cmpStmt CmpStmt is a conditional branch statement
* @param succ the value of cmpStmt (True or False)
* @return if this block has preceding execution state
* @return if this ICFGNode has preceding execution state
*/
bool hasCmpBranchES(const CmpStmt* cmpStmt, s64_t succ, IntervalExeState& es);

Expand All @@ -231,7 +231,7 @@ class AbstractExecution
*
* @param var var in switch inst
* @param succ the case value of switch inst
* @return if this block has preceding execution state
* @return if this ICFGNode has preceding execution state
*/
bool hasSwitchBranchES(const SVFVar* var, s64_t succ, IntervalExeState& es);

Expand Down Expand Up @@ -266,8 +266,8 @@ class AbstractExecution
virtual void indirectCallFunPass(const CallICFGNode* callNode);

// helper functions in hasInEdgesES
bool isFunEntry(const ICFGNode* block);
bool isGlobalEntry(const ICFGNode* block);
bool isFunEntry(const ICFGNode* node);
bool isGlobalEntry(const ICFGNode* node);

// helper functions in handleCycle
bool widenFixpointPass(const ICFGNode* cycle_head, IntervalExeState& pre_es);
Expand Down
Loading