diff --git a/SplitCFG_8cpp_source.html b/SplitCFG_8cpp_source.html
index fe6a118a..d5752196 100644
--- a/SplitCFG_8cpp_source.html
+++ b/SplitCFG_8cpp_source.html
@@ -1290,7 +1290,7 @@
1164 const clang::CXXMethodDecl* method)
-
1165 : context_{context},
+
1165 : context_{context},
1166 next_state_count_{0},
1168 outter_top_(nullptr),
@@ -1313,214 +1313,107 @@
1181 std::queue<SplitCFGBlock*> Q{};
1182 std::set<SplitCFGBlock*> discovered{};
-
-
-
1186 llvm::dbgs() <<
"Outter ternop is BB" << outter_top->
getBlockID() <<
" and confluence block is BB" << target->
getBlockID() <<
"\n";
-
-
-
-
1190 discovered.insert(v);
+
+
+
+
+
+
+
-
+
1192 discovered.insert(v);
-
1194 while (!Q.empty()) {
-
-
-
1197 llvm::dbgs() <<
"visited " << v->getBlockID() <<
"\n";
-
-
1199 for (
auto succ : v->getCFGBlock()->succs()) {
-
1200 if (succ && (v->getBlockID() != target->
getBlockID())) {
-
1201 auto blk{
sccfg_[succ->getBlockID()]};
-
1202 if (discovered.find(blk) == discovered.end()) {
-
1203 discovered.insert(blk);
-
-
-
-
-
-
-
1210 llvm::dbgs() <<
"Discovered\n";
-
1211 for (
auto disc : discovered ) {
-
1212 llvm::dbgs() << disc->getBlockID() <<
" ";
-
-
-
-
+
+
+
1196 while (!Q.empty()) {
+
+
+
1199 llvm::dbgs() <<
"visited " << v->getBlockID() <<
"\n";
+
+
1201 for (
auto succ : v->getCFGBlock()->succs()) {
+
1202 if (succ && (v->getBlockID() != target->
getBlockID())) {
+
1203 auto blk{
sccfg_[succ->getBlockID()]};
+
1204 if (discovered.find(blk) == discovered.end()) {
+
1205 discovered.insert(blk);
+
+
+
+
+
+
+
1212 llvm::dbgs() <<
"Discovered\n";
+
1213 for (
auto disc : discovered ) {
+
1214 llvm::dbgs() << disc->getBlockID() <<
" ";
+
+
+
+
-
-
-
1219 llvm::dbgs() <<
"########### Identify confluence blocks ############ \n";
-
-
-
-
1223 std::vector<SplitCFGBlock*> ternops;
-
-
1225 std::vector<SplitCFGBlock*> S{};
-
1226 std::set<SplitCFGBlock*> discovered{};
-
-
-
-
+
+
+
+
1221 llvm::dbgs() <<
"########### Identify confluence blocks ############ \n";
+
+
+
+
1225 std::vector<SplitCFGBlock*> ternops;
+
+
1227 std::vector<SplitCFGBlock*> S{};
+
1228 std::set<SplitCFGBlock*> discovered{};
+
+
-
-
1233 while (!S.empty()) {
-
-
-
1236 if (discovered.find(v) == discovered.end()) {
-
1237 discovered.insert(v);
-
1238 llvm::dbgs() <<
"visited " << v->
getBlockID() <<
"\n";
-
-
-
-
1242 if (stmt && clang::dyn_cast<clang::ConditionalOperator>(stmt)) {
-
1243 llvm::dbgs() <<
"Found a TERNARY OP block\n";
-
-
1245 if (!outter) outter = v;
+
+
+
+
1235 while (!S.empty()) {
+
+
+
1238 if (discovered.find(v) == discovered.end()) {
+
1239 discovered.insert(v);
+
1240 llvm::dbgs() <<
"visited " << v->
getBlockID() <<
"\n";
+
+
+
+
1244 if (stmt && clang::dyn_cast<clang::ConditionalOperator>(stmt)) {
+
1245 llvm::dbgs() <<
"Found a TERNARY OP block\n";
-
1247 cop_.insert(std::make_pair(v,
nullptr));
-
1248 ternops.push_back(v);
-
-
1250 }
else if (ternops.size() > 0) {
-
1251 auto top_cop{ternops.back()};
-
-
-
-
1255 llvm::dbgs() <<
"Found confluence block of " << conf_blk->getBlockID()
-
1256 <<
" from block " << v->
getBlockID() <<
" of "
-
1257 << top_cop->getBlockID() <<
"\n";
-
1258 cop_[top_cop] =
sccfg_[conf_blk->getBlockID()];
-
-
-
-
-
-
-
-
1266 if (next_v) S.push_back(
sccfg_[next_v->getBlockID()]);
-
-
-
-
-
1271 llvm::dbgs() <<
"Block ids for COP ";
-
1272 for (
auto& co :
cop_) {
-
1273 llvm::dbgs() << co.first->getBlockID() <<
" :=> " << co.second->getBlockID()
-
-
-
1276 llvm::dbgs() <<
"\n";
-
-
1278 outter_top = outter;
-
+
1247 if (!outter) outter = v;
+
+
1249 cop_.insert(std::make_pair(v,
nullptr));
+
1250 ternops.push_back(v);
+
+
1252 }
else if (ternops.size() > 0) {
+
1253 auto top_cop{ternops.back()};
+
+
+
+
1257 llvm::dbgs() <<
"Found confluence block of " << conf_blk->getBlockID()
+
1258 <<
" from block " << v->
getBlockID() <<
" of "
+
1259 << top_cop->getBlockID() <<
"\n";
+
1260 cop_[top_cop] =
sccfg_[conf_blk->getBlockID()];
+
+
+
+
+
+
+
+
1268 if (next_v) S.push_back(
sccfg_[next_v->getBlockID()]);
+
+
+
+
+
1273 llvm::dbgs() <<
"Block ids for COP ";
+
1274 for (
auto& co :
cop_) {
+
1275 llvm::dbgs() << co.first->getBlockID() <<
" :=> " << co.second->getBlockID()
+
+
+
1278 llvm::dbgs() <<
"\n";
+
+
+
-
-
-
-
-
-
-
1286 llvm::dbgs() <<
"########### BFS Identify confluence blocks ############ \n";
-
1287 std::queue<SplitCFGBlock*> Q{};
-
1288 std::set<SplitCFGBlock*> discovered{};
-
-
-
-
-
-
-
-
-
-
1298 discovered.insert(v);
-
-
-
-
1302 while (!Q.empty()) {
-
-
-
1305 llvm::dbgs() <<
"visited " << v->getBlockID() <<
"\n";
-
-
1307 for (
auto succ : v->getCFGBlock()->succs()) {
-
1308 if (succ && (v->getBlockID() != target->
getBlockID())) {
-
1309 auto blk{
sccfg_[succ->getBlockID()]};
-
1310 if (discovered.find(blk) == discovered.end()) {
-
1311 discovered.insert(blk);
-
-
-
-
-
-
-
1318 llvm::dbgs() <<
"Discovered\n";
-
1319 for (
auto disc : discovered ) {
-
1320 llvm::dbgs() << disc->getBlockID() <<
" ";
-
-
-
-
-
-
-
1327 llvm::dbgs() <<
"########### Identify confluence blocks ############ \n";
-
-
-
-
1331 std::vector<SplitCFGBlock*> ternops;
-
-
1333 std::vector<SplitCFGBlock*> S{};
-
1334 std::set<SplitCFGBlock*> discovered{};
-
-
-
-
-
-
-
1341 while (!S.empty()) {
-
-
-
1344 if (discovered.find(v) == discovered.end()) {
-
1345 discovered.insert(v);
-
1346 llvm::dbgs() <<
"visited " << v->
getBlockID() <<
"\n";
-
-
-
-
1350 if (stmt && clang::dyn_cast<clang::ConditionalOperator>(stmt)) {
-
1351 llvm::dbgs() <<
"Found a TERNARY OP block\n";
-
-
1353 if (!outter) outter = v;
-
-
1355 cop_.insert(std::make_pair(v,
nullptr));
-
1356 ternops.push_back(v);
-
-
1358 }
else if (ternops.size() > 0) {
-
1359 auto top_cop{ternops.back()};
-
-
-
-
1363 llvm::dbgs() <<
"Found confluence block of " << conf_blk->getBlockID()
-
1364 <<
" from block " << v->
getBlockID() <<
" of "
-
1365 << top_cop->getBlockID() <<
"\n";
-
1366 cop_[top_cop] =
sccfg_[conf_blk->getBlockID()];
-
-
-
-
-
-
-
-
1374 if (next_v) S.push_back(
sccfg_[next_v->getBlockID()]);
-
-
-
-
-
1379 llvm::dbgs() <<
"Block ids for COP ";
-
1380 for (
auto& co :
cop_) {
-
1381 llvm::dbgs() << co.first->getBlockID() <<
" :=> " << co.second->getBlockID()
-
-
-
1384 llvm::dbgs() <<
"\n";
-
-
-
-
SuccessorIterator::const_iterator const_succ_iterator
@@ -1566,7 +1459,7 @@
void dumpPathInfo() const
void generate_paths()
Generates the paths between wait statements.
clang::ASTContext & context_
The context necessary to access translation unit.
-
void identifyConfluenceBlocks()
Identify confluence blocks in the CFG.
+
void identifyConfluenceBlocks()
Identify confluence blocks in the CFG.
bool getUnvisitedSuccessor(const SplitCFGBlock *curr_block, SplitCFGBlock::const_succ_iterator &I, llvm::SmallPtrSetImpl< const SplitCFGBlock * > &visited, const SplitCFGBlock *&block)
std::set< SplitCFGBlock * > identifySkipBlocks()
bool isTruePath(const SplitCFGBlock *parent_block, const SplitCFGBlock *block) const
diff --git a/SplitCFG_8h_source.html b/SplitCFG_8h_source.html
index 0c699455..5cf7db34 100644
--- a/SplitCFG_8h_source.html
+++ b/SplitCFG_8h_source.html
@@ -404,7 +404,7 @@
void dumpPathInfo() const
void generate_paths()
Generates the paths between wait statements.
clang::ASTContext & context_
The context necessary to access translation unit.
-
void identifyConfluenceBlocks()
Identify confluence blocks in the CFG.
+
void identifyConfluenceBlocks()
Identify confluence blocks in the CFG.
bool getUnvisitedSuccessor(const SplitCFGBlock *curr_block, SplitCFGBlock::const_succ_iterator &I, llvm::SmallPtrSetImpl< const SplitCFGBlock * > &visited, const SplitCFGBlock *&block)
std::set< SplitCFGBlock * > identifySkipBlocks()
std::pair< const SplitCFGBlock *, SupplementaryInfo > SplitCFGPathPair
diff --git a/classsystemc__clang_1_1SplitCFG.html b/classsystemc__clang_1_1SplitCFG.html
index fa0d27d2..92f59948 100644
--- a/classsystemc__clang_1_1SplitCFG.html
+++ b/classsystemc__clang_1_1SplitCFG.html
@@ -1241,7 +1241,7 @@
diff --git a/doxygen_crawl.html b/doxygen_crawl.html
index d38d04b3..03b11ba5 100644
--- a/doxygen_crawl.html
+++ b/doxygen_crawl.html
@@ -20,11 +20,11 @@