#pragma once

#include<string>
#include<vector>

#include "SgUtils.h"
#include "CFGraph/CFGraph.h"
#include "CFGraph/live_variable_analysis.h"
#include "CFGraph/DataFlow/data_flow.h"
#include "CFGraph/DataFlow/backward_data_flow.h"

int removeDeadCode(SgStatement* func, 
                   const std::map<std::string, std::vector<FuncInfo*>>&allFuncs,
                   const std::map<std::string, CommonBlock*>& commonBlocks, 
                   SgStatement* intervalDelStart = NULL, SgStatement* intervalDelEnd = NULL);