Skip to content

Commit

Permalink
remove unused flags, and remove confusable '*_flags' field
Browse files Browse the repository at this point in the history
  • Loading branch information
kaigai committed Apr 8, 2024
1 parent d3e6196 commit 28e3728
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 40 deletions.
29 changes: 14 additions & 15 deletions src/codegen.c
Original file line number Diff line number Diff line change
Expand Up @@ -235,10 +235,9 @@ build_composite_devtype_info(TypeCacheEntry *tcache, const char *ext_name)
devtype_info **subtypes = alloca(sizeof(devtype_info *) * tupdesc->natts);
devtype_info *dtype;
MemoryContext oldcxt;
uint32_t extra_flags = DEVKIND__ANY;
int j;
uint32_t subtype_flags = DEVKIND__ANY;

for (j=0; j < tupdesc->natts; j++)
for (int j=0; j < tupdesc->natts; j++)
{
Form_pg_attribute attr = TupleDescAttr(tupdesc, j);

Expand All @@ -248,7 +247,7 @@ build_composite_devtype_info(TypeCacheEntry *tcache, const char *ext_name)
ReleaseTupleDesc(tupdesc);
return NULL;
}
extra_flags &= dtype->type_flags;
subtype_flags &= dtype->type_flags;
subtypes[j] = dtype;
}
ReleaseTupleDesc(tupdesc);
Expand All @@ -260,7 +259,7 @@ build_composite_devtype_info(TypeCacheEntry *tcache, const char *ext_name)
dtype->type_extension = pstrdup(ext_name);
dtype->type_code = TypeOpCode__composite;
dtype->type_oid = tcache->type_id;
dtype->type_flags = extra_flags | DEVTYPE__USE_KVARS_SLOTBUF;
dtype->type_flags = subtype_flags;
dtype->type_length = tcache->typlen;
dtype->type_align = typealign_get_width(tcache->typalign);
dtype->type_byval = tcache->typbyval;
Expand Down Expand Up @@ -301,7 +300,7 @@ build_array_devtype_info(TypeCacheEntry *tcache, const char *ext_name)
dtype->type_extension = pstrdup(ext_name);
dtype->type_code = TypeOpCode__array;
dtype->type_oid = tcache->type_id;
dtype->type_flags = elem->type_flags | DEVTYPE__USE_KVARS_SLOTBUF;
dtype->type_flags = elem->type_flags;
dtype->type_length = tcache->typlen;
dtype->type_align = typealign_get_width(tcache->typalign);
dtype->type_byval = tcache->typbyval;
Expand Down Expand Up @@ -1530,7 +1529,7 @@ create_codegen_context(PlannerInfo *root,
pp_info->num_rels + 2]));
context->elevel = ERROR;
context->root = root;
context->required_flags = (pp_info->xpu_task_flags & DEVKIND__ANY);
context->xpu_task_flags = pp_info->xpu_task_flags;
context->kvecs_ndims = pp_info->num_rels + 1;
context->kvecs_usage = 0;
context->scan_relid = pp_info->scan_relid;
Expand Down Expand Up @@ -1689,7 +1688,7 @@ codegen_var_expression(codegen_context *context,
* on the next depth, and private values are not visible to
* others.
*/
if ((context->extra_flags & DEVKIND__NVIDIA_GPU) != 0 &&
if ((context->xpu_task_flags & DEVKIND__NVIDIA_GPU) != 0 &&
kvdef->kv_offset >= 0 &&
kvdef->kv_depth != curr_depth)
kexp.u.v.var_offset = kvdef->kv_offset;
Expand Down Expand Up @@ -1717,7 +1716,7 @@ __codegen_func_expression(codegen_context *context,

dfunc = pgstrom_devfunc_lookup(func_oid, func_args, func_collid);
if (!dfunc ||
(dfunc->func_flags & context->required_flags) != context->required_flags)
(dfunc->func_flags & context->xpu_task_flags & DEVKIND__ANY) == 0)
__Elog("function %s is not supported on the target device",
format_procedure(func_oid));
dtype = dfunc->func_rettype;
Expand Down Expand Up @@ -3014,7 +3013,7 @@ codegen_build_packed_kvars_move(codegen_context *context, pgstromPlanInfo *pp_in
int gist_depth = context->num_rels + 1;

/* Only NVIDIA-GPU has kvec-buffer for MoveVars across depth */
if ((context->extra_flags & DEVKIND__NVIDIA_GPU) == 0)
if ((context->xpu_task_flags & DEVKIND__NVIDIA_GPU) == 0)
return;

sz = MAXALIGN(offsetof(kern_expression,
Expand Down Expand Up @@ -3984,7 +3983,7 @@ codegen_build_groupby_actions(codegen_context *context,
*/
bool
pgstrom_xpu_expression(Expr *expr,
uint32_t required_xpu_flags,
uint32_t xpu_task_flags,
Index scan_relid,
List *inner_target_list,
int *p_devcost)
Expand All @@ -3995,13 +3994,13 @@ pgstrom_xpu_expression(Expr *expr,
int depth;
ListCell *lc;

Assert((required_xpu_flags & DEVKIND__ANY) == DEVKIND__NVIDIA_GPU ||
(required_xpu_flags & DEVKIND__ANY) == DEVKIND__NVIDIA_DPU);
Assert((xpu_task_flags & DEVKIND__ANY) == DEVKIND__NVIDIA_GPU ||
(xpu_task_flags & DEVKIND__ANY) == DEVKIND__NVIDIA_DPU);
context = alloca(sz);
memset(context, 0, sz);
context->elevel = DEBUG2;
context->top_expr = expr;
context->required_flags = (required_xpu_flags & DEVKIND__ANY);
context->xpu_task_flags = xpu_task_flags;
context->scan_relid = scan_relid;
context->num_rels = num_rels;
depth = 1;
Expand Down Expand Up @@ -4029,7 +4028,7 @@ estimate_cuda_stack_size(codegen_context *context)
ListCell *lc;

/* only NVIDIA-GPU needs stack configuration */
if ((context->extra_flags & DEVKIND__NVIDIA_GPU) == 0)
if ((context->xpu_task_flags & DEVKIND__NVIDIA_GPU) == 0)
return 0;
/* minimum working area */
stack_sz = 3200;
Expand Down
10 changes: 6 additions & 4 deletions src/gpu_join.c
Original file line number Diff line number Diff line change
Expand Up @@ -1459,7 +1459,7 @@ pgstrom_build_join_tlist_dev(codegen_context *context,
if (contain_var_clause((Node *)tle->expr))
tlist_dev = __pgstrom_build_tlist_dev_expr(tlist_dev,
(Node *)tle->expr,
context->required_flags,
context->xpu_task_flags,
context->scan_relid,
inner_target_list);
}
Expand All @@ -1485,7 +1485,7 @@ pgstrom_build_join_tlist_dev(codegen_context *context,
if (contain_var_clause(node))
tlist_dev = __pgstrom_build_tlist_dev_expr(tlist_dev,
node,
context->required_flags,
context->xpu_task_flags,
context->scan_relid,
inner_target_list);
}
Expand Down Expand Up @@ -1646,9 +1646,11 @@ PlanXpuJoinPathCommon(PlannerInfo *root,
codegen_build_packed_kvars_load(context, pp_info);
/* MoveVars for each depth (only GPUs) */
codegen_build_packed_kvars_move(context, pp_info);

/* xpu_task_flags should not be cleared in codege.c */
Assert((context->xpu_task_flags &
pp_info->xpu_task_flags) == pp_info->xpu_task_flags);
pp_info->kvars_deflist = context->kvars_deflist;
pp_info->extra_flags = context->extra_flags;
pp_info->xpu_task_flags = context->xpu_task_flags;
pp_info->extra_bufsz = context->extra_bufsz;
pp_info->used_params = context->used_params;
pp_info->outer_refs = outer_refs;
Expand Down
6 changes: 4 additions & 2 deletions src/gpu_scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -800,9 +800,11 @@ PlanXpuScanPathCommon(PlannerInfo *root,
codegen_build_packed_kvars_load(context, pp_info);
/* VarMoves for each depth (only GPUs) */
codegen_build_packed_kvars_move(context, pp_info);

/* xpu_task_flags should not be cleared in codege.c */
Assert((context->xpu_task_flags &
pp_info->xpu_task_flags) == pp_info->xpu_task_flags);
pp_info->kvars_deflist = context->kvars_deflist;
pp_info->extra_flags = context->extra_flags;
pp_info->xpu_task_flags = context->xpu_task_flags;
pp_info->extra_bufsz = context->extra_bufsz;
pp_info->used_params = context->used_params;
pp_info->cuda_stack_size = estimate_cuda_stack_size(context);
Expand Down
2 changes: 0 additions & 2 deletions src/misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,6 @@ form_pgstrom_plan_info(CustomScan *cscan, pgstromPlanInfo *pp_info)
exprs = lappend(exprs, kvars_deflist_exprs);
privs = lappend(privs, makeInteger(pp_info->kvecs_bufsz));
privs = lappend(privs, makeInteger(pp_info->kvecs_ndims));
privs = lappend(privs, makeInteger(pp_info->extra_flags));
privs = lappend(privs, makeInteger(pp_info->extra_bufsz));
privs = lappend(privs, makeInteger(pp_info->cuda_stack_size));
privs = lappend(privs, pp_info->fallback_tlist);
Expand Down Expand Up @@ -272,7 +271,6 @@ deform_pgstrom_plan_info(CustomScan *cscan)
}
pp_data.kvecs_bufsz = intVal(list_nth(privs, pindex++));
pp_data.kvecs_ndims = intVal(list_nth(privs, pindex++));
pp_data.extra_flags = intVal(list_nth(privs, pindex++));
pp_data.extra_bufsz = intVal(list_nth(privs, pindex++));
pp_data.cuda_stack_size = intVal(list_nth(privs, pindex++));
pp_data.fallback_tlist = list_nth(privs, pindex++);
Expand Down
13 changes: 1 addition & 12 deletions src/pg_strom.h
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,6 @@ typedef struct
List *kvars_deflist;
uint32_t kvecs_bufsz; /* unit size of vectorized kernel values */
uint32_t kvecs_ndims;
uint32_t extra_flags;
uint32_t extra_bufsz;
uint32_t cuda_stack_size;/* estimated stack consumption */
/* fallback projection */
Expand Down Expand Up @@ -571,8 +570,7 @@ typedef struct
Expr *top_expr;
PlannerInfo *root;
List *used_params;
uint32_t required_flags;
uint32_t extra_flags;
uint32_t xpu_task_flags;
uint32_t extra_bufsz;
uint32_t device_cost;
uint32_t kexp_flags;
Expand Down Expand Up @@ -619,15 +617,6 @@ extern void codegen_build_packed_kvars_load(codegen_context *context,
pgstromPlanInfo *pp_info);
extern void codegen_build_packed_kvars_move(codegen_context *context,
pgstromPlanInfo *pp_info);

extern void codegen_build_packed_xpucode(bytea **p_xpucode,
List *exprs_list,
bool inject_hash_value,
List *input_rels_tlist,
uint32_t *p_extra_flags,
uint32_t *p_extra_bufsz,
uint32_t *p_kvars_nslots,
List **p_used_params);
extern bool pgstrom_xpu_expression(Expr *expr,
uint32_t required_xpu_flags,
Index scan_relid,
Expand Down
2 changes: 0 additions & 2 deletions src/xpu_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -1976,8 +1976,6 @@ typedef struct
* no locale configuration */
#define DEVKERN__SESSION_TIMEZONE 0x00000200U /* Device function needs session
* timezone */
#define DEVTYPE__USE_KVARS_SLOTBUF 0x00000400U /* Device type uses extra buffer on
* the kvars-slot for LoadVars */
#define DEVTYPE__HAS_COMPARE 0x00000800U /* Device type has compare handler */
#define DEVTASK__SCAN 0x10000000U /* xPU-Scan */
#define DEVTASK__JOIN 0x20000000U /* xPU-Join */
Expand Down
6 changes: 3 additions & 3 deletions src/xpu_opcodes.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ TYPE_OPCODE(int8, NULL, DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(float2, "pg_strom", DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(float4, NULL, DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(float8, NULL, DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(numeric,NULL, DEVTYPE__HAS_COMPARE | DEVTYPE__USE_KVARS_SLOTBUF)
TYPE_OPCODE(numeric,NULL, DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(bytea, NULL, DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(text, NULL, DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(bpchar, NULL, DEVTYPE__HAS_COMPARE)
Expand All @@ -33,13 +33,13 @@ TYPE_OPCODE(time, NULL, DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(timetz, NULL, 0)
TYPE_OPCODE(timestamp, NULL, DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(timestamptz, NULL, DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(interval, NULL, DEVTYPE__HAS_COMPARE | DEVTYPE__USE_KVARS_SLOTBUF)
TYPE_OPCODE(interval, NULL, DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(money, NULL, DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(uuid, NULL, DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(macaddr, NULL, DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(inet, NULL, DEVTYPE__HAS_COMPARE)
TYPE_OPCODE(jsonb, NULL, 0)
TYPE_OPCODE(geometry, "postgis", DEVTYPE__USE_KVARS_SLOTBUF)
TYPE_OPCODE(geometry, "postgis", 0)
TYPE_OPCODE(box2df, "postgis", 0)
TYPE_OPCODE(cube, "cube", 0)

Expand Down

0 comments on commit 28e3728

Please sign in to comment.