39 : target_expr(target_expr)
40 , target_info(target_info)
41 , base_slot_index(base_slot_index)
42 , target_idx(target_idx)
43 , is_group_by(is_group_by) {}
50 const std::tuple<llvm::Value*, llvm::Value*>& agg_out_ptr_w_idx,
51 const std::vector<llvm::Value*>& agg_out_vec,
52 llvm::Value* output_buffer_byte_stream,
53 llvm::Value* out_row_idx,
61 const std::vector<llvm::Value*>& target_lvs,
62 const std::tuple<llvm::Value*, llvm::Value*>& agg_out_ptr_w_idx,
63 const std::vector<llvm::Value*>& agg_out_vec,
64 llvm::Value* output_buffer_byte_stream,
65 llvm::Value* out_row_idx,
66 int32_t slot_index)
const;
80 : query_mem_desc(query_mem_desc)
81 , ra_exe_unit(ra_exe_unit)
82 , is_group_by(is_group_by) {}
85 const Executor* executor,
93 const std::tuple<llvm::Value*, llvm::Value*>& agg_out_ptr_w_idx,
94 const std::vector<llvm::Value*>& agg_out_vec,
95 llvm::Value* output_buffer_byte_stream,
96 llvm::Value* out_row_idx,
104 const std::tuple<llvm::Value*, llvm::Value*>& agg_out_ptr_w_idx,
105 const std::vector<llvm::Value*>& agg_out_vec,
106 llvm::Value* output_buffer_byte_stream,
107 llvm::Value* out_row_idx,
115 const std::tuple<llvm::Value*, llvm::Value*>& agg_out_ptr_w_idx,
116 const std::vector<llvm::Value*>& agg_out_vec,
117 llvm::Value* output_buffer_byte_stream,
118 llvm::Value* out_row_idx,
126 const std::tuple<llvm::Value*, llvm::Value*>& agg_out_ptr_w_idx,
127 const std::vector<llvm::Value*>& agg_out_vec,
128 llvm::Value* output_buffer_byte_stream,
129 llvm::Value* out_row_idx,
133 std::vector<llvm::Value*>& target_lvs,
135 const int64_t init_val)
const;
Defines data structures for the semantic analysis phase of query processing.
const RelAlgExecutionUnit & ra_exe_unit
void codegenAggregate(GroupByAndAggregate *group_by_and_agg, Executor *executor, const QueryMemoryDescriptor &query_mem_desc, const CompilationOptions &co, const std::vector< llvm::Value * > &target_lvs, const std::tuple< llvm::Value *, llvm::Value * > &agg_out_ptr_w_idx, const std::vector< llvm::Value * > &agg_out_vec, llvm::Value *output_buffer_byte_stream, llvm::Value *out_row_idx, int32_t slot_index) const
void codegenSampleExpressions(GroupByAndAggregate *group_by_and_agg, Executor *executor, const QueryMemoryDescriptor &query_mem_desc, const CompilationOptions &co, const std::tuple< llvm::Value *, llvm::Value * > &agg_out_ptr_w_idx, const std::vector< llvm::Value * > &agg_out_vec, llvm::Value *output_buffer_byte_stream, llvm::Value *out_row_idx, GroupByAndAggregate::DiamondCodegen &diamond_codegen) const
TargetExprCodegenBuilder(const QueryMemoryDescriptor &query_mem_desc, const RelAlgExecutionUnit &ra_exe_unit, const bool is_group_by)
void codegen(GroupByAndAggregate *group_by_and_agg, Executor *executor, const QueryMemoryDescriptor &query_mem_desc, const CompilationOptions &co, const GpuSharedMemoryContext &gpu_smem_context, const std::tuple< llvm::Value *, llvm::Value * > &agg_out_ptr_w_idx, const std::vector< llvm::Value * > &agg_out_vec, llvm::Value *output_buffer_byte_stream, llvm::Value *out_row_idx, GroupByAndAggregate::DiamondCodegen &diamond_codegen, GroupByAndAggregate::DiamondCodegen *sample_cfg=nullptr) const
void codegen(GroupByAndAggregate *group_by_and_agg, Executor *executor, const QueryMemoryDescriptor &query_mem_desc, const CompilationOptions &co, const GpuSharedMemoryContext &gpu_smem_context, const std::tuple< llvm::Value *, llvm::Value * > &agg_out_ptr_w_idx, const std::vector< llvm::Value * > &agg_out_vec, llvm::Value *output_buffer_byte_stream, llvm::Value *out_row_idx, GroupByAndAggregate::DiamondCodegen &diamond_codegen) const
std::vector< TargetExprCodegen > target_exprs_to_codegen
size_t target_index_counter
const QueryMemoryDescriptor & query_mem_desc
llvm::Value * codegenSlotEmptyKey(llvm::Value *agg_col_ptr, std::vector< llvm::Value * > &target_lvs, Executor *executor, const int64_t init_val) const
void codegenSingleSlotSampleExpression(GroupByAndAggregate *group_by_and_agg, Executor *executor, const QueryMemoryDescriptor &query_mem_desc, const CompilationOptions &co, const std::tuple< llvm::Value *, llvm::Value * > &agg_out_ptr_w_idx, const std::vector< llvm::Value * > &agg_out_vec, llvm::Value *output_buffer_byte_stream, llvm::Value *out_row_idx, GroupByAndAggregate::DiamondCodegen &diamond_codegen) const
size_t slot_index_counter
std::vector< TargetExprCodegen > sample_exprs_to_codegen
const Analyzer::Expr * target_expr
Descriptor for the result set buffer layout.
void codegenMultiSlotSampleExpressions(GroupByAndAggregate *group_by_and_agg, Executor *executor, const QueryMemoryDescriptor &query_mem_desc, const CompilationOptions &co, const std::tuple< llvm::Value *, llvm::Value * > &agg_out_ptr_w_idx, const std::vector< llvm::Value * > &agg_out_vec, llvm::Value *output_buffer_byte_stream, llvm::Value *out_row_idx, GroupByAndAggregate::DiamondCodegen &diamond_codegen) const
TargetExprCodegen(const Analyzer::Expr *target_expr, TargetInfo &target_info, const int32_t base_slot_index, const size_t target_idx, const bool is_group_by)
void operator()(const Analyzer::Expr *target_expr, const Executor *executor, const CompilationOptions &co)