summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne H Juul <arnej27959@users.noreply.github.com>2020-12-19 17:59:39 +0100
committerGitHub <noreply@github.com>2020-12-19 17:59:39 +0100
commitc26ef3801d0db74209931fb713a1e3ff72381273 (patch)
treeb5ed5c7c6de3353673d48fb7468b23c7ed9bd35a
parentb5cb754381e467ab8286526ab058c1abfe2e0afe (diff)
parent05e48570f899266c5371c69a89615a20b9407b4e (diff)
Merge pull request #15781 from vespa-engine/arnej/pointer-to-void-not-valid
Change pointer type for LLVM
-rw-r--r--eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp b/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp
index 0bc96d5500b..8fbb2c5ac09 100644
--- a/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp
+++ b/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp
@@ -101,7 +101,7 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser {
llvm::PointerType *make_eval_forest_funptr_t() {
std::vector<llvm::Type*> param_types;
- param_types.push_back(builder.getVoidTy()->getPointerTo());
+ param_types.push_back(builder.getInt8Ty()->getPointerTo());
param_types.push_back(builder.getDoubleTy()->getPointerTo());
llvm::FunctionType *function_type = llvm::FunctionType::get(builder.getDoubleTy(), param_types, false);
return llvm::PointerType::get(function_type, 0);
@@ -109,7 +109,7 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser {
llvm::PointerType *make_resolve_param_funptr_t() {
std::vector<llvm::Type*> param_types;
- param_types.push_back(builder.getVoidTy()->getPointerTo());
+ param_types.push_back(builder.getInt8Ty()->getPointerTo());
param_types.push_back(builder.getInt64Ty());
llvm::FunctionType *function_type = llvm::FunctionType::get(builder.getDoubleTy(), param_types, false);
return llvm::PointerType::get(function_type, 0);
@@ -118,9 +118,9 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser {
llvm::PointerType *make_eval_forest_proxy_funptr_t() {
std::vector<llvm::Type*> param_types;
param_types.push_back(make_eval_forest_funptr_t());
- param_types.push_back(builder.getVoidTy()->getPointerTo());
+ param_types.push_back(builder.getInt8Ty()->getPointerTo());
param_types.push_back(make_resolve_param_funptr_t());
- param_types.push_back(builder.getVoidTy()->getPointerTo());
+ param_types.push_back(builder.getInt8Ty()->getPointerTo());
param_types.push_back(builder.getInt64Ty());
llvm::FunctionType *function_type = llvm::FunctionType::get(builder.getDoubleTy(), param_types, false);
return llvm::PointerType::get(function_type, 0);
@@ -128,7 +128,7 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser {
llvm::PointerType *make_check_membership_funptr_t() {
std::vector<llvm::Type*> param_types;
- param_types.push_back(builder.getVoidTy()->getPointerTo());
+ param_types.push_back(builder.getInt8Ty()->getPointerTo());
param_types.push_back(builder.getDoubleTy());
llvm::FunctionType *function_type = llvm::FunctionType::get(builder.getInt1Ty(), param_types, false);
return llvm::PointerType::get(function_type, 0);
@@ -164,7 +164,7 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser {
} else {
assert(pass_params == PassParams::LAZY);
param_types.push_back(make_resolve_param_funptr_t());
- param_types.push_back(builder.getVoidTy()->getPointerTo());
+ param_types.push_back(builder.getInt8Ty()->getPointerTo());
}
llvm::FunctionType *function_type = llvm::FunctionType::get(builder.getDoubleTy(), param_types, false);
function = llvm::Function::Create(function_type, llvm::Function::ExternalLinkage, name_in.c_str(), &module);
@@ -243,7 +243,7 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser {
gbdt::Forest *forest = forests.back().get();
llvm::PointerType *eval_funptr_t = make_eval_forest_funptr_t();
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");
+ llvm::Value *ctx = builder.CreateIntToPtr(builder.getInt64((uint64_t)forest), builder.getInt8Ty()->getPointerTo(), "inject_ctx");
if (pass_params == PassParams::ARRAY) {
push(builder.CreateCall(llvm::cast<llvm::FunctionType>(eval_fun->getType()->getPointerElementType()),
eval_fun, {ctx, params[0]}, "call_eval"));
@@ -405,7 +405,7 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser {
PluginState *state = plugin_state.back().get();
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");
+ llvm::Value *ctx = builder.CreateIntToPtr(builder.getInt64((uint64_t)state), builder.getInt8Ty()->getPointerTo(), "inject_ctx");
push(builder.CreateCall(llvm::cast<llvm::FunctionType>(call_fun->getType()->getPointerElementType()),
call_fun, {ctx, lhs}, "call_check_membership"));
} else {