diff options
author | dhuth <derickhuth@gmail.com> | 2014-08-27 09:52:06 -0600 |
---|---|---|
committer | dhuth <derickhuth@gmail.com> | 2014-08-27 09:52:06 -0600 |
commit | bff810cc371a38f493d688c54f71013f5a7d53bf (patch) | |
tree | fbe86954bb3c01deb21da9e41ebff5baa2889a45 /mem_mapping_utils.cc | |
download | chill-bff810cc371a38f493d688c54f71013f5a7d53bf.tar.gz chill-bff810cc371a38f493d688c54f71013f5a7d53bf.tar.bz2 chill-bff810cc371a38f493d688c54f71013f5a7d53bf.zip |
Initial commit
Diffstat (limited to 'mem_mapping_utils.cc')
-rw-r--r-- | mem_mapping_utils.cc | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/mem_mapping_utils.cc b/mem_mapping_utils.cc new file mode 100644 index 0000000..645fe59 --- /dev/null +++ b/mem_mapping_utils.cc @@ -0,0 +1,76 @@ +#include <vector> +#include <string.h> +#include <map> +#include "rose.h" +#include "mem_mapping_utils.hh" + +using namespace SageBuilder; +using namespace SageInterface; + +memory_mapping::memory_mapping (bool used, const char * array_name){ + this->mem_used = used; + this->add(array_name); +} + +texture_memory_mapping::texture_memory_mapping(bool used, const char* array_name) : memory_mapping(used, array_name) { } +constant_memory_mapping::constant_memory_mapping(bool used, const char* array_name) : memory_mapping(used, array_name) { } +//texture_memory_mapping::texture_memory_mapping (bool used, const char* array_name, int width, int height) { +// tex_mem_used = used; +// this->add(array_name, width, height); +//} + +void memory_mapping::add(const char * array_name) { + this->mapped_array_name.push_back(std::string(array_name)); + //std::vector<int> ivec = std::vector<int>(); + //dims[std::string(array_name)] = ivec; +} +//void texture_memory_mapping::add(const char* array_name, int width, int height) { +// tex_mapped_array_name.push_back(std::string(array_name)); +// std::vector<int> ivec = std::vector<int>(); +// ivec.push_back(width); +// ivec.push_back(height); +// dims[std::string(array_name)] = ivec; +//} + +bool memory_mapping::is_mem_used(){ + return this->mem_used; +} +bool memory_mapping::is_array_mapped(const char * array_name){ + + for( int i=0; i<mapped_array_name.size(); i++){ + if(!(strcmp(array_name, mapped_array_name[i].c_str()))) + return true; + } + return false; +} +void memory_mapping::set_mapped_symbol(const char * array_name, SgVariableSymbol* sym) { + this->mapped_symbol[std::string(array_name)] = sym; +} +void texture_memory_mapping::set_devptr_symbol(const char * array_name, SgVariableSymbol* sym) { + devptr_symbol[std::string(array_name)] = sym; +} +void memory_mapping::set_vardef(const char* array_name, VarDefs* vardef) { + this->vardefs[std::string(array_name)] = vardef; +} +SgVarRefExp* memory_mapping::get_mapped_symbol_exp(const char * array_name) { + return buildVarRefExp(this->mapped_symbol[std::string(array_name)]); +} +SgVarRefExp* texture_memory_mapping::get_devptr_symbol_exp(const char * array_name) { + return buildVarRefExp(devptr_symbol[std::string(array_name)]); +} +VarDefs* memory_mapping::get_vardef(const char* vardef_name) { + return this->vardefs[std::string(vardef_name)]; +} +//int texture_memory_mapping::get_dims(const char* array_name) { +// return (int)(dims[std::string(array_name)].size()); +//} +//int texture_memory_mapping::get_dim_length(const char* array_name, int dim) { +// return dims[std::string(array_name)][dim]; +//} +memory_mapping::memory_mapping() { + mem_used = false; +} +texture_memory_mapping::texture_memory_mapping() : memory_mapping() { } +constant_memory_mapping::constant_memory_mapping() : memory_mapping() { } + + |