diff --git a/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/backward_data_flow.h b/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/backward_data_flow.h index 58009c9..7f81751 100644 --- a/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/backward_data_flow.h +++ b/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/backward_data_flow.h @@ -9,10 +9,10 @@ #include "../CFGraph.h" #include "../IR.h" -template -class BackwardDataFlowAnalysis : public DataFlowAnalysis { +template +class BackwardDataFlowAnalysis : public DataFlowAnalysis { std::vector reorderSequence(const std::vector& blocks, - const std::set back_edge_sources); + const std::set back_edge_sources); public: void fit(const std::vector& blocks); }; diff --git a/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/backward_data_flow_impl.h b/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/backward_data_flow_impl.h index d1d4486..4578e7b 100644 --- a/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/backward_data_flow_impl.h +++ b/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/backward_data_flow_impl.h @@ -13,10 +13,10 @@ /* Note: this file should be included in backward_data_flow.h to provide template definitions */ // minimizes the number of blocks beween the ends of back edges -template +template std::vector -BackwardDataFlowAnalysis::reorderSequence(const std::vector& blocks, - const std::set back_edge_sources) +BackwardDataFlowAnalysis::reorderSequence(const std::vector& blocks, + const std::set back_edge_sources) { std::vector res = { }; @@ -40,8 +40,8 @@ BackwardDataFlowAnalysis::reorderSequence(const std::vector< return res; } -template -void BackwardDataFlowAnalysis::fit(const std::vector& blocks) +template +void BackwardDataFlowAnalysis::fit(const std::vector& blocks) { std::set> back_edges = {}; @@ -65,21 +65,21 @@ void BackwardDataFlowAnalysis::fit(const std::vectornodes.clear(); std::map node_by_block; for (auto block : blocks_sorted) { - NodeType* node = createNode(block); - nodes.push_back(node); + NodeType* node = this->createNode(block); + this->nodes.push_back(node); node_by_block[block] = node; } - int nodes_size = nodes.size(); + int nodes_size = this->nodes.size(); for (int i = 0; i < nodes_size; i++) { - NodeType* node = nodes[i]; + NodeType* node = this->nodes[i]; auto back_edges_by_src_it = back_edges_by_src.find(node->getBlock()); if (back_edges_by_src_it != back_edges_by_src.end()) diff --git a/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/data_flow.h b/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/data_flow.h index 11493a0..8067bd7 100644 --- a/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/data_flow.h +++ b/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/data_flow.h @@ -49,7 +49,7 @@ public: void setBlock(SAPFOR::BasicBlock* b) { bb = b; } }; -template +template class DataFlowAnalysis { protected: std::vector nodes; diff --git a/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/data_flow_impl.h b/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/data_flow_impl.h index da5a5fb..5e74e29 100644 --- a/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/data_flow_impl.h +++ b/sapfor/experts/Sapfor_2017/_src/CFGraph/DataFlow/data_flow_impl.h @@ -67,8 +67,8 @@ void DataFlowAnalysisNode::doStep() /* definitions for DataFlowAnalysis class */ -template -void DataFlowAnalysis::analyze() { +template +void DataFlowAnalysis::analyze() { auto curr = 0; auto stop = nodes.size(); @@ -103,10 +103,10 @@ void DataFlowAnalysis::analyze() { } } -template -DataFlowAnalysis::~DataFlowAnalysis() +template +DataFlowAnalysis::~DataFlowAnalysis() { - for (DataFlowAnalysisNode* node : nodes) + for (NodeType* node : nodes) delete node; nodes.clear(); diff --git a/sapfor/experts/Sapfor_2017/_src/CFGraph/live_variable_analysis.cpp b/sapfor/experts/Sapfor_2017/_src/CFGraph/live_variable_analysis.cpp index 48bdff8..51b4d14 100644 --- a/sapfor/experts/Sapfor_2017/_src/CFGraph/live_variable_analysis.cpp +++ b/sapfor/experts/Sapfor_2017/_src/CFGraph/live_variable_analysis.cpp @@ -271,7 +271,7 @@ public: } }; -class LiveVarAnalysis : public BackwardDataFlowAnalysis>, LiveVarAnalysisNode> { +class LiveVarAnalysis : public BackwardDataFlowAnalysis { protected: vector& formal_parameters; vector& fcalls; diff --git a/sapfor/experts/Sapfor_2017/_src/Transformations/dead_code.cpp b/sapfor/experts/Sapfor_2017/_src/Transformations/dead_code.cpp index f1ad920..8cb4b18 100644 --- a/sapfor/experts/Sapfor_2017/_src/Transformations/dead_code.cpp +++ b/sapfor/experts/Sapfor_2017/_src/Transformations/dead_code.cpp @@ -298,7 +298,7 @@ public: const vector& getResult() { return useful; }; }; -class DeadCodeAnalysis : public BackwardDataFlowAnalysis>, DeadCodeAnalysisNode> { +class DeadCodeAnalysis : public BackwardDataFlowAnalysis { protected: vector& formal_parameters;