[Beignet] [PATCH] Use CreateCall instead of CreateCall2 because llvm3.7 has removed CreateCall2.
yan.wang at linux.intel.com
yan.wang at linux.intel.com
Wed Nov 18 18:31:35 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
Sure. I will submit it again after modified it.
Thanks.
Yan Wang
>
>> +#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