summaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-08-31 15:52:44 +0200
committerGitHub <noreply@github.com>2020-08-31 15:52:44 +0200
commit078b0dcd710adc8bd53add3fb482b920d8806a93 (patch)
tree0c056a4b69a7931453245ff7c9cc041f3964b7a2 /eval
parentee046fbabeba319de0cd48aa82be7e93f8102344 (diff)
parentc793b92d6c5c748ac04a31923a625964bfe814fb (diff)
Merge pull request #14199 from vespa-engine/toregge/use-llvm-11-on-fedora-33
Use llvm 11 on Fedora 33.
Diffstat (limited to 'eval')
-rw-r--r--eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp b/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp
index 6f9bee025c9..ad182115054 100644
--- a/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp
+++ b/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp
@@ -200,7 +200,8 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser {
}
assert(pass_params == PassParams::LAZY);
assert(params.size() == 2);
- return builder.CreateCall(params[0], {params[1], builder.getInt64(idx)}, "resolve_param");
+ return builder.CreateCall(llvm::cast<llvm::FunctionType>(params[0]->getType()->getPointerElementType()),
+ params[0], {params[1], builder.getInt64(idx)}, "resolve_param");
}
//-------------------------------------------------------------------------
@@ -252,12 +253,14 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser {
llvm::Value *eval_fun = builder.CreateIntToPtr(builder.getInt64((uint64_t)eval_ptr), eval_funptr_t, "inject_eval");
llvm::Value *ctx = builder.CreateIntToPtr(builder.getInt64((uint64_t)forest), builder.getVoidTy()->getPointerTo(), "inject_ctx");
if (pass_params == PassParams::ARRAY) {
- push(builder.CreateCall(eval_fun, {ctx, params[0]}, "call_eval"));
+ push(builder.CreateCall(llvm::cast<llvm::FunctionType>(eval_fun->getType()->getPointerElementType()),
+ eval_fun, {ctx, params[0]}, "call_eval"));
} else {
assert(pass_params == PassParams::LAZY);
llvm::PointerType *proxy_funptr_t = make_eval_forest_proxy_funptr_t();
llvm::Value *proxy_fun = builder.CreateIntToPtr(builder.getInt64((uint64_t)vespalib_eval_forest_proxy), proxy_funptr_t, "inject_eval_proxy");
- push(builder.CreateCall(proxy_fun, {eval_fun, ctx, params[0], params[1], builder.getInt64(stats.num_params)}));
+ push(builder.CreateCall(llvm::cast<llvm::FunctionType>(proxy_fun->getType()->getPointerElementType()),
+ proxy_fun, {eval_fun, ctx, params[0], params[1], builder.getInt64(stats.num_params)}));
}
return true;
}
@@ -411,7 +414,8 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser {
llvm::PointerType *funptr_t = make_check_membership_funptr_t();
llvm::Value *call_fun = builder.CreateIntToPtr(builder.getInt64((uint64_t)call_ptr), funptr_t, "inject_call_addr");
llvm::Value *ctx = builder.CreateIntToPtr(builder.getInt64((uint64_t)state), builder.getVoidTy()->getPointerTo(), "inject_ctx");
- push(builder.CreateCall(call_fun, {ctx, lhs}, "call_check_membership"));
+ push(builder.CreateCall(llvm::cast<llvm::FunctionType>(call_fun->getType()->getPointerElementType()),
+ call_fun, {ctx, lhs}, "call_check_membership"));
} else {
// build explicit code to check all set members
llvm::Value *found = builder.getFalse();