[Beignet] [PATCH] Use CreateCall instead of CreateCall2 because llvm3.7 has removed CreateCall2.
Yan Wang
yan.wang at linux.intel.com
Wed Nov 18 02:47:15 PST 2015
Signed-off-by: Yan Wang <yan.wang at linux.intel.com>
---
backend/src/llvm/llvm_profiling.cpp | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/backend/src/llvm/llvm_profiling.cpp b/backend/src/llvm/llvm_profiling.cpp
index 8c9157c..e548305 100644
--- a/backend/src/llvm/llvm_profiling.cpp
+++ b/backend/src/llvm/llvm_profiling.cpp
@@ -177,12 +177,21 @@ namespace gbe
builder->SetInsertPoint(instI);
/* Add the timestamp store function call. */
// __gen_ocl_store_timestamp(int nth, int type);
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
+ builder->CreateCall(cast<llvm::Function>(module->getOrInsertFunction(
+ "__gen_ocl_calc_timestamp", Type::getVoidTy(module->getContext()),
+ IntegerType::getInt32Ty(module->getContext()),
+ IntegerType::getInt32Ty(module->getContext()),
+ NULL)),
+ /* the args */ {ConstantInt::get(intTy, pointNum++), ConstantInt::get(intTy, profilingType)});
+#else
builder->CreateCall2(cast<llvm::Function>(module->getOrInsertFunction(
"__gen_ocl_calc_timestamp", Type::getVoidTy(module->getContext()),
IntegerType::getInt32Ty(module->getContext()),
IntegerType::getInt32Ty(module->getContext()),
NULL)),
/* the args */ ConstantInt::get(intTy, pointNum++), ConstantInt::get(intTy, profilingType));
+#endif
}
/* We insert one store_profiling at the end of the last block to hold the place. */
llvm::Function::iterator BE = F.end();
@@ -190,12 +199,21 @@ namespace gbe
BasicBlock::iterator retInst = BE->end();
retInst--;
builder->SetInsertPoint(retInst);
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
+ builder->CreateCall(cast<llvm::Function>(module->getOrInsertFunction(
+ "__gen_ocl_store_profiling", Type::getVoidTy(module->getContext()),
+ ptrTy,
+ IntegerType::getInt32Ty(module->getContext()),
+ NULL)),
+ /* the args */{profilingBuf, ConstantInt::get(intTy, profilingType)});
+#else
builder->CreateCall2(cast<llvm::Function>(module->getOrInsertFunction(
"__gen_ocl_store_profiling", Type::getVoidTy(module->getContext()),
ptrTy,
IntegerType::getInt32Ty(module->getContext()),
NULL)),
/* the args */profilingBuf, ConstantInt::get(intTy, profilingType));
+#endif
delete builder;
return changed;
--
1.9.3
More information about the Beignet
mailing list