#ifndef EXCEPTCALLMERGE_HPP #define EXCEPTCALLMERGE_HPP #include "BasicBlock.h" #include "Function.h" #include "Module.h" #include "PassManager.hpp" #include #include #include #include using std::cout; using std::endl; using std::set; using std::string; using std::to_string; using std::vector; // goal: each function share one block calling neg_idx_except class NegCallMerge : public Pass { public: NegCallMerge(Module *_m); NegCallMerge() = delete; void run() override { for (auto &f : m_->get_functions()) { run(&f); } } private: Function *neg_func; void run(Function *f); }; #endif