Class ResultSetReductionJIT

class ResultSetReductionJIT

Subclassed by GpuReductionHelperJIT

Public Functions

ResultSetReductionJIT(const QueryMemoryDescriptor &query_mem_desc, const std::vector<TargetInfo> &targets, const std::vector<int64_t> &target_init_vals, const size_t executor_id)
virtual ~ResultSetReductionJIT()
ReductionCode codegen() const

Protected Functions

void isEmpty(const ReductionCode &reduction_code) const
void reduceOneEntryNoCollisions(const ReductionCode &reduction_code) const
void reduceOneEntryNoCollisionsIdx(const ReductionCode &reduction_code) const
void reduceLoop(const ReductionCode &reduction_code) const

Protected Attributes

size_t executor_id_

Private Functions

void reduceOneEntryTargetsNoCollisions(Function *ir_reduce_one_entry, Value *this_targets_start_ptr, Value *that_targets_start_ptr) const
void reduceOneEntryBaseline(const ReductionCode &reduction_code) const
void reduceOneEntryBaselineIdx(const ReductionCode &reduction_code) const
void reduceOneSlot(Value *this_ptr1, Value *this_ptr2, Value *that_ptr1, Value *that_ptr2, const TargetInfo &target_info, const size_t target_logical_idx, const size_t target_slot_idx, const size_t init_agg_val_idx, const size_t first_slot_idx_for_target, Function *ir_reduce_one_entry) const
void reduceOneAggregateSlot(Value *this_ptr1, Value *this_ptr2, Value *that_ptr1, Value *that_ptr2, const TargetInfo &target_info, const size_t target_logical_idx, const size_t target_slot_idx, const int64_t init_val, const int8_t chosen_bytes, Function *ir_reduce_one_entry) const
void reduceOneCountDistinctSlot(Value *this_ptr1, Value *that_ptr1, const size_t target_logical_idx, Function *ir_reduce_one_entry) const
void reduceOneApproxQuantileSlot(Value *this_ptr1, Value *that_ptr1, const size_t target_logical_idx, Function *ir_reduce_one_entry) const
void finalizeReductionCode(ReductionCode &reduction_code, const llvm::Function *ir_is_empty, const llvm::Function *ir_reduce_one_entry, const llvm::Function *ir_reduce_one_entry_idx, const CodeCacheKey &key) const
std::string cacheKey() const

Private Members

const QueryMemoryDescriptor query_mem_desc_
const std::vector<TargetInfo> targets_
const std::vector<int64_t> target_init_vals_