OmniSciDB
a5dc49c757
|
#include <ResultSetReductionJIT.h>
Public Member Functions | |
GpuReductionHelperJIT (const QueryMemoryDescriptor &query_mem_desc, const std::vector< TargetInfo > &targets, const std::vector< int64_t > &target_init_vals, const size_t executor_id) | |
ReductionCode | codegen () const override |
Public Member Functions inherited from ResultSetReductionJIT | |
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 ()=default |
Private Attributes | |
const QueryMemoryDescriptor & | query_mem_desc_ |
Additional Inherited Members | |
Protected Member Functions inherited from ResultSetReductionJIT | |
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 inherited from ResultSetReductionJIT | |
size_t | executor_id_ |
This is a helper class for performing GPU reduction code. It uses the same functions that ResultSetReductionJIT generates so that it can be reused and help the reduction procedure within GPU.
Definition at line 150 of file ResultSetReductionJIT.h.
|
inline |
Definition at line 152 of file ResultSetReductionJIT.h.
References CHECK, QueryMemoryDescriptor::didOutputColumnar(), QueryMemoryDescriptor::getQueryDescriptionType(), heavyai::GroupByPerfectHash, QueryMemoryDescriptor::hasKeylessHash(), and query_mem_desc_.
|
overridevirtual |
generates code for perfect hash group by reduction: the following functions are internally created: isEmpty, reduceOneEntryNoCollision (reduce for perfect hash), reduceOneEntryNoCollissionsIdx(reduce one slot for perfect hash), and reduceLoop (the outer loop).
Reimplemented from ResultSetReductionJIT.
Definition at line 1327 of file ResultSetReductionJIT.cpp.
References AUTOMATIC_IR_METADATA, ReductionCode::cgen_state, CHECK, anonymous_namespace{ResultSetReductionJIT.cpp}::create_llvm_function(), ResultSetReductionJIT::executor_id_, f(), Executor::getExecutor(), QueryMemoryDescriptor::getQueryDescriptionType(), heavyai::GroupByPerfectHash, ReductionCode::ir_is_empty, ReductionCode::ir_reduce_loop, ReductionCode::ir_reduce_one_entry, ReductionCode::ir_reduce_one_entry_idx, ResultSetReductionJIT::isEmpty(), ReductionCode::module, ResultSetReductionJIT::query_mem_desc_, ResultSetReductionJIT::reduceLoop(), ResultSetReductionJIT::reduceOneEntryNoCollisions(), ResultSetReductionJIT::reduceOneEntryNoCollisionsIdx(), CgenState::set_module_shallow_copy(), anonymous_namespace{ResultSetReductionJIT.cpp}::setup_functions_ir(), and translate_function().
|
private |
Definition at line 172 of file ResultSetReductionJIT.h.
Referenced by GpuReductionHelperJIT().