Dump only relevant functions when in the debugging output.

This commit is contained in:
Zack Rusin 2007-10-29 13:20:55 -04:00
parent fd908ce234
commit 75a9018fb9

View file

@ -802,14 +802,20 @@ void gallivm_prog_dump(struct gallivm_prog *prog, const char *file_prefix)
out << (*mod); out << (*mod);
out.close(); out.close();
} else { } else {
std::ostringstream stream; const llvm::Module::FunctionListType &funcs = mod->getFunctionList();
stream << "execute_shader"; llvm::Module::FunctionListType::const_iterator itr;
stream << prog->id;
std::string func_name = stream.str();
llvm::Function *func = mod->getFunction(func_name.c_str());
assert(func);
std::cout<<"; ---------- Start shader "<<prog->id<<std::endl; std::cout<<"; ---------- Start shader "<<prog->id<<std::endl;
std::cout<<*mod<<std::endl; for (itr = funcs.begin(); itr != funcs.end(); ++itr) {
const llvm::Function &func = (*itr);
std::string name = func.getName();
const llvm::Function *found = 0;
if (name.find("execute_shader") != std::string::npos ||
name.find("function") != std::string::npos)
found = &func;
if (found) {
std::cout<<*found<<std::endl;
}
}
std::cout<<"; ---------- End shader "<<prog->id<<std::endl; std::cout<<"; ---------- End shader "<<prog->id<<std::endl;
} }
} }