OmniSciDB
a5dc49c757
|
#include "ResultSetReductionCodegen.h"
#include "IRCodegenUtils.h"
#include "LoopControlFlow/JoinLoop.h"
#include "ResultSetReductionJIT.h"
#include "ResultSetReductionOps.h"
#include <llvm/IR/Instructions.h>
Go to the source code of this file.
Namespaces | |
anonymous_namespace{ResultSetReductionCodegen.cpp} | |
Functions | |
llvm::Type * | llvm_type (const Type type, llvm::LLVMContext &ctx) |
llvm::ICmpInst::Predicate | anonymous_namespace{ResultSetReductionCodegen.cpp}::llvm_predicate (const ICmp::Predicate predicate) |
llvm::BinaryOperator::BinaryOps | anonymous_namespace{ResultSetReductionCodegen.cpp}::llvm_binary_op (const BinaryOperator::BinaryOp op) |
llvm::Instruction::CastOps | anonymous_namespace{ResultSetReductionCodegen.cpp}::llvm_cast_op (const Cast::CastOp op) |
void | anonymous_namespace{ResultSetReductionCodegen.cpp}::return_early (llvm::Value *cond, const ReductionCode &reduction_code, llvm::Function *func, llvm::Value *error_code) |
llvm::Value * | anonymous_namespace{ResultSetReductionCodegen.cpp}::mapped_value (const Value *val, const std::unordered_map< const Value *, llvm::Value * > &m) |
llvm::Function * | anonymous_namespace{ResultSetReductionCodegen.cpp}::mapped_function (const Function *function, const std::unordered_map< const Function *, llvm::Function * > &f) |
std::vector< llvm::Value * > | anonymous_namespace{ResultSetReductionCodegen.cpp}::llvm_args (const std::vector< const Value * > args, const std::unordered_map< const Value *, llvm::Value * > &m) |
void | anonymous_namespace{ResultSetReductionCodegen.cpp}::translate_for (const For *for_loop, Function *ir_reduce_loop, const ReductionCode &reduction_code, std::unordered_map< const Value *, llvm::Value * > &m, const std::unordered_map< const Function *, llvm::Function * > &f) |
void | anonymous_namespace{ResultSetReductionCodegen.cpp}::translate_body (const std::vector< std::unique_ptr< Instruction >> &body, const Function *function, llvm::Function *llvm_function, const ReductionCode &reduction_code, std::unordered_map< const Value *, llvm::Value * > &m, const std::unordered_map< const Function *, llvm::Function * > &f) |
void | anonymous_namespace{ResultSetReductionCodegen.cpp}::create_entry_block (llvm::Function *function, CgenState *cgen_state) |
void | translate_function (const Function *function, llvm::Function *llvm_function, const ReductionCode &reduction_code, const std::unordered_map< const Function *, llvm::Function * > &f) |
llvm::Type* llvm_type | ( | const Type | type, |
llvm::LLVMContext & | ctx | ||
) |
Definition at line 26 of file ResultSetReductionCodegen.cpp.
References Double, DoublePtr, logger::FATAL, Float, FloatPtr, get_fp_type(), get_int_type(), Int1, Int32, Int32Ptr, Int64, Int64Ptr, Int64PtrPtr, Int8, Int8Ptr, LOG, run_benchmark_import::type, UNREACHABLE, Void, and VoidPtr.
Referenced by anonymous_namespace{ResultSetReductionJIT.cpp}::create_llvm_function(), StubGenerator::generateStub(), and anonymous_namespace{ResultSetReductionCodegen.cpp}::translate_body().
void translate_function | ( | const Function * | function, |
llvm::Function * | llvm_function, | ||
const ReductionCode & | reduction_code, | ||
const std::unordered_map< const Function *, llvm::Function * > & | f | ||
) |
Definition at line 366 of file ResultSetReductionCodegen.cpp.
References AUTOMATIC_IR_METADATA, ReductionCode::cgen_state, CHECK, anonymous_namespace{ResultSetReductionCodegen.cpp}::create_entry_block(), Double, f(), logger::FATAL, Float, Int32, Int64, Int8, LOG, anonymous_namespace{ResultSetReductionCodegen.cpp}::translate_body(), and verify_function_ir().
Referenced by ResultSetReductionJIT::codegen(), and GpuReductionHelperJIT::codegen().