summaryrefslogtreecommitdiff
path: root/mem_mapping_utils.cc
diff options
context:
space:
mode:
authordhuth <derickhuth@gmail.com>2014-08-27 09:52:06 -0600
committerdhuth <derickhuth@gmail.com>2014-08-27 09:52:06 -0600
commitbff810cc371a38f493d688c54f71013f5a7d53bf (patch)
treefbe86954bb3c01deb21da9e41ebff5baa2889a45 /mem_mapping_utils.cc
downloadchill-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.cc76
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() { }
+
+