Archive / / JsonModule.cpp
2011-05-31 10:15:06 UTC
previous next
#include "JsonModule.h" namespace { class JsonFunction { public: JsonFunction } JsonObject JsonGen::get_json_for_module(Module* m) { JsonObject root(JsonObject::AssocArray); root["jsvm-json-version"] = 1; root["module-id"] = module->getModuleIdentifier(); root["data-layout"] = module->getDataLayout(); root["target-triple"] = module->getTargetTriple(); root["functions"] = JsonObject(JsonObject::Array); std::map<Function*, int> func_ptr_to_js_index; int current_func_js_index = 0; Module::iterator func_iter; for (func_iter = module->begin(); func_iter != module->end(); func_iter++) { func_ptr_to_js_index[&*func_iter] = current_func_js_index; root["functions"][current_func_js_index] = JsonObject(JsonObject::AssocArray); root["functions"][current_func_js_index]["basic-blocks"] = JsonObject(JsonObject::Array); Function::iterator basic_block_iter; std::map<BasicBlock*, int> basic_block_ptr_to_js_index; int current_basic_block_js_index = 0; for (basic_block_iter = func_iter->begin(); basic_block_iter != func_iter->end(); basic_block_iter++) { basic_block_ptr_to_js_index[&*basic_block_iter] = current_basic_block_js_index; root["functions"][current_func_js_index]["basic-blocks"][current_basic_block_js_index] } } return root; } JsonObject get_json_for_function(Function* f) { JsonObject json_obj(JsonObject::AssocArray); json_object["basic-blocks"] = JsonObject(JsonObject::Array); Function::iterator iter; for (iter = f->begin(); iter != f->end(); iter++) { json_object["basic-blocks"] } JsonObject get_json_for_basic_block(BasicBlock* b) { } JsonObject get_json_for_instruction }