[Beignet] [PATCH 3/3] Runtime: remove ctx's useless fileds.
Yang Rong
rong.r.yang at intel.com
Tue Jun 20 11:07:47 UTC 2017
built_in_prgs and built_in_kernels seems useless, remove them.
Signed-off-by: Yang Rong <rong.r.yang at intel.com>
---
src/cl_context.c | 6 ------
src/cl_context.h | 2 --
src/cl_program.c | 40 +++++-----------------------------------
3 files changed, 5 insertions(+), 43 deletions(-)
diff --git a/src/cl_context.c b/src/cl_context.c
index f3dd421..798419a 100644
--- a/src/cl_context.c
+++ b/src/cl_context.c
@@ -396,12 +396,6 @@ cl_context_delete(cl_context ctx)
ctx->internal_prgs[i] = NULL;
cl_program_delete(p);
}
-
- if (ctx->built_in_kernels[i]) {
- cl_kernel k = ctx->built_in_kernels[i];
- ctx->built_in_kernels[i] = NULL;
- cl_kernel_delete(k);
- }
}
CL_OBJECT_DEC_REF(ctx);
diff --git a/src/cl_context.h b/src/cl_context.h
index 3a2e13b..36db04f 100644
--- a/src/cl_context.h
+++ b/src/cl_context.h
@@ -126,8 +126,6 @@ struct _cl_context {
/* All programs internal used, for example clEnqueuexxx api use */
cl_kernel internal_kernels[CL_INTERNAL_KERNEL_MAX];
/* All kernels for clenqueuexxx api, for example clEnqueuexxx api use */
- cl_program built_in_prgs; /*all built-in kernels belongs to this program only*/
- cl_kernel built_in_kernels[CL_INTERNAL_KERNEL_MAX];
uint32_t ver; /* Gen version */
struct _cl_context_prop props;
cl_context_properties * prop_user; /* a copy of user passed context properties when create context */
diff --git a/src/cl_program.c b/src/cl_program.c
index bb96d98..3ae0486 100644
--- a/src/cl_program.c
+++ b/src/cl_program.c
@@ -382,54 +382,24 @@ cl_program_create_with_built_in_kernles(cl_context ctx,
extern size_t cl_internal_built_in_kernel_str_size;
char* p_built_in_kernel_str =cl_internal_built_in_kernel_str;
- ctx->built_in_prgs = cl_program_create_from_binary(ctx, 1,
+ cl_program built_in_prgs = cl_program_create_from_binary(ctx, 1,
&ctx->devices[0],
(size_t*)&cl_internal_built_in_kernel_str_size,
(const unsigned char **)&p_built_in_kernel_str,
&binary_status, &err);
- if (!ctx->built_in_prgs)
+ if (!built_in_prgs)
return NULL;
- err = cl_program_build(ctx->built_in_prgs, NULL);
+ err = cl_program_build(built_in_prgs, NULL);
if (err != CL_SUCCESS)
return NULL;
- ctx->built_in_prgs->is_built = 1;
-
- char delims[] = ";";
- char* saveptr = NULL;
- char* local_kernel_names;
- char* kernel = NULL;
- char* matched_kernel;
- int i = 0;
-
- //copy the content to local_kernel_names to protect the kernel_names.
- TRY_ALLOC(local_kernel_names, cl_calloc(strlen(kernel_names)+1, sizeof(char) ) );
- memcpy(local_kernel_names, kernel_names, strlen(kernel_names)+1);
-
- kernel = strtok_r( local_kernel_names, delims , &saveptr);
- while( kernel != NULL ) {
- matched_kernel = strstr(ctx->devices[0]->built_in_kernels, kernel);
- if(matched_kernel){
- for (i = 0; i < ctx->built_in_prgs->ker_n; ++i) {
- assert(ctx->built_in_prgs->ker[i]);
- const char *ker_name = cl_kernel_get_name(ctx->built_in_prgs->ker[i]);
- if (ker_name != NULL && strcmp(ker_name, kernel) == 0) {
- break;
- }
- }
-
- ctx->built_in_kernels[i] = cl_program_create_kernel(ctx->built_in_prgs, kernel, NULL);
- }
- kernel = strtok_r((char*)saveptr , delims, &saveptr );
- }
-
- cl_free(local_kernel_names);
+ built_in_prgs->is_built = 1;
exit:
if (errcode_ret)
*errcode_ret = err;
- return ctx->built_in_prgs;
+ return built_in_prgs;
error:
goto exit;
--
2.1.4
More information about the Beignet
mailing list