From 6dc0ad1080967178cb18b8429d891069ba8c88d1 Mon Sep 17 00:00:00 2001 From: mkoch Date: Fri, 12 Jan 2024 16:57:02 +0300 Subject: [PATCH 1/2] DataFlow: remove unused template parameter DataType from DataFlowAnalysis class --- .../_src/CFGraph/DataFlow/backward_data_flow.h | 6 +++--- .../_src/CFGraph/DataFlow/backward_data_flow_impl.h | 10 +++++----- .../Sapfor_2017/_src/CFGraph/DataFlow/data_flow.h | 2 +- .../Sapfor_2017/_src/CFGraph/DataFlow/data_flow_impl.h | 10 +++++----- .../_src/CFGraph/live_variable_analysis.cpp | 2 +- .../Sapfor_2017/_src/Transformations/dead_code.cpp | 2 +- 6 files changed, 16 insertions(+), 16 deletions(-) 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..e406432 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 = {}; 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; From aa3c28847a1d5eabbb901a9a6b9eb4744979388c Mon Sep 17 00:00:00 2001 From: XNPSTER Date: Sat, 13 Jan 2024 13:41:31 +0300 Subject: [PATCH 2/2] DATA_FLOW: fix build for linux --- .../_src/CFGraph/DataFlow/backward_data_flow_impl.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 e406432..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 @@ -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())