FreeBSD Bugzilla – Attachment 205733 Details for
Bug 239175
lang/beignet: fails to build with llvm90
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
incomplete fix
patch-llvm9 (text/plain), 8.47 KB, created by
Jan Beich
on 2019-07-12 21:35:20 UTC
(
hide
)
Description:
incomplete fix
Filename:
MIME Type:
Creator:
Jan Beich
Created:
2019-07-12 21:35:20 UTC
Size:
8.47 KB
patch
obsolete
>Regressed by https://github.com/llvm/llvm-project/commit/13680223b9d8 > >backend/src/llvm/llvm_intrinsic_lowering.cpp:80:19: error: > no viable conversion from 'llvm::FunctionCallee' to 'llvm::Constant *' > Constant* FCache = M->getOrInsertFunction(NewFn, > ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >backend/src/llvm/llvm_sampler_fix.cpp:85:18: error: > no viable conversion from 'llvm::FunctionCallee' to 'llvm::Value *' > ...Value* samplerCvt = M->getOrInsertFunction("__gen_ocl_sampler_to_int", i32Ty, I->getOperand(0)->getType()); > ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >backend/src/llvm/llvm_sampler_fix.cpp:127:18: error: > no viable conversion from 'llvm::FunctionCallee' to 'llvm::Value *' > ...Value* samplerCvt = M->getOrInsertFunction("__gen_ocl_sampler_to_int", i32Ty, I->getOperand(0)->getType()); > ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >backend/src/llvm/llvm_profiling.cpp:166:27: error: no > matching function for call to 'cast' > builder->CreateCall(cast<llvm::Function>(module->getOrInsertFunction( > ^~~~~~~~~~~~~~~~~~~~ >backend/src/llvm/llvm_device_enqueue.cpp:401:52: error: > no matching function for call to 'cast' > CallInst* newCI = builder.CreateCall(cast<llvm::Function>(mod->getOrInsertFunction( > ^~~~~~~~~~~~~~~~~~~~ >/usr/local/llvm90/include/llvm/Support/Casting.h:256:44: note: candidate function [with X = llvm::Function, Y > = llvm::FunctionCallee] not viable: expects an l-value for 1st argument >inline typename cast_retty<X, Y>::ret_type cast(Y &Val) { > ^ >/usr/local/llvm90/include/llvm/Support/Casting.h:249:1: note: candidate template ignored: requirement > '!is_simple_type<llvm::FunctionCallee>::value' was not satisfied [with X = llvm::Function, Y = > llvm::FunctionCallee] >cast(const Y &Val) { >^ >/usr/local/llvm90/include/llvm/Support/Casting.h:263:46: note: candidate template ignored: could not match > 'Y *' against 'llvm::FunctionCallee' >inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) { > ^ >/usr/local/llvm90/include/llvm/Support/Casting.h:271:1: note: candidate template ignored: could not match > 'unique_ptr<type-parameter-0-1, default_delete<type-parameter-0-1> >' against 'llvm::FunctionCallee' >cast(std::unique_ptr<Y> &&Val) { >^ >backend/src/llvm/llvm_profiling.cpp:188:25: error: no > matching function for call to 'cast' > builder->CreateCall(cast<llvm::Function>(module->getOrInsertFunction( > ^~~~~~~~~~~~~~~~~~~~ >/usr/local/llvm90/include/llvm/Support/Casting.h:256:44: note: candidate function [with X = llvm::Function, Y > = llvm::FunctionCallee] not viable: expects an l-value for 1st argument >inline typename cast_retty<X, Y>::ret_type cast(Y &Val) { > ^ >/usr/local/llvm90/include/llvm/Support/Casting.h:249:1: note: candidate template ignored: requirement > '!is_simple_type<llvm::FunctionCallee>::value' was not satisfied [with X = llvm::Function, Y = > llvm::FunctionCallee] >cast(const Y &Val) { >^ >/usr/local/llvm90/include/llvm/Support/Casting.h:263:46: note: candidate template ignored: could not match > 'Y *' against 'llvm::FunctionCallee' >inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) { > ^ >/usr/local/llvm90/include/llvm/Support/Casting.h:271:1: note: candidate template ignored: could not match > 'unique_ptr<type-parameter-0-1, default_delete<type-parameter-0-1> >' against 'llvm::FunctionCallee' >cast(std::unique_ptr<Y> &&Val) { >^ > >--- backend/src/llvm/llvm_intrinsic_lowering.cpp.orig 2017-10-24 06:04:48 UTC >+++ backend/src/llvm/llvm_intrinsic_lowering.cpp >@@ -77,7 +77,11 @@ namespace gbe { > std::vector<Type *> ParamTys; > for (Value** I = ArgBegin; I != ArgEnd; ++I) > ParamTys.push_back((*I)->getType()); >+#if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 90 >+ FunctionCallee FCache = M->getOrInsertFunction(NewFn, >+#else > Constant* FCache = M->getOrInsertFunction(NewFn, >+#endif > FunctionType::get(RetTy, ParamTys, false)); > > IRBuilder<> Builder(CI->getParent(), BasicBlock::iterator(CI)); >--- backend/src/llvm/llvm_sampler_fix.cpp.orig 2017-10-24 06:04:48 UTC >+++ backend/src/llvm/llvm_sampler_fix.cpp >@@ -82,7 +82,11 @@ namespace gbe { > #if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 40 > Module *M = I->getParent()->getParent()->getParent(); > #if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 50 >+#if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 90 >+ FunctionCallee samplerCvt = M->getOrInsertFunction("__gen_ocl_sampler_to_int", i32Ty, I->getOperand(0)->getType()); >+#else > Value* samplerCvt = M->getOrInsertFunction("__gen_ocl_sampler_to_int", i32Ty, I->getOperand(0)->getType()); >+#endif > #else > Value* samplerCvt = M->getOrInsertFunction("__gen_ocl_sampler_to_int", i32Ty, I->getOperand(0)->getType(), nullptr); > #endif >@@ -124,7 +128,11 @@ namespace gbe { > #if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 40 > Module *M = I->getParent()->getParent()->getParent(); > #if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 50 >+#if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 90 >+ FunctionCallee samplerCvt = M->getOrInsertFunction("__gen_ocl_sampler_to_int", i32Ty, I->getOperand(0)->getType()); >+#else > Value* samplerCvt = M->getOrInsertFunction("__gen_ocl_sampler_to_int", i32Ty, I->getOperand(0)->getType()); >+#endif > #else > Value* samplerCvt = M->getOrInsertFunction("__gen_ocl_sampler_to_int", i32Ty, I->getOperand(0)->getType(), nullptr); > #endif >--- backend/src/llvm/llvm_profiling.cpp.orig 2017-10-24 06:04:48 UTC >+++ backend/src/llvm/llvm_profiling.cpp >@@ -163,10 +163,18 @@ namespace gbe > // __gen_ocl_store_timestamp(int nth, int type); > Value *Args[2] = {ConstantInt::get(intTy, pointNum++), ConstantInt::get(intTy, profilingType)}; > #if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 50 >+#if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 90 >+ builder->CreateCall(module->getOrInsertFunction( >+#else > builder->CreateCall(cast<llvm::Function>(module->getOrInsertFunction( >+#endif > "__gen_ocl_calc_timestamp", Type::getVoidTy(module->getContext()), > IntegerType::getInt32Ty(module->getContext()), >+#if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 90 >+ IntegerType::getInt32Ty(module->getContext())), >+#else > IntegerType::getInt32Ty(module->getContext()))), >+#endif > ArrayRef<Value*>(Args)); > #else > builder->CreateCall(cast<llvm::Function>(module->getOrInsertFunction( >@@ -185,10 +193,18 @@ namespace gbe > Value *Args2[2] = {profilingBuf, ConstantInt::get(intTy, profilingType)}; > > #if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 50 >+#if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 90 >+ builder->CreateCall(module->getOrInsertFunction( >+#else > builder->CreateCall(cast<llvm::Function>(module->getOrInsertFunction( >+#endif > "__gen_ocl_store_profiling", Type::getVoidTy(module->getContext()), > ptrTy, >+#if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 90 >+ IntegerType::getInt32Ty(module->getContext())), >+#else > IntegerType::getInt32Ty(module->getContext()))), >+#endif > ArrayRef<Value*>(Args2)); > #else > builder->CreateCall(cast<llvm::Function>(module->getOrInsertFunction( >--- backend/src/llvm/llvm_device_enqueue.cpp.orig 2017-10-24 06:04:48 UTC >+++ backend/src/llvm/llvm_device_enqueue.cpp >@@ -398,8 +398,13 @@ namespace gbe { > std::vector<Type *> ParamTys; > for (Value** iter = args.begin(); iter != args.end(); ++iter) > ParamTys.push_back((*iter)->getType()); >+#if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 90 >+ CallInst* newCI = builder.CreateCall(mod->getOrInsertFunction( >+ "__gen_enqueue_kernel_slm", FunctionType::get(intTy, ParamTys, false)), args); >+#else > CallInst* newCI = builder.CreateCall(cast<llvm::Function>(mod->getOrInsertFunction( > "__gen_enqueue_kernel_slm", FunctionType::get(intTy, ParamTys, false))), args); >+#endif > CI->replaceAllUsesWith(newCI); > deadInsnSet.insert(CI); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 239175
:
205733
|
205734
|
206326