[Beignet] [PATCH] Use CreateCall instead of CreateCall2 because llvm3.7 has removed CreateCall2.
Song, Ruiling
ruiling.song at intel.com
Wed Nov 18 17:50:20 PST 2015
> -----Original Message-----
> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of
> Yan Wang
> Sent: Wednesday, November 18, 2015 6:47 PM
> To: beignet at lists.freedesktop.org
> Cc: Yan Wang <yan.wang at linux.intel.com>
> Subject: [Beignet] [PATCH] Use CreateCall instead of CreateCall2 because
> llvm3.7 has removed CreateCall2.
>
> 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)});
I think you can directly remove CreateCall2 verion.
llvm supports CreateCall((Value *Callee, ArrayRef<Value *> Args = None, const Twine &Name = "") through all llvm version.
So, let's keep code simple.
Thanks!
Ruiling
> +#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
>
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
More information about the Beignet
mailing list