From: Luo Xionghu <[email protected]> rename "printf" to "__gen_ocl_printf_stub" and "puts" to "__gen_ocl_puts_stub" in PrintfParser after link.
Signed-off-by: Luo Xionghu <[email protected]> --- backend/src/libocl/include/ocl_printf.h | 3 +++ backend/src/llvm/llvm_printf_parser.cpp | 12 ++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/backend/src/libocl/include/ocl_printf.h b/backend/src/libocl/include/ocl_printf.h index ffeefb9..27cef27 100644 --- a/backend/src/libocl/include/ocl_printf.h +++ b/backend/src/libocl/include/ocl_printf.h @@ -24,9 +24,12 @@ /* From LLVM 3.4, c string are all in constant address space */ #if 100*__clang_major__ + __clang_minor__ < 304 int __gen_ocl_printf_stub(const char * format, ...); +int __gen_ocl_puts_stub(const char * format); #else int __gen_ocl_printf_stub(constant char * format, ...); +int __gen_ocl_puts_stub(constant char * format); #endif #define printf __gen_ocl_printf_stub +#define puts __gen_ocl_puts_stub #endif diff --git a/backend/src/llvm/llvm_printf_parser.cpp b/backend/src/llvm/llvm_printf_parser.cpp index 9632011..7800c01 100644 --- a/backend/src/llvm/llvm_printf_parser.cpp +++ b/backend/src/llvm/llvm_printf_parser.cpp @@ -552,7 +552,6 @@ error: return true; } - bool PrintfParser::runOnFunction(llvm::Function &F) { bool changed = false; @@ -583,6 +582,15 @@ error: builder = new IRBuilder<>(module->getContext()); + llvm::GlobalValue* gFun = module->getNamedValue("printf"); + if(gFun) { + gFun->setName("__gen_ocl_printf_stub"); + } + llvm::GlobalValue* gFun2 = module->getNamedValue("puts"); + if(gFun2 ) { + gFun2->setName("__gen_ocl_puts_stub"); + } + /* First find printfs and caculate all slots size of one loop. */ for (llvm::Function::iterator B = F.begin(), BE = F.end(); B != BE; B++) { for (BasicBlock::iterator instI = B->begin(), @@ -602,7 +610,7 @@ error: Value *Callee = call->getCalledValue(); const std::string fnName = Callee->getName(); - if (fnName != "__gen_ocl_printf_stub") + if (fnName != "__gen_ocl_printf_stub" && fnName != "__gen_ocl_puts_stub") continue; if (!parseOnePrintfInstruction(call, pInfo, sizeof_size)) { -- 1.9.1 _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
