[code generation] added double-buffering

This commit is contained in:
Philippe Tillet
2019-02-12 11:47:52 -05:00
parent e45d6bbb60
commit 41aad4800c
8 changed files with 204 additions and 47 deletions

View File

@@ -0,0 +1,34 @@
#ifndef TDL_INCLUDE_CODEGEN_BUFFER_INFO_PASS_H
#define TDL_INCLUDE_CODEGEN_BUFFER_INFO_PASS_H
#include <set>
#include <map>
namespace tdl {
namespace ir {
class module;
class value;
}
namespace codegen{
class buffer_info_pass {
public:
void run(ir::module &mod);
// queries
bool is_double(ir::value *x);
bool is_shared(ir::value *x);
ir::value *get_reference(ir::value *x);
private:
std::set<ir::value*> shared_;
std::set<ir::value*> double_;
std::map<ir::value*, ir::value*> refs_;
};
}
}
#endif