int main(int argc, char **argv) { LLVMPassRegistryRef pr = LLVMGetGlobalPassRegistry(); LLVMInitializeCore(pr); if (argc == 2 && !strcmp(argv[1], "--module-dump")) { return module_dump(); } else if (argc == 2 && !strcmp(argv[1], "--module-list-functions")) { return module_list_functions(); } else if (argc == 2 && !strcmp(argv[1], "--module-list-globals")) { return module_list_globals(); } else if (argc == 2 && !strcmp(argv[1], "--targets-list")) { return targets_list(); } else if (argc == 2 && !strcmp(argv[1], "--object-list-sections")) { return object_list_sections(); } else if (argc == 2 && !strcmp(argv[1], "--object-list-symbols")) { return object_list_symbols(); } else if (argc == 2 && !strcmp(argv[1], "--disassemble")) { return disassemble(); } else if (argc == 2 && !strcmp(argv[1], "--calc")) { return calc(); } else { print_usage(); } return 1; }
/* dump modules */ static void m_dump_module(char *arg) { struct module *mptr = NULL; if(arg) { if(chars_isdigit(*arg)) { mptr = module_find_id(atoi(arg)); } else { if((mptr = module_find_name(arg)) == NULL) mptr = module_find_path(arg); } } module_dump(mptr); }