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
}