OmniSciDB
a5dc49c757
|
#include <CodeGenerator.h>
Classes | |
struct | ArgNullcheckBBs |
struct | ExecutorRequired |
struct | GPUTarget |
struct | NullCheckCodegen |
Public Member Functions | |
CodeGenerator (Executor *executor) | |
CodeGenerator (CgenState *cgen_state, PlanState *plan_state) | |
std::vector< llvm::Value * > | codegen (const Analyzer::Expr *, const bool fetch_columns, const CompilationOptions &) |
llvm::Value * | codegenPerRowStringOper (const Analyzer::StringOper *string_oper, const CompilationOptions &co) |
llvm::Value * | codegenPseudoStringOper (const Analyzer::ColumnVar *, const std::vector< StringOps_Namespace::StringOpInfo > &string_op_infos, const CompilationOptions &) |
std::vector< llvm::Value * > | codegenHoistedConstants (const std::vector< const Analyzer::Constant * > &constants, const EncodingType enc_type, const shared::StringDictKey &dict_id) |
llvm::Value * | codegenCastBetweenIntTypes (llvm::Value *operand_lv, const SQLTypeInfo &operand_ti, const SQLTypeInfo &ti, bool upscale=true) |
void | codegenCastBetweenIntTypesOverflowChecks (llvm::Value *operand_lv, const SQLTypeInfo &operand_ti, const SQLTypeInfo &ti, const int64_t scale) |
llvm::Value * | posArg (const Analyzer::Expr *) const |
llvm::Value * | toBool (llvm::Value *) |
llvm::Value * | castArrayPointer (llvm::Value *ptr, const SQLTypeInfo &elem_ti) |
llvm::Value * | codegenCastBetweenTimestamps (llvm::Value *ts_lv, const SQLTypeInfo &operand_dimen, const SQLTypeInfo &target_dimen, const bool nullable) |
llvm::Value * | codegenWindowPosition (const WindowFunctionContext *window_func_context, llvm::Value *pos_arg) |
Static Public Member Functions | |
static llvm::ConstantInt * | codegenIntConst (const Analyzer::Constant *constant, CgenState *cgen_state) |
static std::unordered_set < llvm::Function * > | markDeadRuntimeFuncs (llvm::Module &module, const std::vector< llvm::Function * > &roots, const std::vector< llvm::Function * > &leaves) |
static ExecutionEngineWrapper | generateNativeCPUCode (llvm::Function *func, const std::unordered_set< llvm::Function * > &live_funcs, const CompilationOptions &co) |
static std::string | generatePTX (const std::string &cuda_llir, llvm::TargetMachine *nvptx_target_machine, llvm::LLVMContext &context) |
static std::unique_ptr < llvm::TargetMachine > | initializeNVPTXBackend (const CudaMgr_Namespace::NvidiaDeviceArch arch) |
static bool | alwaysCloneRuntimeFunction (const llvm::Function *func) |
static void | linkModuleWithLibdevice (Executor *executor, llvm::Module &module, llvm::PassManagerBuilder &pass_manager_builder, const GPUTarget &gpu_target) |
static std::shared_ptr < GpuCompilationContext > | generateNativeGPUCode (Executor *executor, llvm::Function *func, llvm::Function *wrapper_func, const std::unordered_set< llvm::Function * > &live_funcs, const bool is_gpu_smem_used, const CompilationOptions &co, const GPUTarget &gpu_target) |
static void | link_udf_module (const std::unique_ptr< llvm::Module > &udf_module, llvm::Module &module, CgenState *cgen_state, llvm::Linker::Flags flags=llvm::Linker::Flags::None) |
static bool | prioritizeQuals (const RelAlgExecutionUnit &ra_exe_unit, std::vector< Analyzer::Expr * > &primary_quals, std::vector< Analyzer::Expr * > &deferred_quals, const PlanState::HoistedFiltersSet &hoisted_quals) |
static ArrayLoadCodegen | codegenGeoArrayLoadAndNullcheck (llvm::Value *byte_stream, llvm::Value *pos, const SQLTypeInfo &ti, CgenState *cgen_state) |
Protected Member Functions | |
Executor * | executor () const |
Protected Attributes | |
CgenState * | cgen_state_ |
PlanState * | plan_state_ |
Private Member Functions | |
std::vector< llvm::Value * > | codegen (const Analyzer::Constant *, const EncodingType enc_type, const shared::StringDictKey &dict_id, const CompilationOptions &) |
virtual std::vector < llvm::Value * > | codegenColumn (const Analyzer::ColumnVar *, const bool fetch_column, const CompilationOptions &) |
llvm::Value * | codegenArith (const Analyzer::BinOper *, const CompilationOptions &) |
llvm::Value * | codegenUMinus (const Analyzer::UOper *, const CompilationOptions &) |
llvm::Value * | codegenCmp (const Analyzer::BinOper *, const CompilationOptions &) |
llvm::Value * | codegenCmp (const SQLOps, const SQLQualifier, std::vector< llvm::Value * >, const SQLTypeInfo &, const Analyzer::Expr *, const CompilationOptions &) |
llvm::Value * | codegenIsNull (const Analyzer::UOper *, const CompilationOptions &) |
llvm::Value * | codegenIsNullNumber (llvm::Value *, const SQLTypeInfo &) |
llvm::Value * | codegenLogical (const Analyzer::BinOper *, const CompilationOptions &) |
llvm::Value * | codegenLogical (const Analyzer::UOper *, const CompilationOptions &) |
llvm::Value * | codegenCast (const Analyzer::UOper *, const CompilationOptions &) |
llvm::Value * | codegenCast (llvm::Value *operand_lv, const SQLTypeInfo &operand_ti, const SQLTypeInfo &ti, const bool operand_is_const, const CompilationOptions &co) |
llvm::Value * | codegen (const Analyzer::InValues *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::InIntegerSet *expr, const CompilationOptions &co) |
std::vector< llvm::Value * > | codegen (const Analyzer::CaseExpr *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::ExtractExpr *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::DateaddExpr *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::DatediffExpr *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::DatetruncExpr *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::CharLengthExpr *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::KeyForStringExpr *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::SampleRatioExpr *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::WidthBucketExpr *, const CompilationOptions &) |
llvm::Value * | codegenConstantWidthBucketExpr (const Analyzer::WidthBucketExpr *, const CompilationOptions &) |
llvm::Value * | codegenWidthBucketExpr (const Analyzer::WidthBucketExpr *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::MLPredictExpr *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::PCAProjectExpr *, const CompilationOptions &) |
llvm::Value * | codegenLinRegPredict (const Analyzer::MLPredictExpr *, const std::shared_ptr< AbstractMLModel > &model, const CompilationOptions &) |
llvm::Value * | codegenTreeRegPredict (const Analyzer::MLPredictExpr *, const std::shared_ptr< AbstractTreeModel > &tree_model, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::StringOper *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::LikeExpr *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::RegexpExpr *, const CompilationOptions &) |
llvm::Value * | codegenUnnest (const Analyzer::UOper *, const CompilationOptions &) |
llvm::Value * | codegenArrayAt (const Analyzer::BinOper *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::CardinalityExpr *, const CompilationOptions &) |
std::vector< llvm::Value * > | codegenArrayExpr (const Analyzer::ArrayExpr *, const CompilationOptions &) |
std::vector< llvm::Value * > | codegenGeoColumnVar (const Analyzer::GeoColumnVar *, const bool fetch_columns, const CompilationOptions &co) |
std::vector< llvm::Value * > | codegenGeoExpr (const Analyzer::GeoExpr *, const CompilationOptions &) |
std::vector< llvm::Value * > | codegenGeoConstant (const Analyzer::GeoConstant *, const CompilationOptions &) |
std::vector< llvm::Value * > | codegenGeoOperator (const Analyzer::GeoOperator *, const CompilationOptions &) |
std::vector< llvm::Value * > | codegenGeoUOper (const Analyzer::GeoUOper *, const CompilationOptions &) |
std::vector< llvm::Value * > | codegenGeoBinOper (const Analyzer::GeoBinOper *, const CompilationOptions &) |
std::vector< llvm::Value * > | codegenGeosPredicateCall (const std::string &, std::vector< llvm::Value * >, const CompilationOptions &) |
std::vector< llvm::Value * > | codegenGeosConstructorCall (const std::string &, std::vector< llvm::Value * >, llvm::Value *, const CompilationOptions &) |
std::vector< llvm::Value * > | codegenGeoArgs (const std::vector< std::shared_ptr< Analyzer::Expr >> &, const CompilationOptions &) |
llvm::Value * | codegenFunctionOper (const Analyzer::FunctionOper *, const CompilationOptions &) |
llvm::Value * | codegenFunctionOperWithCustomTypeHandling (const Analyzer::FunctionOperWithCustomTypeHandling *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::BinOper *, const CompilationOptions &) |
llvm::Value * | codegen (const Analyzer::UOper *, const CompilationOptions &) |
std::vector< llvm::Value * > | codegenHoistedConstantsLoads (const SQLTypeInfo &type_info, const EncodingType enc_type, const shared::StringDictKey &dict_id, const int16_t lit_off, const size_t lit_bytes) |
std::vector< llvm::Value * > | codegenHoistedConstantsPlaceholders (const SQLTypeInfo &type_info, const EncodingType enc_type, const int16_t lit_off, const std::vector< llvm::Value * > &literal_loads) |
std::vector< llvm::Value * > | codegenColVar (const Analyzer::ColumnVar *, const bool fetch_column, const bool update_query_plan, const CompilationOptions &) |
llvm::Value * | codegenFixedLengthColVar (const Analyzer::ColumnVar *col_var, llvm::Value *col_byte_stream, llvm::Value *pos_arg, const WindowFunctionContext *window_function_context=nullptr) |
llvm::Value * | codegenFixedLengthColVarInWindow (const Analyzer::ColumnVar *col_var, llvm::Value *col_byte_stream, llvm::Value *pos_arg, const CompilationOptions &co, const WindowFunctionContext *window_function_context=nullptr) |
std::vector< llvm::Value * > | codegenVariableLengthStringColVar (llvm::Value *col_byte_stream, llvm::Value *pos_arg) |
llvm::Value * | codegenRowId (const Analyzer::ColumnVar *col_var, const CompilationOptions &co) |
llvm::Value * | codgenAdjustFixedEncNull (llvm::Value *, const SQLTypeInfo &) |
std::vector< llvm::Value * > | codegenOuterJoinNullPlaceholder (const Analyzer::ColumnVar *col_var, const bool fetch_column, const CompilationOptions &co) |
llvm::Value * | codegenIntArith (const Analyzer::BinOper *, llvm::Value *, llvm::Value *, const CompilationOptions &) |
llvm::Value * | codegenFpArith (const Analyzer::BinOper *, llvm::Value *, llvm::Value *) |
llvm::Value * | codegenCastTimestampToTime (llvm::Value *ts_lv, const int dimen, const bool nullable) |
llvm::Value * | codegenCastTimestampToDate (llvm::Value *ts_lv, const int dimen, const bool nullable) |
llvm::Value * | codegenCastFromString (llvm::Value *operand_lv, const SQLTypeInfo &operand_ti, const SQLTypeInfo &ti, const bool operand_is_const, const CompilationOptions &co) |
llvm::Value * | codegenCastNonStringToString (llvm::Value *operand_lv, const SQLTypeInfo &operand_ti, const SQLTypeInfo &ti, const bool operand_is_const, const CompilationOptions &co) |
llvm::Value * | codegenCastToFp (llvm::Value *operand_lv, const SQLTypeInfo &operand_ti, const SQLTypeInfo &ti) |
llvm::Value * | codegenCastFromFp (llvm::Value *operand_lv, const SQLTypeInfo &operand_ti, const SQLTypeInfo &ti) |
llvm::Value * | codegenAdd (const Analyzer::BinOper *, llvm::Value *, llvm::Value *, const std::string &null_typename, const std::string &null_check_suffix, const SQLTypeInfo &, const CompilationOptions &) |
llvm::Value * | codegenSub (const Analyzer::BinOper *, llvm::Value *, llvm::Value *, const std::string &null_typename, const std::string &null_check_suffix, const SQLTypeInfo &, const CompilationOptions &) |
void | codegenSkipOverflowCheckForNull (llvm::Value *lhs_lv, llvm::Value *rhs_lv, llvm::BasicBlock *no_overflow_bb, const SQLTypeInfo &ti) |
llvm::Value * | codegenMul (const Analyzer::BinOper *, llvm::Value *, llvm::Value *, const std::string &null_typename, const std::string &null_check_suffix, const SQLTypeInfo &, const CompilationOptions &, bool downscale=true) |
llvm::Value * | codegenDiv (llvm::Value *, llvm::Value *, const std::string &null_typename, const std::string &null_check_suffix, const SQLTypeInfo &, bool upscale=true) |
llvm::Value * | codegenDeciDiv (const Analyzer::BinOper *, const CompilationOptions &) |
llvm::Value * | codegenMod (llvm::Value *, llvm::Value *, const std::string &null_typename, const std::string &null_check_suffix, const SQLTypeInfo &) |
llvm::Value * | codegenCase (const Analyzer::CaseExpr *, llvm::Type *case_llvm_type, const bool is_real_str, const CompilationOptions &) |
llvm::Value * | codegenExtractHighPrecisionTimestamps (llvm::Value *, const SQLTypeInfo &, const ExtractField &) |
llvm::Value * | codegenDateTruncHighPrecisionTimestamps (llvm::Value *, const SQLTypeInfo &, const DatetruncField &) |
llvm::Value * | codegenCmpDecimalConst (const SQLOps, const SQLQualifier, const Analyzer::Expr *, const SQLTypeInfo &, const Analyzer::Expr *, const CompilationOptions &) |
llvm::Value * | codegenBoundingBoxIntersect (const SQLOps, const SQLQualifier, const std::shared_ptr< Analyzer::Expr >, const std::shared_ptr< Analyzer::Expr >, const CompilationOptions &) |
llvm::Value * | codegenStrCmp (const SQLOps, const SQLQualifier, const std::shared_ptr< Analyzer::Expr >, const std::shared_ptr< Analyzer::Expr >, const CompilationOptions &) |
llvm::Value * | codegenQualifierCmp (const SQLOps, const SQLQualifier, std::vector< llvm::Value * >, const Analyzer::Expr *, const CompilationOptions &) |
llvm::Value * | codegenLogicalShortCircuit (const Analyzer::BinOper *, const CompilationOptions &) |
llvm::Value * | codegenDictLike (const std::shared_ptr< Analyzer::Expr > arg, const Analyzer::Constant *pattern, const bool ilike, const bool is_simple, const char escape_char, const CompilationOptions &) |
llvm::Value * | codegenDictStrCmp (const std::shared_ptr< Analyzer::Expr >, const std::shared_ptr< Analyzer::Expr >, const SQLOps, const CompilationOptions &co) |
llvm::Value * | codegenDictRegexp (const std::shared_ptr< Analyzer::Expr > arg, const Analyzer::Constant *pattern, const char escape_char, const CompilationOptions &) |
llvm::Value * | foundOuterJoinMatch (const size_t nesting_level) const |
llvm::Value * | resolveGroupedColumnReference (const Analyzer::ColumnVar *) |
llvm::Value * | colByteStream (const Analyzer::ColumnVar *col_var, const bool fetch_column, const bool hoist_literals) |
std::shared_ptr< const Analyzer::Expr > | hashJoinLhs (const Analyzer::ColumnVar *rhs) const |
std::shared_ptr< const Analyzer::ColumnVar > | hashJoinLhsTuple (const Analyzer::ColumnVar *rhs, const Analyzer::BinOper *tautological_eq) const |
bool | needCastForHashJoinLhs (const Analyzer::ColumnVar *rhs) const |
std::unique_ptr< InValuesBitmap > | createInValuesBitmap (const Analyzer::InValues *, const CompilationOptions &) |
bool | checkExpressionRanges (const Analyzer::UOper *, int64_t, int64_t) |
bool | checkExpressionRanges (const Analyzer::BinOper *, int64_t, int64_t) |
std::tuple< ArgNullcheckBBs, llvm::Value * > | beginArgsNullcheck (const Analyzer::FunctionOper *function_oper, const std::vector< llvm::Value * > &orig_arg_lvs) |
llvm::Value * | endArgsNullcheck (const ArgNullcheckBBs &, llvm::Value *, llvm::Value *, const Analyzer::FunctionOper *) |
llvm::Value * | codegenFunctionOperNullArg (const Analyzer::FunctionOper *, const std::vector< llvm::Value * > &) |
llvm::Value * | codegenCompression (const SQLTypeInfo &type_info) |
std::pair< llvm::Value *, llvm::Value * > | codegenArrayBuff (llvm::Value *chunk, llvm::Value *row_pos, SQLTypes array_type, bool cast_and_extend) |
void | codegenBufferArgs (const std::string &udf_func_name, size_t param_num, llvm::Value *buffer_buf, llvm::Value *buffer_size, llvm::Value *buffer_is_null, std::vector< llvm::Value * > &output_args) |
llvm::StructType * | createPointStructType (const std::string &udf_func_name, size_t param_num) |
void | codegenGeoPointArgs (const std::string &udf_func_name, size_t param_num, llvm::Value *point_buf, llvm::Value *point_size, llvm::Value *compression, llvm::Value *input_srid, llvm::Value *output_srid, std::vector< llvm::Value * > &output_args) |
llvm::StructType * | createMultiPointStructType (const std::string &udf_func_name, size_t param_num) |
void | codegenGeoMultiPointArgs (const std::string &udf_func_name, size_t param_num, llvm::Value *multi_point_buf, llvm::Value *multi_point_size, llvm::Value *compression, llvm::Value *input_srid, llvm::Value *output_srid, std::vector< llvm::Value * > &output_args) |
llvm::StructType * | createLineStringStructType (const std::string &udf_func_name, size_t param_num) |
void | codegenGeoLineStringArgs (const std::string &udf_func_name, size_t param_num, llvm::Value *line_string_buf, llvm::Value *line_string_size, llvm::Value *compression, llvm::Value *input_srid, llvm::Value *output_srid, std::vector< llvm::Value * > &output_args) |
llvm::StructType * | createMultiLineStringStructType (const std::string &udf_func_name, size_t param_num) |
void | codegenGeoMultiLineStringArgs (const std::string &udf_func_name, size_t param_num, llvm::Value *multi_linestring_coords, llvm::Value *multi_linestring_size, llvm::Value *linestring_sizes, llvm::Value *linestring_sizes_size, llvm::Value *compression, llvm::Value *input_srid, llvm::Value *output_srid, std::vector< llvm::Value * > &output_args) |
llvm::StructType * | createPolygonStructType (const std::string &udf_func_name, size_t param_num) |
void | codegenGeoPolygonArgs (const std::string &udf_func_name, size_t param_num, llvm::Value *polygon_buf, llvm::Value *polygon_size, llvm::Value *ring_sizes_buf, llvm::Value *num_rings, llvm::Value *compression, llvm::Value *input_srid, llvm::Value *output_srid, std::vector< llvm::Value * > &output_args) |
llvm::StructType * | createMultiPolygonStructType (const std::string &udf_func_name, size_t param_num) |
void | codegenGeoMultiPolygonArgs (const std::string &udf_func_name, size_t param_num, llvm::Value *polygon_coords, llvm::Value *polygon_coords_size, llvm::Value *ring_sizes_buf, llvm::Value *ring_sizes, llvm::Value *polygon_bounds, llvm::Value *polygon_bounds_sizes, llvm::Value *compression, llvm::Value *input_srid, llvm::Value *output_srid, std::vector< llvm::Value * > &output_args) |
std::vector< llvm::Value * > | codegenFunctionOperCastArgs (const Analyzer::FunctionOper *, const ExtensionFunction *, const std::vector< llvm::Value * > &, const std::vector< size_t > &, const std::unordered_map< llvm::Value *, llvm::Value * > &, const CompilationOptions &) |
llvm::StructType * | createStringViewStructType () |
llvm::Function * | getArithWithOverflowIntrinsic (const Analyzer::BinOper *bin_oper, llvm::Type *type) |
llvm::Value * | codegenBinOpWithOverflowForCPU (const Analyzer::BinOper *bin_oper, llvm::Value *lhs_lv, llvm::Value *rhs_lv, const std::string &null_check_suffix, const SQLTypeInfo &ti) |
std::pair< std::vector < llvm::Value * > , std::unique_ptr < CodeGenerator::NullCheckCodegen > > | codegenStringFetchAndEncode (const Analyzer::StringOper *expr, const CompilationOptions &co, const size_t arg_idx, const bool codegen_nullcheck) |
Private Attributes | |
Executor * | executor_ |
Static Private Attributes | |
static std::mutex | initialize_nvptx_mutex_ |
static std::mutex | initialize_cpu_backend_mutex_ |
Friends | |
class | GroupByAndAggregate |
Definition at line 29 of file CodeGenerator.h.
|
inline |
Definition at line 31 of file CodeGenerator.h.
Definition at line 38 of file CodeGenerator.h.
|
static |
Definition at line 1574 of file NativeCodegen.cpp.
Referenced by CgenState::set_module_shallow_copy().
|
private |
Definition at line 428 of file ExtensionsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, codegenFunctionOperNullArg(), CgenState::context_, CgenState::current_func_, anonymous_namespace{ExtensionsIR.cpp}::ext_func_call_requires_nullcheck(), anonymous_namespace{ExtensionsIR.cpp}::get_buffer_struct_type(), anonymous_namespace{ExtensionsIR.cpp}::get_llvm_type_from_sql_array_type(), Analyzer::Expr::get_type_info(), Analyzer::FunctionOper::getName(), and CgenState::ir_builder_.
Referenced by codegenFunctionOper(), and codegenFunctionOperWithCustomTypeHandling().
llvm::Value * CodeGenerator::castArrayPointer | ( | llvm::Value * | ptr, |
const SQLTypeInfo & | elem_ti | ||
) |
Definition at line 1748 of file ExtensionsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CgenState::context_, SQLTypeInfo::get_compression(), SQLTypeInfo::get_size(), SQLTypeInfo::get_type(), CgenState::ir_builder_, SQLTypeInfo::is_boolean(), SQLTypeInfo::is_integer(), SQLTypeInfo::is_string(), kDOUBLE, kENCODING_DICT, and kFLOAT.
Referenced by codegenFunctionOperCastArgs(), RangeJoinHashTable::codegenKey(), and BoundingBoxIntersectJoinHashTable::codegenKey().
|
private |
Definition at line 630 of file ArithmeticIR.cpp.
References CHECK, executor(), executor_, Analyzer::Expr::get_type_info(), getExpressionRange(), Integer, SQLTypeInfo::is_decimal(), ExpressionRange::makeInvalidRange(), plan_state_, and PlanState::query_infos_.
Referenced by codegenAdd(), codegenMul(), codegenSub(), and codegenUMinus().
|
private |
Definition at line 189 of file ArithmeticIR.cpp.
References CHECK, executor(), executor_, Analyzer::BinOper::get_left_operand(), Analyzer::BinOper::get_right_operand(), Analyzer::Expr::get_type_info(), getExpressionRange(), Integer, SQLTypeInfo::is_decimal(), anonymous_namespace{ArithmeticIR.cpp}::is_temporary_column(), ExpressionRange::makeInvalidRange(), plan_state_, and PlanState::query_infos_.
std::vector< llvm::Value * > CodeGenerator::codegen | ( | const Analyzer::Expr * | expr, |
const bool | fetch_columns, | ||
const CompilationOptions & | co | ||
) |
Definition at line 30 of file IRCodegen.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_NE, codegenArrayExpr(), codegenColumn(), codegenFunctionOper(), codegenFunctionOperWithCustomTypeHandling(), codegenGeoBinOper(), codegenGeoColumnVar(), codegenGeoExpr(), codegenGeoUOper(), CgenState::context_, createStringViewStructType(), executor_, get_int_type(), Analyzer::Expr::get_type_info(), CgenState::ir_builder_, kENCODING_DICT, kENCODING_NONE, kLINESTRING, kMULTILINESTRING, kMULTIPOINT, kMULTIPOLYGON, kNULLT, kPOINT, kPOLYGON, CgenState::llInt(), posArg(), and width_bucket_expr().
Referenced by Executor::buildHoistLeftHandSideFiltersCb(), Executor::buildIsDeletedCb(), Executor::buildJoinLoops(), TreeModelPredictionMgr::codegen(), codegen(), GroupByAndAggregate::codegenAggArg(), TargetExprCodegen::codegenAggregate(), codegenArith(), codegenArrayAt(), codegenArrayExpr(), codegenCase(), codegenCast(), codegenCmp(), codegenCmpDecimalConst(), HashJoin::codegenColOrStringOper(), codegenColVar(), codegenConstantWidthBucketExpr(), codegenDeciDiv(), codegenDictLike(), codegenDictRegexp(), codegenDictStrCmp(), Executor::codegenFrameBoundExpr(), codegenFunctionOper(), codegenFunctionOperWithCustomTypeHandling(), codegenGeoArgs(), codegenGeoColumnVar(), codegenGeoConstant(), codegenGeoOperator(), codegenIsNull(), RangeJoinHashTable::codegenKey(), BoundingBoxIntersectJoinHashTable::codegenKey(), codegenLogical(), codegenLogicalShortCircuit(), BoundingBoxIntersectJoinHashTable::codegenManyKey(), codegenOuterJoinNullPlaceholder(), GroupByAndAggregate::codegenOutputSlot(), codegenPseudoStringOper(), codegenQualifierCmp(), codegenRowId(), codegenStringFetchAndEncode(), codegenTreeRegPredict(), codegenUMinus(), codegenUnnest(), codegenWidthBucketExpr(), Executor::codegenWindowFunctionAggregateCalls(), ScalarCodeGenerator::compile(), and Executor::groupByColumnCodegen().
|
private |
Definition at line 20 of file ConstantIR.cpp.
References CgenState::addStringConstant(), AUTOMATIC_IR_METADATA, Datum::boolval, cgen_state_, CHECK, codegenGeoConstant(), codegenHoistedConstants(), codegenIntConst(), CgenState::context_, decimal_to_int_type(), CompilationOptions::device_type, Datum::doubleval, executor(), Datum::floatval, Analyzer::Constant::get_constval(), get_int_type(), Analyzer::Constant::get_is_null(), Analyzer::Expr::get_type_info(), CompilationOptions::hoist_literals, inline_int_null_val(), kBIGINT, kBOOLEAN, kCHAR, kDATE, kDOUBLE, kENCODING_DICT, kFLOAT, kINT, kINTERVAL_DAY_TIME, kINTERVAL_YEAR_MONTH, kSMALLINT, kTEXT, kTIME, kTIMESTAMP, kTINYINT, kVARCHAR, CgenState::llInt(), Datum::stringval, and run_benchmark_import::type.
|
private |
Definition at line 23 of file InValuesIR.cpp.
References CgenState::addInValuesBitmap(), AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegen(), InValuesBitmap::codegen(), codegenCmp(), CgenState::context_, createInValuesBitmap(), CgenState::emitCall(), executor(), Analyzer::InValues::get_arg(), Analyzer::Expr::get_type_info(), Analyzer::InValues::get_value_list(), CompilationOptions::hoist_literals, CgenState::inlineIntNull(), CgenState::ir_builder_, is_unnest(), kBOOLEAN, kEQ, kONE, CgenState::llInt(), run_benchmark_import::result, and toBool().
|
private |
Definition at line 72 of file InValuesIR.cpp.
References CgenState::addInValuesBitmap(), AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegen(), InValuesBitmap::codegen(), CgenState::context_, Data_Namespace::CPU_LEVEL, CompilationOptions::device_type, executor(), Analyzer::InIntegerSet::get_arg(), Analyzer::Expr::get_type_info(), Analyzer::InIntegerSet::get_value_list(), GPU, Data_Namespace::GPU_LEVEL, CompilationOptions::hoist_literals, inline_int_null_val(), is_unnest(), CgenState::llInt(), and run_benchmark_import::result.
|
private |
Definition at line 20 of file CaseIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegenCase(), CgenState::context_, createStringViewStructType(), get_bit_width(), Analyzer::CaseExpr::get_else_expr(), get_int_type(), Analyzer::Expr::get_type_info(), CgenState::ir_builder_, kENCODING_DICT, and kFLOAT.
|
private |
Definition at line 76 of file DateTimeIR.cpp.
References AUTOMATIC_IR_METADATA, CHECK, DateTimeUtils::get_extract_timestamp_precision_scale(), Analyzer::ExtractExpr::get_field(), Analyzer::ExtractExpr::get_from_expr(), get_int_type(), Analyzer::Expr::get_type_info(), DateTimeUtils::is_subsecond_extract_field(), kDATE, kEPOCH, and kTIMESTAMP.
|
private |
Definition at line 163 of file DateTimeIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegen(), CgenState::context_, CgenState::emitExternalCall(), Analyzer::DateaddExpr::get_datetime_expr(), Analyzer::DateaddExpr::get_field(), get_int_type(), Analyzer::DateaddExpr::get_number_expr(), Analyzer::Expr::get_type_info(), inline_fixed_encoding_null_val(), inline_int_null_val(), DateTimeUtils::is_subsecond_dateadd_field(), kDATE, kTIMESTAMP, CgenState::llInt(), and Analyzer::DateaddExpr::use_fixed_encoding_null_val().
|
private |
Definition at line 199 of file DateTimeIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegen(), CgenState::context_, CgenState::emitExternalCall(), Analyzer::DatediffExpr::get_end_expr(), Analyzer::DatediffExpr::get_field(), get_int_type(), Analyzer::DatediffExpr::get_start_expr(), Analyzer::Expr::get_type_info(), CgenState::inlineIntNull(), and CgenState::llInt().
|
private |
Definition at line 227 of file DateTimeIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegen(), codegenDateTruncHighPrecisionTimestamps(), CgenState::context_, datetrunc_fname_lookup, dtMICROSECOND, dtMILLISECOND, dtNANOSECOND, dtSECOND, CgenState::emitExternalCall(), executor(), field(), Analyzer::DatetruncExpr::get_field(), Analyzer::DatetruncExpr::get_from_expr(), get_int_type(), Analyzer::Expr::get_type_info(), and CgenState::ir_builder_.
|
private |
Definition at line 239 of file StringOpsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK_EQ, codegen(), CgenState::context_, CompilationOptions::device_type, CgenState::emitCall(), CgenState::emitExternalCall(), Analyzer::CharLengthExpr::get_arg(), Analyzer::CharLengthExpr::get_calc_encoded_length(), get_int_type(), SQLTypeInfo::get_notnull(), Analyzer::Expr::get_type_info(), GPU, CgenState::inlineIntNull(), and CgenState::ir_builder_.
|
private |
Definition at line 269 of file StringOpsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK_EQ, codegen(), CgenState::emitCall(), and Analyzer::KeyForStringExpr::get_arg().
|
private |
Definition at line 278 of file IRCodegen.cpp.
References run_benchmark_import::args, AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegen(), CgenState::context_, CgenState::emitCall(), executor(), Analyzer::SampleRatioExpr::get_arg(), kDOUBLE, ll_bool(), and posArg().
|
private |
Definition at line 305 of file IRCodegen.cpp.
References AUTOMATIC_IR_METADATA, Analyzer::WidthBucketExpr::can_skip_out_of_bound_check(), cgen_state_, CHECK, codegenConstantWidthBucketExpr(), codegenWidthBucketExpr(), executor_, Analyzer::WidthBucketExpr::get_lower_bound(), Analyzer::WidthBucketExpr::get_partition_count(), Analyzer::WidthBucketExpr::get_partition_count_val(), Analyzer::WidthBucketExpr::get_target_value(), Analyzer::WidthBucketExpr::get_upper_bound(), getExpressionRange(), PlanState::getSimpleQuals(), Integer, Analyzer::WidthBucketExpr::is_constant_expr(), kCAST, plan_state_, PlanState::query_infos_, Analyzer::WidthBucketExpr::set_constant_expr(), and Analyzer::WidthBucketExpr::skip_out_of_bound_check().
|
private |
Definition at line 288 of file MLPredictCodegen.cpp.
References CHECK, codegenLinRegPredict(), codegenTreeRegPredict(), DEBUG_TIMER, DECISION_TREE_REG, g_ml_models, GBT_REG, Analyzer::MLPredictExpr::get_model_value(), Analyzer::MLPredictExpr::get_regressor_values(), MLModelMap::getModel(), LINEAR_REG, and RANDOM_FOREST_REG.
|
private |
Definition at line 334 of file MLPredictCodegen.cpp.
References CHECK, codegenArith(), DEBUG_TIMER, Datum::doubleval, executor(), g_ml_models, generated_encoded_and_casted_features(), Analyzer::Constant::get_constval(), Analyzer::PCAProjectExpr::get_feature_values(), Analyzer::PCAProjectExpr::get_model_value(), Analyzer::PCAProjectExpr::get_pc_dimension_value(), MLModelMap::getModel(), Datum::intval, kDIVIDE, kDOUBLE, kMINUS, kMULTIPLY, kONE, kPLUS, PCA, and run_benchmark_import::result.
|
private |
Definition at line 533 of file StringOpsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK_EQ, CHECK_GE, codegen(), StringDictionaryTranslationMgr::codegen(), codegenPerRowStringOper(), CompilationOptions::device_type, executor(), Analyzer::Expr::get_type_info(), Analyzer::StringOper::getArg(), Analyzer::StringOper::getArity(), CgenState::moveStringDictionaryTranslationMgr(), Analyzer::StringOper::requiresPerRowTranslation(), and translate_dict_strings().
|
private |
Definition at line 587 of file StringOpsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegen(), codegenDictLike(), CgenState::context_, CompilationOptions::device_type, CgenState::emitCall(), extract_cast_arg(), g_enable_watchdog, Analyzer::LikeExpr::get_arg(), Analyzer::LikeExpr::get_escape_expr(), Analyzer::LikeExpr::get_is_ilike(), Analyzer::LikeExpr::get_is_simple(), Analyzer::LikeExpr::get_like_expr(), SQLTypeInfo::get_notnull(), Analyzer::LikeExpr::get_own_arg(), Analyzer::Expr::get_type_info(), GPU, CgenState::inlineIntNull(), CgenState::ir_builder_, is_unnest(), kENCODING_NONE, and CgenState::llInt().
|
private |
Definition at line 845 of file StringOpsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegen(), codegenDictRegexp(), CgenState::context_, CompilationOptions::device_type, CgenState::emitExternalCall(), extract_cast_arg(), g_enable_watchdog, Analyzer::RegexpExpr::get_arg(), Analyzer::RegexpExpr::get_escape_expr(), get_int_type(), SQLTypeInfo::get_notnull(), Analyzer::RegexpExpr::get_own_arg(), Analyzer::RegexpExpr::get_pattern_expr(), Analyzer::Expr::get_type_info(), GPU, CgenState::inlineIntNull(), CgenState::ir_builder_, is_unnest(), kENCODING_NONE, and CgenState::llInt().
|
private |
Definition at line 68 of file ArrayIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegen(), CgenState::context_, CgenState::emitExternalCall(), Analyzer::CardinalityExpr::get_arg(), get_int_type(), Analyzer::Expr::get_type_info(), CgenState::inlineIntNull(), CgenState::llInt(), log2_bytes(), and posArg().
|
private |
Definition at line 234 of file IRCodegen.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, codegenArith(), codegenArrayAt(), codegenCmp(), codegenLogical(), Analyzer::BinOper::get_optype(), IS_ARITHMETIC, IS_COMPARISON, IS_LOGIC, and kARRAY_AT.
|
private |
Definition at line 253 of file IRCodegen.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, codegenCast(), codegenIsNull(), codegenLogical(), codegenUMinus(), codegenUnnest(), Analyzer::UOper::get_optype(), kCAST, kISNULL, kNOT, kUMINUS, kUNNEST, and UNREACHABLE.
|
private |
Definition at line 219 of file ArithmeticIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, checkExpressionRanges(), codegenBinOpWithOverflowForCPU(), codegenSkipOverflowCheckForNull(), CgenState::context_, CPU, CgenState::current_func_, CompilationOptions::device_type, CgenState::emitCall(), SQLTypeInfo::get_size(), inline_int_null_val(), CgenState::inlineIntMaxMin(), CgenState::ir_builder_, SQLTypeInfo::is_decimal(), SQLTypeInfo::is_integer(), SQLTypeInfo::is_timeinterval(), CgenState::llInt(), and CgenState::needs_error_check_.
Referenced by codegenIntArith().
|
private |
Definition at line 38 of file ArithmeticIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegen(), codegenCastBetweenIntTypes(), codegenDeciDiv(), codegenFpArith(), codegenIntArith(), Analyzer::BinOper::get_left_operand(), Analyzer::BinOper::get_optype(), Analyzer::BinOper::get_right_operand(), Analyzer::Expr::get_type_info(), IS_ARITHMETIC, and kDIVIDE.
Referenced by codegen(), and codegenLinRegPredict().
|
private |
Definition at line 26 of file ArrayIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegen(), CgenState::context_, CgenState::emitExternalCall(), get_int_type(), Analyzer::BinOper::get_left_operand(), Analyzer::BinOper::get_right_operand(), Analyzer::Expr::get_type_info(), CgenState::inlineFpNull(), CgenState::inlineIntNull(), CgenState::ir_builder_, kDOUBLE, posArg(), and to_string().
Referenced by codegen().
|
private |
Definition at line 685 of file ExtensionsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CgenState::context_, CgenState::emitExternalCall(), SQLTypeInfo::get_elem_type(), kARRAY, and kENCODING_NONE.
Referenced by codegenFunctionOperCastArgs().
|
private |
Definition at line 97 of file ArrayIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegen(), CgenState::context_, CompilationOptions::device_type, CgenState::emitExternalCall(), executor(), get_int_array_type(), get_int_type(), Analyzer::Expr::get_type_info(), Analyzer::ArrayExpr::getElement(), Analyzer::ArrayExpr::getElementCount(), GPU, CgenState::ir_builder_, Analyzer::ArrayExpr::isLocalAlloc(), Analyzer::ArrayExpr::isNull(), kENCODING_GEOINT, CgenState::llFp(), and CgenState::llInt().
Referenced by codegen().
|
private |
Definition at line 728 of file ArithmeticIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, codegenSkipOverflowCheckForNull(), CgenState::context_, CgenState::current_func_, getArithWithOverflowIntrinsic(), inline_int_null_val(), CgenState::ir_builder_, CgenState::llInt(), and CgenState::needs_error_check_.
Referenced by codegenAdd(), codegenMul(), and codegenSub().
|
private |
Definition at line 285 of file CompareIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegenFunctionOper(), CgenState::context_, g_enable_bbox_intersect_hashjoin, get_int_type(), Catalog_Namespace::get_metadata_for_column(), Datum::intval, IS_GEO_POLY, kBOOLEAN, kDOUBLE, kENCODING_GEOINT, kINT, kPOINT, and VLOG.
Referenced by codegenCmp().
|
private |
Definition at line 713 of file ExtensionsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CgenState::context_, anonymous_namespace{ExtensionsIR.cpp}::get_buffer_struct_type(), and CgenState::ir_builder_.
Referenced by codegenFunctionOperCastArgs().
|
private |
Definition at line 65 of file CaseIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK_EQ, codegen(), CgenState::context_, CgenState::current_func_, CgenState::emitCall(), Analyzer::CaseExpr::get_expr_pair_list(), CgenState::ir_builder_, and toBool().
Referenced by codegen().
|
private |
Definition at line 21 of file CastIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK_EQ, codegen(), CgenState::context_, CgenState::emitCall(), executor_, get_int_type(), Analyzer::UOper::get_operand(), Analyzer::UOper::get_optype(), Analyzer::Expr::get_type_info(), CgenState::ir_builder_, and kCAST.
Referenced by codegen(), codegenCmpDecimalConst(), codegenFunctionOper(), and codegenFunctionOperWithCustomTypeHandling().
|
private |
Definition at line 73 of file CastIR.cpp.
References AUTOMATIC_IR_METADATA, anonymous_namespace{CastIR.cpp}::byte_array_cast(), CgenState::castToTypeIn(), cgen_state_, CHECK, codegenCastBetweenIntTypes(), codegenCastBetweenTimestamps(), codegenCastFromFp(), codegenCastFromString(), codegenCastNonStringToString(), codegenCastTimestampToDate(), codegenCastTimestampToTime(), codegenCastToFp(), CgenState::context_, SQLTypeInfo::get_dimension(), get_int_array_type(), SQLTypeInfo::get_notnull(), SQLTypeInfo::get_size(), SQLTypeInfo::get_type(), CgenState::ir_builder_, SQLTypeInfo::is_boolean(), SQLTypeInfo::is_decimal(), SQLTypeInfo::is_integer(), SQLTypeInfo::is_string(), SQLTypeInfo::is_text_encoding_dict(), SQLTypeInfo::is_time(), SQLTypeInfo::is_timestamp(), kDATE, kTIME, and kTIMESTAMP.
llvm::Value * CodeGenerator::codegenCastBetweenIntTypes | ( | llvm::Value * | operand_lv, |
const SQLTypeInfo & | operand_ti, | ||
const SQLTypeInfo & | ti, | ||
bool | upscale = true |
||
) |
Definition at line 427 of file CastIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegenCastBetweenIntTypesOverflowChecks(), CgenState::context_, CgenState::emitCall(), exp_to_scale(), get_bit_width(), get_int_type(), SQLTypeInfo::get_logical_size(), SQLTypeInfo::get_notnull(), SQLTypeInfo::get_scale(), inline_int_null_val(), CgenState::inlineIntNull(), CgenState::ir_builder_, SQLTypeInfo::is_decimal(), SQLTypeInfo::is_integer(), kBIGINT, CgenState::llInt(), and numeric_type_name().
Referenced by codegenArith(), codegenCast(), codegenDeciDiv(), codegenWidthBucketExpr(), and Executor::codegenWindowFunctionAggregateCalls().
void CodeGenerator::codegenCastBetweenIntTypesOverflowChecks | ( | llvm::Value * | operand_lv, |
const SQLTypeInfo & | operand_ti, | ||
const SQLTypeInfo & | ti, | ||
const int64_t | scale | ||
) |
Definition at line 500 of file CastIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CgenState::context_, CgenState::current_func_, CgenState::emitCall(), get_int_type(), SQLTypeInfo::get_logical_size(), SQLTypeInfo::get_notnull(), inline_int_null_val(), CgenState::inlineIntMaxMin(), CgenState::inlineIntNull(), CgenState::ir_builder_, kBOOLEAN, CgenState::llInt(), CgenState::needs_error_check_, numeric_type_name(), toBool(), and type_name().
Referenced by codegenCastBetweenIntTypes(), and codegenCastBetweenTimestamps().
llvm::Value * CodeGenerator::codegenCastBetweenTimestamps | ( | llvm::Value * | ts_lv, |
const SQLTypeInfo & | operand_dimen, | ||
const SQLTypeInfo & | target_dimen, | ||
const bool | nullable | ||
) |
Definition at line 199 of file CastIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegenCastBetweenIntTypesOverflowChecks(), CgenState::emitCall(), SQLTypeInfo::get_dimension(), DateTimeUtils::get_timestamp_precision_scale(), CgenState::inlineIntNull(), CgenState::ir_builder_, and CgenState::llInt().
Referenced by codegenCast().
|
private |
Definition at line 601 of file CastIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CgenState::context_, CgenState::emitCall(), get_bit_width(), get_int_type(), SQLTypeInfo::get_notnull(), SQLTypeInfo::get_type(), SQLTypeInfo::get_type_name(), CgenState::inlineFpNull(), CgenState::inlineIntNull(), CgenState::ir_builder_, SQLTypeInfo::is_decimal(), SQLTypeInfo::is_fp(), SQLTypeInfo::is_integer(), SQLTypeInfo::is_number(), kDOUBLE, kFLOAT, and numeric_type_name().
Referenced by codegenCast().
|
private |
Definition at line 231 of file CastIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, StringDictionaryTranslationMgr::codegen(), CgenState::context_, CPU, Data_Namespace::CPU_LEVEL, createStringViewStructType(), CompilationOptions::device_type, shared::StringDictKey::dict_id, CgenState::emitExternalCall(), executor(), g_cluster, SQLTypeInfo::get_compression(), get_int_type(), SQLTypeInfo::get_type_name(), SQLTypeInfo::getStringDictKey(), GPU, Data_Namespace::GPU_LEVEL, SQLTypeInfo::is_dict_intersection(), SQLTypeInfo::is_string(), kENCODING_DICT, kENCODING_NONE, dict_ref_t::literalsDictId, CgenState::llInt(), and CgenState::moveStringDictionaryTranslationMgr().
Referenced by codegenCast().
|
private |
Definition at line 350 of file CastIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CgenState::context_, CompilationOptions::device_type, CgenState::emitExternalCall(), executor(), g_cluster, SQLTypeInfo::get_compression(), SQLTypeInfo::get_dimension(), get_int_type(), SQLTypeInfo::get_notnull(), SQLTypeInfo::get_precision(), SQLTypeInfo::get_scale(), SQLTypeInfo::get_type(), SQLTypeInfo::getStringDictKey(), GPU, SQLTypeInfo::is_string(), kBIGINT, kBOOLEAN, kDATE, kDECIMAL, kDOUBLE, kENCODING_NONE, kFLOAT, kINT, kNUMERIC, kSMALLINT, kTIME, kTIMESTAMP, kTINYINT, CgenState::llInt(), to_lower(), and toString().
Referenced by codegenCast().
|
private |
Definition at line 162 of file CastIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CgenState::context_, CgenState::emitExternalCall(), get_int_type(), DateTimeUtils::get_timestamp_precision_scale(), CgenState::inlineIntNull(), kBIGINT, and CgenState::llInt().
Referenced by codegenCast().
|
private |
Definition at line 142 of file CastIR.cpp.
References cgen_state_, CgenState::context_, CgenState::emitExternalCall(), get_int_type(), DateTimeUtils::get_timestamp_precision_scale(), CgenState::inlineIntNull(), kBIGINT, and CgenState::llInt().
Referenced by codegenCast().
|
private |
Definition at line 558 of file CastIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CgenState::context_, CgenState::emitCall(), SQLTypeInfo::get_notnull(), SQLTypeInfo::get_scale(), SQLTypeInfo::get_type(), SQLTypeInfo::get_type_name(), CgenState::inlineFpNull(), CgenState::inlineIntNull(), CgenState::ir_builder_, SQLTypeInfo::is_fp(), kFLOAT, numeric_type_name(), and shared::power10().
Referenced by codegenCast().
|
private |
Definition at line 230 of file CompareIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, anonymous_namespace{CompareIR.cpp}::check_array_comp_cond(), CHECK_EQ, codegen(), codegenBoundingBoxIntersect(), codegenCmpDecimalConst(), codegenLogical(), codegenStrCmp(), Analyzer::BinOper::get_left_operand(), Analyzer::BinOper::get_optype(), Analyzer::BinOper::get_own_left_operand(), Analyzer::BinOper::get_own_right_operand(), Analyzer::BinOper::get_qualifier(), Analyzer::BinOper::get_right_operand(), IS_EQUIVALENCE, is_unnest(), kBBOX_INTERSECT, kBW_EQ, kNE, anonymous_namespace{CompareIR.cpp}::lower_bw_eq(), and anonymous_namespace{CompareIR.cpp}::lower_multicol_compare().
Referenced by codegen(), codegenCmpDecimalConst(), and codegenWidthBucketExpr().
|
private |
Definition at line 482 of file CompareIR.cpp.
References AUTOMATIC_IR_METADATA, CgenState::castToTypeIn(), cgen_state_, CHECK, CHECK_EQ, codegen(), codegenQualifierCmp(), createStringViewStructType(), CgenState::emitCall(), executor_, SQLTypeInfo::get_compression(), get_null_check_suffix(), SQLTypeInfo::get_type(), Analyzer::Expr::get_type_info(), anonymous_namespace{CompareIR.cpp}::icmp_name(), inline_int_null_val(), CgenState::inlineIntNull(), CgenState::ir_builder_, SQLTypeInfo::is_boolean(), IS_COMPARISON, SQLTypeInfo::is_decimal(), IS_EQUIVALENCE, SQLTypeInfo::is_geometry(), SQLTypeInfo::is_integer(), SQLTypeInfo::is_string(), SQLTypeInfo::is_time(), SQLTypeInfo::is_timeinterval(), kBBOX_INTERSECT, kBOOLEAN, kDOUBLE, kENCODING_DICT, kENCODING_NONE, kFLOAT, kNE, kONE, CgenState::llFp(), CgenState::llInt(), anonymous_namespace{CompareIR.cpp}::llvm_fcmp_pred(), anonymous_namespace{CompareIR.cpp}::llvm_icmp_pred(), NULL_DOUBLE, NULL_FLOAT, numeric_type_name(), anonymous_namespace{CompareIR.cpp}::string_cmp_func(), anonymous_namespace{CompareIR.cpp}::unpack_dict_encoded_string(), and anonymous_namespace{CompareIR.cpp}::unpack_none_encoded_string().
|
private |
Definition at line 402 of file CompareIR.cpp.
References AUTOMATIC_IR_METADATA, Datum::bigintval, cgen_state_, codegen(), codegenCast(), codegenCmp(), exp_to_scale(), SQLTypeInfo::get_scale(), Analyzer::Expr::get_type_info(), kCAST, kDECIMAL, and sql_constants::kMaxRepresentableNumericPrecision.
Referenced by codegenCmp().
|
privatevirtual |
Reimplemented in ScalarCodeGenerator.
Definition at line 94 of file ColumnIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, codegenColVar(), codegenOuterJoinNullPlaceholder(), foundOuterJoinMatch(), Analyzer::ColumnVar::get_rte_idx(), and CgenState::outer_join_match_found_per_level_.
Referenced by codegen().
|
private |
Definition at line 106 of file ColumnIR.cpp.
References PlanState::addColumnToFetch(), PlanState::addColumnToNotFetch(), anonymous_namespace{ColumnIR.cpp}::adjusted_range_table_index(), AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_LT, codegen(), codegenFixedLengthColVar(), codegenFixedLengthColVarInWindow(), codegenRowId(), codegenVariableLengthStringColVar(), codegenWindowPosition(), colByteStream(), executor(), CgenState::fetch_cache_, CgenState::frag_offsets_, get_column_descriptor(), Analyzer::Expr::get_type_info(), WindowProjectNodeContext::getActiveWindowFunctionContext(), Analyzer::ColumnVar::getColumnKey(), hash_value(), hashJoinLhs(), CompilationOptions::hoist_literals, CgenState::ir_builder_, PlanState::isColumnToFetch(), PlanState::isLazyFetchColumn(), kENCODING_NONE, kPOINT, plan_state_, posArg(), resolveGroupedColumnReference(), and Analyzer::ColumnVar::toString().
Referenced by codegenColumn(), and codegenOuterJoinNullPlaceholder().
|
private |
Definition at line 675 of file ExtensionsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, SQLTypeInfo::get_comp_param(), SQLTypeInfo::get_compression(), kENCODING_GEOINT, and CgenState::llInt().
Referenced by codegenFunctionOperCastArgs().
|
private |
Definition at line 364 of file IRCodegen.cpp.
References Analyzer::WidthBucketExpr::can_skip_out_of_bound_check(), cgen_state_, CHECK_EQ, codegen(), Datum::doubleval, CgenState::emitCall(), Analyzer::WidthBucketExpr::get_bound_val(), Analyzer::WidthBucketExpr::get_lower_bound(), Analyzer::WidthBucketExpr::get_partition_count(), Analyzer::WidthBucketExpr::get_partition_count_val(), Analyzer::WidthBucketExpr::get_target_value(), Analyzer::WidthBucketExpr::get_upper_bound(), inline_fp_null_val(), inline_int_null_val(), kDOUBLE, and NULL_DOUBLE.
Referenced by codegen().
|
private |
Definition at line 304 of file DateTimeIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CgenState::context_, datetrunc_fname_lookup, dtMICROSECOND, dtMILLISECOND, dtNANOSECOND, dtSECOND, CgenState::emitCall(), CgenState::emitExternalCall(), executor(), SQLTypeInfo::get_dimension(), get_int_type(), SQLTypeInfo::get_notnull(), CgenState::inlineIntNull(), CgenState::ir_builder_, SQLTypeInfo::is_high_precision_timestamp(), and CgenState::llInt().
Referenced by codegen().
|
private |
Definition at line 546 of file ArithmeticIR.cpp.
References Parser::IntLiteral::analyzeValue(), AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegen(), codegenCastBetweenIntTypes(), codegenDiv(), codegenIntConst(), exp_to_scale(), Analyzer::BinOper::get_left_operand(), get_null_check_suffix(), Analyzer::BinOper::get_right_operand(), Analyzer::Expr::get_type_info(), kCAST, and anonymous_namespace{ArithmeticIR.cpp}::numeric_or_time_interval_type_name().
Referenced by codegenArith().
|
private |
Definition at line 671 of file StringOpsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegen(), executor(), Analyzer::Constant::get_constval(), Analyzer::Expr::get_type_info(), kCAST, kENCODING_DICT, kENCODING_NONE, pre_translate_string_ops(), Datum::stringval, timer_start(), timer_stop(), and VLOG.
Referenced by codegen().
|
private |
Definition at line 903 of file StringOpsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegen(), gpu_enabled::copy(), executor(), Analyzer::Constant::get_constval(), Analyzer::Expr::get_type_info(), kCAST, kENCODING_DICT, kENCODING_NONE, pre_translate_string_ops(), and Datum::stringval.
Referenced by codegen().
|
private |
Definition at line 762 of file StringOpsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegen(), gpu_enabled::copy(), executor(), anonymous_namespace{StringOpsIR.cpp}::get_compared_ids(), Analyzer::Constant::get_constval(), kCAST, kENCODING_DICT, kEQ, kGE, kGT, kLE, kLT, and kNE.
Referenced by codegenStrCmp().
|
private |
Definition at line 433 of file ArithmeticIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegenSkipOverflowCheckForNull(), CgenState::context_, CgenState::current_func_, CgenState::emitCall(), exp_to_scale(), g_null_div_by_zero, get_int_type(), SQLTypeInfo::get_notnull(), SQLTypeInfo::get_scale(), SQLTypeInfo::get_type(), inline_int_null_val(), CgenState::inlineIntMaxMin(), CgenState::inlineIntNull(), CgenState::ir_builder_, SQLTypeInfo::is_decimal(), SQLTypeInfo::is_fp(), kBOOLEAN, kFLOAT, CgenState::llFp(), CgenState::llInt(), CgenState::needs_error_check_, NULL_DOUBLE, NULL_FLOAT, numeric_type_name(), and toBool().
Referenced by codegenDeciDiv(), codegenFpArith(), and codegenIntArith().
|
private |
Definition at line 260 of file DateTimeIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CgenState::emitCall(), SQLTypeInfo::get_dimension(), DateTimeUtils::get_extract_high_precision_adjusted_scale(), SQLTypeInfo::get_notnull(), CgenState::inlineIntNull(), CgenState::ir_builder_, SQLTypeInfo::is_high_precision_timestamp(), DateTimeUtils::is_subsecond_extract_field(), kDIVIDE, kMULTIPLY, CgenState::llInt(), and run_benchmark_import::result.
|
private |
Definition at line 248 of file ColumnIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codgenAdjustFixedEncNull(), CgenState::context_, anonymous_namespace{ColumnIR.cpp}::get_col_bit_width(), anonymous_namespace{ColumnIR.cpp}::get_col_decoder(), get_int_type(), Analyzer::Expr::get_type_info(), WindowFunctionContext::getOrderKeyColumnBufferTypes(), WindowFunctionContext::getWindowFunction(), Analyzer::WindowFunction::hasRangeModeFraming(), CgenState::ir_builder_, kDOUBLE, kENCODING_DICT, kENCODING_FIXED, kENCODING_NONE, kFLOAT, and CgenState::module_.
Referenced by codegenColVar(), and codegenFixedLengthColVarInWindow().
|
private |
Definition at line 299 of file ColumnIR.cpp.
References AUTOMATIC_IR_METADATA, CgenState::castToTypeIn(), cgen_state_, CHECK, codegenFixedLengthColVar(), CgenState::context_, WindowFunctionContext::counts(), CodegenUtil::createPtrWithHoistedMemoryAddr(), CgenState::current_func_, executor_, get_int_type(), Analyzer::Expr::get_type_info(), Analyzer::WindowFunction::getArgs(), Analyzer::WindowFunction::getKind(), WindowFunctionContext::getWindowFunction(), CgenState::inlineFpNull(), CgenState::inlineIntNull(), CgenState::ir_builder_, SQLTypeInfo::is_fp(), CgenState::llInt(), NTH_VALUE, and WindowFunctionContext::NUM_EXECUTION_DEVICES.
Referenced by codegenColVar().
|
private |
Definition at line 134 of file ArithmeticIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegenDiv(), CgenState::emitCall(), Analyzer::BinOper::get_left_operand(), get_null_check_suffix(), Analyzer::BinOper::get_optype(), Analyzer::BinOper::get_right_operand(), Analyzer::Expr::get_type_info(), CgenState::ir_builder_, kDIVIDE, kFLOAT, kMINUS, kMULTIPLY, kPLUS, CgenState::llFp(), NULL_DOUBLE, NULL_FLOAT, and numeric_type_name().
Referenced by codegenArith().
|
private |
Definition at line 240 of file ExtensionsIR.cpp.
References run_benchmark_import::args, AUTOMATIC_IR_METADATA, beginArgsNullcheck(), bind_function(), cgen_state_, CHECK, CHECK_EQ, CHECK_GE, codegen(), codegenCast(), codegenFunctionOperCastArgs(), CgenState::context_, gpu_enabled::copy(), CompilationOptions::device_type, CgenState::emitExternalCall(), endArgsNullcheck(), anonymous_namespace{ExtensionsIR.cpp}::ext_arg_type_to_llvm_type(), CgenState::ext_call_cache_, get_arg_by_name(), anonymous_namespace{ExtensionsIR.cpp}::get_buffer_struct_type(), anonymous_namespace{ExtensionsIR.cpp}::get_llvm_type_from_sql_array_type(), Analyzer::UOper::get_operand(), anonymous_namespace{ExtensionsIR.cpp}::get_sql_type_from_llvm_type(), SQLTypeInfo::get_type(), Analyzer::Expr::get_type_info(), Analyzer::FunctionOper::getArg(), Analyzer::FunctionOper::getArity(), ExtensionFunction::getName(), Analyzer::FunctionOper::getName(), ExtensionFunction::getRet(), GPU, CgenState::ir_builder_, Analyzer::ArrayExpr::isLocalAlloc(), kCAST, kPOINT, CgenState::llInt(), LOG, CgenState::row_func_, ExtensionFunction::usesManager(), and logger::WARNING.
Referenced by codegen(), codegenBoundingBoxIntersect(), and codegenFunctionOperWithCustomTypeHandling().
|
private |
Definition at line 1368 of file ExtensionsIR.cpp.
References run_benchmark_import::args, AUTOMATIC_IR_METADATA, castArrayPointer(), cgen_state_, CHECK, CHECK_EQ, CHECK_LE, codegenArrayBuff(), codegenBufferArgs(), codegenCompression(), codegenGeoLineStringArgs(), codegenGeoMultiLineStringArgs(), codegenGeoMultiPointArgs(), codegenGeoMultiPolygonArgs(), codegenGeoPointArgs(), codegenGeoPolygonArgs(), CgenState::context_, CgenState::emitExternalCall(), executor(), GeoMultiLineString, GeoMultiPolygon, GeoPolygon, SQLTypeInfo::get_elem_type(), get_int_type(), Analyzer::Expr::get_type_info(), Analyzer::FunctionOper::getArg(), Analyzer::FunctionOper::getArity(), ExtensionFunction::getInputArgs(), ExtensionFunction::getName(), CgenState::ir_builder_, is_ext_arg_type_array(), is_ext_arg_type_geo(), is_ext_arg_type_pointer(), kARRAY, kENCODING_NONE, kINT, kLINESTRING, kMULTILINESTRING, kMULTIPOINT, kMULTIPOLYGON, kPOINT, kPOLYGON, kTINYINT, ll_bool(), CgenState::llInt(), log2_bytes(), PInt8, posArg(), TextEncodingDict, TextEncodingNone, toString(), and UNREACHABLE.
Referenced by codegenFunctionOper().
|
private |
Definition at line 607 of file ExtensionsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegenIsNullNumber(), CgenState::context_, CgenState::emitExternalCall(), get_int_type(), SQLTypeInfo::get_physical_coord_cols(), Analyzer::Expr::get_type_info(), Analyzer::FunctionOper::getArg(), Analyzer::FunctionOper::getArity(), CgenState::ir_builder_, kENCODING_GEOINT, kPOINT, and posArg().
Referenced by beginArgsNullcheck().
|
private |
Definition at line 539 of file ExtensionsIR.cpp.
References AUTOMATIC_IR_METADATA, beginArgsNullcheck(), anonymous_namespace{ExtensionsIR.cpp}::call_requires_custom_type_handling(), cgen_state_, CHECK, CHECK_EQ, codegen(), codegenCast(), codegenFunctionOper(), CgenState::context_, CgenState::emitCall(), CgenState::emitExternalCall(), endArgsNullcheck(), exp_to_scale(), get_int_type(), Analyzer::Expr::get_type_info(), Analyzer::FunctionOper::getArg(), Analyzer::FunctionOper::getArity(), Analyzer::FunctionOper::getName(), CgenState::ir_builder_, SQLTypeInfo::is_decimal(), kINT, and CgenState::llInt().
Referenced by codegen().
|
private |
Definition at line 371 of file GeoIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegen(), CgenState::context_, CgenState::emitExternalCall(), get_int_type(), CgenState::ir_builder_, CgenState::llInt(), log2_bytes(), and posArg().
Referenced by codegenGeoBinOper(), and codegenGeoUOper().
|
static |
Definition at line 25 of file GeoIR.cpp.
References CgenState::array_load_cache_, CHECK, CgenState::context_, CgenState::emitExternalCall(), SQLTypeInfo::get_notnull(), SQLTypeInfo::get_type(), and kPOINT.
Referenced by spatial_type::PointAccessors::codegenLoads(), and spatial_type::Transform::codegenLoads().
|
private |
Definition at line 263 of file GeoIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, codegenGeoArgs(), codegenGeosConstructorCall(), codegenGeosPredicateCall(), CgenState::context_, CompilationOptions::device_type, Geospatial::get_compression_scheme(), SQLTypeInfo::get_input_srid(), SQLTypeInfo::get_output_srid(), SQLTypeInfo::get_physical_coord_cols(), SQLTypeInfo::get_type(), Analyzer::Expr::get_type_info(), Analyzer::GeoBinOper::getArgs0(), Analyzer::GeoBinOper::getArgs1(), Analyzer::GeoBinOper::getOp(), Analyzer::GeoBinOper::getTypeInfo0(), Analyzer::GeoBinOper::getTypeInfo1(), GPU, Geospatial::GeoBase::kBUFFER, Geospatial::GeoBase::kCONCAVEHULL, Geospatial::GeoBase::kDIFFERENCE, Geospatial::GeoBase::kEQUALS, Geospatial::GeoBase::kINTERSECTION, Geospatial::GeoBase::kUNION, CgenState::llInt(), and SQLTypeInfo::transforms().
Referenced by codegen().
|
private |
Definition at line 54 of file GeoIR.cpp.
References CHECK, CHECK_EQ, codegen(), shared::ColumnKey::column_id, get_column_descriptor(), Analyzer::ColumnVar::get_rte_idx(), Analyzer::Expr::get_type_info(), Analyzer::ColumnVar::getColumnKey(), kLINESTRING, kMULTILINESTRING, kMULTIPOLYGON, kPOINT, kPOLYGON, Analyzer::ColumnVar::toString(), and UNREACHABLE.
Referenced by codegen().
|
private |
Definition at line 111 of file GeoIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK_EQ, codegen(), CgenState::context_, CgenState::ir_builder_, Analyzer::GeoConstant::makePhysicalConstant(), and Analyzer::GeoConstant::physicalCols().
Referenced by codegen(), and codegenGeoExpr().
|
private |
Definition at line 97 of file GeoIR.cpp.
References codegenGeoConstant(), codegenGeoOperator(), Analyzer::Expr::toString(), and UNREACHABLE.
Referenced by codegen().
|
private |
Definition at line 972 of file ExtensionsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, createLineStringStructType(), and CgenState::ir_builder_.
Referenced by codegenFunctionOperCastArgs().
|
private |
Definition at line 1066 of file ExtensionsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, createMultiLineStringStructType(), and CgenState::ir_builder_.
Referenced by codegenFunctionOperCastArgs().
|
private |
Definition at line 881 of file ExtensionsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, createMultiPointStructType(), and CgenState::ir_builder_.
Referenced by codegenFunctionOperCastArgs().
|
private |
Definition at line 1289 of file ExtensionsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, createMultiPolygonStructType(), and CgenState::ir_builder_.
Referenced by codegenFunctionOperCastArgs().
|
private |
Definition at line 149 of file GeoIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegen(), executor(), CgenState::geo_target_cache_, Analyzer::GeoOperator::getName(), spatial_type::Codegen::init(), anonymous_namespace{GeoIR.cpp}::mark_logical_column_to_fetch(), plan_state_, posArg(), and Analyzer::GeoOperator::toString().
Referenced by codegenGeoExpr().
|
private |
Definition at line 791 of file ExtensionsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, createPointStructType(), and CgenState::ir_builder_.
Referenced by codegenFunctionOperCastArgs().
|
private |
Definition at line 1182 of file ExtensionsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, createPolygonStructType(), and CgenState::ir_builder_.
Referenced by codegenFunctionOperCastArgs().
|
private |
Definition at line 485 of file GeoIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CgenState::context_, CgenState::current_func_, CgenState::emitExternalCall(), executor(), get_int_type(), CgenState::ir_builder_, CgenState::llBool(), CgenState::llInt(), CgenState::needs_error_check_, and CgenState::needs_geos_.
Referenced by codegenGeoBinOper(), and codegenGeoUOper().
|
private |
Definition at line 452 of file GeoIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CgenState::context_, CgenState::current_func_, CgenState::emitExternalCall(), get_int_type(), CgenState::ir_builder_, CgenState::llBool(), CgenState::llInt(), CgenState::needs_error_check_, CgenState::needs_geos_, run_benchmark_import::res, and run_benchmark_import::result.
Referenced by codegenGeoBinOper(), and codegenGeoUOper().
|
private |
Definition at line 183 of file GeoIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, codegenGeoArgs(), codegenGeosConstructorCall(), codegenGeosPredicateCall(), CgenState::context_, CompilationOptions::device_type, Geospatial::get_compression_scheme(), SQLTypeInfo::get_input_srid(), SQLTypeInfo::get_output_srid(), SQLTypeInfo::get_physical_coord_cols(), SQLTypeInfo::get_type(), Analyzer::Expr::get_type_info(), Analyzer::GeoUOper::getArgs0(), Analyzer::GeoUOper::getOp(), Analyzer::GeoUOper::getTypeInfo0(), GPU, Geospatial::GeoBase::kCONVEXHULL, Geospatial::GeoBase::kISEMPTY, Geospatial::GeoBase::kISVALID, Geospatial::GeoBase::kPROJECTION, CgenState::llFp(), CgenState::llInt(), and SQLTypeInfo::transforms().
Referenced by codegen().
std::vector< llvm::Value * > CodeGenerator::codegenHoistedConstants | ( | const std::vector< const Analyzer::Constant * > & | constants, |
const EncodingType | enc_type, | ||
const shared::StringDictKey & | dict_id | ||
) |
Definition at line 373 of file ConstantIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, CHECK_GE, codegenHoistedConstantsLoads(), codegenHoistedConstantsPlaceholders(), Analyzer::Expr::get_type_info(), CgenState::getOrAddLiteral(), and CgenState::query_func_literal_loads_.
Referenced by TreeModelPredictionMgr::codegen(), codegen(), CodegenUtil::createPtrWithHoistedMemoryAddr(), CodegenUtil::hoistLiteral(), and InValuesBitmap::prepareBitIsSetParams().
|
private |
Definition at line 142 of file ConstantIR.cpp.
References AUTOMATIC_IR_METADATA, shared::bit_cast(), cgen_state_, CHECK, CHECK_EQ, CgenState::context_, CgenState::emitEntryCall(), logger::ERROR, g_allow_invalid_literal_buffer_reads, get_arg_by_name(), get_bit_width(), SQLTypeInfo::get_compression(), SQLTypeInfo::get_dimension(), get_int_type(), anonymous_namespace{ColumnIR.cpp}::get_phys_int_type(), SQLTypeInfo::get_scale(), SQLTypeInfo::get_subtype(), SQLTypeInfo::get_type(), CgenState::inlineIntNull(), SQLTypeInfo::is_array(), SQLTypeInfo::is_boolean(), SQLTypeInfo::is_decimal(), SQLTypeInfo::is_geometry(), SQLTypeInfo::is_integer(), SQLTypeInfo::is_string(), SQLTypeInfo::is_time(), SQLTypeInfo::is_timeinterval(), kDOUBLE, kENCODING_DICT, kENCODING_GEOINT, kENCODING_NONE, kFLOAT, kTINYINT, CgenState::literalBytes(), CgenState::llInt(), LOG, CgenState::query_func_, CgenState::query_func_entry_ir_builder_, to_string(), SQLTypeInfo::to_string(), and toString().
Referenced by codegenHoistedConstants().
|
private |
Definition at line 280 of file ConstantIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, CgenState::ir_builder_, SQLTypeInfo::is_array(), SQLTypeInfo::is_geometry(), SQLTypeInfo::is_string(), kENCODING_DICT, kENCODING_GEOINT, kENCODING_NONE, CgenState::llInt(), CgenState::row_func_hoisted_literals_, and to_string().
Referenced by codegenHoistedConstants().
|
private |
Definition at line 77 of file ArithmeticIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegenAdd(), codegenDiv(), codegenMod(), codegenMul(), codegenSub(), Analyzer::BinOper::get_left_operand(), get_null_check_suffix(), Analyzer::BinOper::get_optype(), Analyzer::BinOper::get_right_operand(), Analyzer::Expr::get_type_info(), kDIVIDE, kMINUS, kMODULO, kMULTIPLY, kPLUS, and anonymous_namespace{ArithmeticIR.cpp}::numeric_or_time_interval_type_name().
Referenced by codegenArith().
|
static |
Definition at line 89 of file ConstantIR.cpp.
References Datum::bigintval, decimal_to_int_type(), Analyzer::Constant::get_constval(), Analyzer::Constant::get_is_null(), Analyzer::Expr::get_type_info(), CgenState::inlineIntNull(), Datum::intval, kBIGINT, kDATE, kINT, kINTERVAL_DAY_TIME, kINTERVAL_YEAR_MONTH, kSMALLINT, kTIME, kTIMESTAMP, kTINYINT, CgenState::llInt(), Datum::smallintval, Datum::tinyintval, run_benchmark_import::type, and UNREACHABLE.
Referenced by codegen(), codegenDeciDiv(), createInValuesBitmap(), and Executor::skipFragment().
|
private |
Definition at line 381 of file LogicalIR.cpp.
References AUTOMATIC_IR_METADATA, CgenState::castToTypeIn(), cgen_state_, CHECK, codegen(), codegenIsNullNumber(), CgenState::context_, CgenState::emitCall(), CgenState::emitExternalCall(), get_int_type(), Analyzer::UOper::get_operand(), CgenState::ir_builder_, kPOINT, spatial_type::Codegen::pointIsNullFunctionName(), and posArg().
Referenced by codegen().
|
private |
Definition at line 416 of file LogicalIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, SQLTypeInfo::get_type(), CgenState::inlineIntNull(), CgenState::ir_builder_, SQLTypeInfo::is_fp(), kFLOAT, CgenState::llFp(), NULL_DOUBLE, and NULL_FLOAT.
Referenced by codegenFunctionOperNullArg(), codegenIsNull(), and codegenSkipOverflowCheckForNull().
|
private |
Definition at line 119 of file MLPredictCodegen.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegenArith(), Datum::doubleval, executor(), generated_encoded_and_casted_features(), Analyzer::MLPredictExpr::get_regressor_values(), kDOUBLE, kMULTIPLY, kONE, kPLUS, and run_benchmark_import::result.
Referenced by codegen().
|
private |
Definition at line 299 of file LogicalIR.cpp.
References AUTOMATIC_IR_METADATA, CgenState::castToTypeIn(), cgen_state_, CHECK, codegen(), codegenLogicalShortCircuit(), CgenState::emitCall(), Analyzer::BinOper::get_left_operand(), Analyzer::BinOper::get_optype(), Analyzer::BinOper::get_right_operand(), Analyzer::Expr::get_type_info(), CgenState::inlineIntNull(), CgenState::ir_builder_, IS_LOGIC, kAND, kOR, and toBool().
Referenced by codegen(), and codegenCmp().
|
private |
Definition at line 363 of file LogicalIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegen(), CgenState::emitCall(), Analyzer::UOper::get_operand(), Analyzer::UOper::get_optype(), Analyzer::Expr::get_type_info(), CgenState::inlineIntNull(), CgenState::ir_builder_, anonymous_namespace{LogicalIR.cpp}::is_qualified_bin_oper(), kNOT, and toBool().
|
private |
Definition at line 197 of file LogicalIR.cpp.
References AUTOMATIC_IR_METADATA, CgenState::castToTypeIn(), cgen_state_, codegen(), anonymous_namespace{LogicalIR.cpp}::contains_unsafe_division(), CgenState::context_, CgenState::current_func_, Analyzer::BinOper::get_left_operand(), anonymous_namespace{LogicalIR.cpp}::get_likelihood(), Analyzer::BinOper::get_optype(), Analyzer::BinOper::get_right_operand(), Analyzer::Expr::get_type_info(), anonymous_namespace{LogicalIR.cpp}::get_weight(), CgenState::inlineIntNull(), CgenState::ir_builder_, kAND, kOR, and gpu_enabled::swap().
Referenced by codegenLogical().
|
private |
Definition at line 598 of file ArithmeticIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, CgenState::context_, CgenState::current_func_, CgenState::emitCall(), inline_int_null_val(), CgenState::ir_builder_, SQLTypeInfo::is_integer(), CgenState::llInt(), and CgenState::needs_error_check_.
Referenced by codegenIntArith().
|
private |
Definition at line 361 of file ArithmeticIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, checkExpressionRanges(), codegenBinOpWithOverflowForCPU(), codegenSkipOverflowCheckForNull(), CgenState::context_, CPU, CgenState::current_func_, CompilationOptions::device_type, CgenState::emitCall(), SQLTypeInfo::get_size(), inline_int_null_val(), CgenState::inlineIntMaxMin(), CgenState::ir_builder_, SQLTypeInfo::is_decimal(), SQLTypeInfo::is_integer(), SQLTypeInfo::is_timeinterval(), CgenState::llInt(), and CgenState::needs_error_check_.
Referenced by codegenIntArith().
|
private |
Definition at line 496 of file ColumnIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, codegen(), codegenColVar(), CgenState::context_, CgenState::current_func_, foundOuterJoinMatch(), Analyzer::ColumnVar::get_rte_idx(), Analyzer::Expr::get_type_info(), CgenState::ir_builder_, needCastForHashJoinLhs(), and resolveGroupedColumnReference().
Referenced by codegenColumn().
llvm::Value * CodeGenerator::codegenPerRowStringOper | ( | const Analyzer::StringOper * | string_oper, |
const CompilationOptions & | co | ||
) |
Definition at line 351 of file StringOpsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, CHECK_GE, CHECK_LE, codegenStringFetchAndEncode(), CONCAT, CgenState::context_, CompilationOptions::device_type, CgenState::emitExternalCall(), executor(), g_cluster, get_fp_type(), get_int_type(), Analyzer::StringOper::get_kind(), Analyzer::Expr::get_type_info(), Analyzer::StringOper::getArity(), Analyzer::StringOper::getNonLiteralsArity(), getStringOpInfos(), GPU, CgenState::inlineNull(), kBIGINT, kBOOLEAN, kDATE, kDECIMAL, kDOUBLE, kFLOAT, kINT, kNUMERIC, kSMALLINT, kTIME, kTIMESTAMP, kTINYINT, CgenState::llInt(), RCONCAT, to_lower(), and toString().
Referenced by codegen().
llvm::Value * CodeGenerator::codegenPseudoStringOper | ( | const Analyzer::ColumnVar * | expr, |
const std::vector< StringOps_Namespace::StringOpInfo > & | string_op_infos, | ||
const CompilationOptions & | co | ||
) |
Definition at line 557 of file StringOpsIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK_EQ, codegen(), StringDictionaryTranslationMgr::codegen(), Data_Namespace::CPU_LEVEL, CompilationOptions::device_type, executor(), Analyzer::Expr::get_type_info(), SQLTypeInfo::getStringDictKey(), GPU, Data_Namespace::GPU_LEVEL, and CgenState::moveStringDictionaryTranslationMgr().
Referenced by HashJoin::codegenColOrStringOper().
|
private |
Definition at line 589 of file CompareIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, CHECK_NE, codegen(), CgenState::context_, CompilationOptions::device_type, CgenState::emitExternalCall(), executor(), g_cluster, g_enable_watchdog, get_int_type(), Analyzer::Expr::get_type_info(), GPU, anonymous_namespace{CompareIR.cpp}::icmp_arr_name(), CgenState::inlineIntNull(), kANY, kCAST, kDOUBLE, kENCODING_DICT, kENCODING_NONE, kONE, CgenState::llInt(), numeric_type_name(), and posArg().
Referenced by codegenCmp().
|
private |
Definition at line 391 of file ColumnIR.cpp.
References anonymous_namespace{ColumnIR.cpp}::adjusted_range_table_index(), AUTOMATIC_IR_METADATA, Datum::bigintval, cgen_state_, CHECK, CHECK_EQ, codegen(), executor(), CgenState::frag_offsets_, get_arg_by_name(), Analyzer::ColumnVar::get_rte_idx(), Analyzer::ColumnVar::getTableKey(), CgenState::ir_builder_, kBIGINT, kENCODING_NONE, CgenState::llInt(), posArg(), and CgenState::row_func_.
Referenced by codegenColVar().
|
private |
Definition at line 345 of file ArithmeticIR.cpp.
References cgen_state_, codegenIsNullNumber(), CgenState::context_, CgenState::current_func_, and CgenState::ir_builder_.
Referenced by codegenAdd(), codegenBinOpWithOverflowForCPU(), codegenDiv(), codegenMul(), codegenSub(), and codegenUMinus().
|
private |
Definition at line 372 of file CompareIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegenDictStrCmp(), get_null_check_suffix(), and kENCODING_DICT.
Referenced by codegenCmp().
|
private |
Definition at line 302 of file StringOpsIR.cpp.
References cgen_state_, CHECK, CHECK_EQ, CHECK_LT, codegen(), CgenState::context_, createStringViewStructType(), CgenState::emitExternalCall(), executor(), executor_, Analyzer::Expr::get_type_info(), Analyzer::StringOper::getArg(), Analyzer::StringOper::getArity(), CgenState::ir_builder_, kENCODING_DICT, kTEXT, and CgenState::llInt().
Referenced by codegenPerRowStringOper().
|
private |
Definition at line 281 of file ArithmeticIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_EQ, checkExpressionRanges(), codegenBinOpWithOverflowForCPU(), codegenSkipOverflowCheckForNull(), CgenState::context_, CPU, CgenState::current_func_, CompilationOptions::device_type, CgenState::emitCall(), SQLTypeInfo::get_size(), inline_int_null_val(), CgenState::inlineIntMaxMin(), CgenState::ir_builder_, SQLTypeInfo::is_decimal(), SQLTypeInfo::is_integer(), SQLTypeInfo::is_timeinterval(), CgenState::llInt(), and CgenState::needs_error_check_.
Referenced by codegenIntArith().
|
private |
Definition at line 181 of file MLPredictCodegen.cpp.
References cgen_state_, CHECK_EQ, codegen(), TreeModelPredictionMgr::codegen(), Data_Namespace::CPU_LEVEL, DEBUG_TIMER, CompilationOptions::device_type, executor(), generated_encoded_and_casted_features(), Analyzer::MLPredictExpr::get_regressor_values(), GPU, Data_Namespace::GPU_LEVEL, CgenState::moveTreeModelPredictionMgr(), threading_serial::parallel_for(), RANDOM_FOREST_REG, and VLOG.
Referenced by codegen().
|
private |
Definition at line 654 of file ArithmeticIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK_EQ, checkExpressionRanges(), codegen(), codegenSkipOverflowCheckForNull(), CgenState::context_, CgenState::current_func_, CgenState::emitCall(), Analyzer::UOper::get_operand(), Analyzer::UOper::get_optype(), Analyzer::Expr::get_type_info(), CgenState::inlineFpNull(), CgenState::inlineIntMaxMin(), CgenState::inlineIntNull(), CgenState::ir_builder_, kUMINUS, CgenState::llInt(), CgenState::needs_error_check_, and numeric_type_name().
Referenced by codegen().
|
private |
Definition at line 20 of file ArrayIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, codegen(), and Analyzer::UOper::get_operand().
Referenced by codegen().
|
private |
Definition at line 377 of file ColumnIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CgenState::context_, createStringViewStructType(), CgenState::emitExternalCall(), and CgenState::ir_builder_.
Referenced by codegenColVar().
|
private |
Definition at line 437 of file IRCodegen.cpp.
References Analyzer::WidthBucketExpr::can_skip_out_of_bound_check(), cgen_state_, CHECK, CHECK_EQ, codegen(), codegenCastBetweenIntTypes(), codegenCmp(), CgenState::context_, CgenState::current_func_, CgenState::emitCall(), Analyzer::WidthBucketExpr::get_lower_bound(), Analyzer::WidthBucketExpr::get_partition_count(), Analyzer::WidthBucketExpr::get_target_value(), Analyzer::WidthBucketExpr::get_upper_bound(), CgenState::inlineFpNull(), CgenState::ir_builder_, kGT, kINT, kONE, CgenState::llInt(), CgenState::needs_error_check_, and toBool().
Referenced by codegen().
llvm::Value * CodeGenerator::codegenWindowPosition | ( | const WindowFunctionContext * | window_func_context, |
llvm::Value * | pos_arg | ||
) |
Definition at line 235 of file ColumnIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CgenState::emitCall(), CgenState::llInt(), and WindowFunctionContext::output().
Referenced by codegenColVar(), Executor::codegenLoadCurrentValueFromColBuf(), and GroupByAndAggregate::codegenWindowRowPointer().
|
private |
Definition at line 448 of file ColumnIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CHECK_LT, CgenState::context_, CgenState::emitCall(), SQLTypeInfo::get_compression(), SQLTypeInfo::get_dimension(), get_int_type(), SQLTypeInfo::get_logical_size(), anonymous_namespace{ColumnIR.cpp}::get_phys_int_type(), SQLTypeInfo::get_scale(), SQLTypeInfo::get_size(), SQLTypeInfo::get_subtype(), CgenState::inlineIntNull(), CgenState::ir_builder_, kENCODING_DICT, kENCODING_NONE, CgenState::llInt(), numeric_type_name(), and to_string().
Referenced by codegenFixedLengthColVar().
|
private |
Definition at line 574 of file ColumnIR.cpp.
References cgen_state_, CHECK, CHECK_GE, CgenState::context_, PlanState::getLocalColumnId(), plan_state_, CgenState::row_func_, and to_string().
Referenced by codegenColVar().
|
private |
Definition at line 112 of file InValuesIR.cpp.
References threading_serial::async(), AUTOMATIC_IR_METADATA, cgen_state_, CHECK, codegenIntConst(), Data_Namespace::CPU_LEVEL, cpu_threads(), CompilationOptions::device_type, executor(), extract_cast_arg(), Analyzer::InValues::get_arg(), get_nullable_type_info(), Analyzer::Expr::get_type_info(), Analyzer::InValues::get_value_list(), GPU, Data_Namespace::GPU_LEVEL, inline_int_null_val(), StringDictionary::INVALID_STR_ID, SQLTypeInfo::is_string(), and kENCODING_DICT.
Referenced by codegen().
|
private |
Definition at line 923 of file ExtensionsIR.cpp.
References cgen_state_, CgenState::context_, and CgenState::module_.
Referenced by codegenGeoLineStringArgs().
|
private |
Definition at line 1014 of file ExtensionsIR.cpp.
References cgen_state_, CgenState::context_, and CgenState::module_.
Referenced by codegenGeoMultiLineStringArgs().
|
private |
Definition at line 832 of file ExtensionsIR.cpp.
References cgen_state_, CgenState::context_, and CgenState::module_.
Referenced by codegenGeoMultiPointArgs().
|
private |
Definition at line 1238 of file ExtensionsIR.cpp.
References cgen_state_, CgenState::context_, and CgenState::module_.
Referenced by codegenGeoMultiPolygonArgs().
|
private |
Definition at line 744 of file ExtensionsIR.cpp.
References cgen_state_, CgenState::context_, and CgenState::module_.
Referenced by codegenGeoPointArgs().
|
private |
Definition at line 1130 of file ExtensionsIR.cpp.
References cgen_state_, CgenState::context_, and CgenState::module_.
Referenced by codegenGeoPolygonArgs().
|
private |
Definition at line 1781 of file ExtensionsIR.cpp.
References cgen_state_, and CgenState::context_.
Referenced by codegen(), codegenCastFromString(), codegenCmp(), codegenStringFetchAndEncode(), and codegenVariableLengthStringColVar().
|
private |
Definition at line 461 of file ExtensionsIR.cpp.
References CodeGenerator::ArgNullcheckBBs::args_notnull_bb, CodeGenerator::ArgNullcheckBBs::args_null_bb, AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CgenState::context_, anonymous_namespace{ExtensionsIR.cpp}::get_buffer_struct_type(), get_fp_type(), get_int_type(), anonymous_namespace{ExtensionsIR.cpp}::get_llvm_type_from_sql_array_type(), anonymous_namespace{ExtensionsIR.cpp}::get_sql_type_from_llvm_type(), Analyzer::Expr::get_type_info(), Analyzer::FunctionOper::getName(), CgenState::inlineFpNull(), CgenState::inlineIntNull(), CgenState::ir_builder_, and CodeGenerator::ArgNullcheckBBs::orig_bb.
Referenced by codegenFunctionOper(), and codegenFunctionOperWithCustomTypeHandling().
|
inlineprotected |
Definition at line 659 of file CodeGenerator.h.
References executor_.
Referenced by checkExpressionRanges(), codegen(), codegenArrayExpr(), codegenCastFromString(), codegenCastNonStringToString(), codegenColVar(), codegenDateTruncHighPrecisionTimestamps(), codegenDictLike(), codegenDictRegexp(), codegenDictStrCmp(), codegenFunctionOperCastArgs(), codegenGeoOperator(), codegenGeosConstructorCall(), codegenLinRegPredict(), codegenPerRowStringOper(), codegenPseudoStringOper(), codegenQualifierCmp(), codegenRowId(), codegenStringFetchAndEncode(), codegenTreeRegPredict(), createInValuesBitmap(), and CodeGenerator::NullCheckCodegen::NullCheckCodegen().
|
private |
Definition at line 489 of file ColumnIR.cpp.
References cgen_state_, CHECK_GE, CHECK_LE, and CgenState::outer_join_match_found_per_level_.
Referenced by codegenColumn(), and codegenOuterJoinNullPlaceholder().
|
static |
Definition at line 439 of file NativeCodegen.cpp.
References CHECK, anonymous_namespace{NativeCodegen.cpp}::create_execution_engine(), DEBUG_TIMER, initialize_cpu_backend_mutex_, anonymous_namespace{ExtensionFunctionsGeo.hpp}::None, CompilationOptions::opt_level, anonymous_namespace{NativeCodegen.cpp}::optimize_ir(), and ReductionJIT.
Referenced by TableFunctionCompilationContext::finalize(), ResultSetReductionJIT::finalizeReductionCode(), ScalarCodeGenerator::generateNativeCode(), and StubGenerator::generateStub().
|
static |
Definition at line 1194 of file NativeCodegen.cpp.
Referenced by TableFunctionCompilationContext::finalize(), and ScalarCodeGenerator::generateNativeGPUCode().
|
static |
Definition at line 1478 of file NativeCodegen.cpp.
|
private |
Definition at line 707 of file ArithmeticIR.cpp.
References cgen_state_, logger::FATAL, Analyzer::BinOper::get_optype(), kMINUS, kMULTIPLY, kPLUS, LOG, CgenState::module_, and Analyzer::BinOper::toString().
Referenced by codegenBinOpWithOverflowForCPU().
|
private |
Definition at line 630 of file ColumnIR.cpp.
References CHECK, Analyzer::Expr::get_type_info(), hashJoinLhsTuple(), SQLTypeInfo::is_array(), is_constructed_point(), IS_EQUIVALENCE, SQLTypeInfo::is_string(), PlanState::join_info_, kCAST, plan_state_, and remove_cast_to_int().
Referenced by codegenColVar().
|
private |
Definition at line 769 of file ColumnIR.cpp.
References CHECK, CHECK_EQ, Analyzer::BinOper::get_left_operand(), Analyzer::BinOper::get_right_operand(), and Analyzer::ColumnVar::get_rte_idx().
Referenced by hashJoinLhs(), and needCastForHashJoinLhs().
|
static |
Definition at line 1518 of file NativeCodegen.cpp.
Referenced by ScalarCodeGenerator::generateNativeGPUCode().
|
static |
Definition at line 554 of file NativeCodegen.cpp.
References DEBUG_TIMER, logger::ERROR, f(), LOG, anonymous_namespace{ExtensionFunctionsGeo.hpp}::None, VLOG, and CgenState::vmap_.
Referenced by TableFunctionCompilationContext::finalize(), and Executor::optimizeAndCodegenCPU().
|
static |
Definition at line 1123 of file NativeCodegen.cpp.
|
static |
Definition at line 1964 of file NativeCodegen.cpp.
|
private |
Definition at line 706 of file ColumnIR.cpp.
References CHECK, Analyzer::Expr::get_type_info(), hashJoinLhsTuple(), SQLTypeInfo::is_array(), is_constructed_point(), IS_EQUIVALENCE, SQLTypeInfo::is_string(), PlanState::join_info_, plan_state_, and remove_cast_to_int().
Referenced by codegenOuterJoinNullPlaceholder().
llvm::Value * CodeGenerator::posArg | ( | const Analyzer::Expr * | expr | ) | const |
Definition at line 590 of file ColumnIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, CgenState::context_, get_int_type(), CgenState::ir_builder_, run_benchmark_import::result, CgenState::row_func_, and CgenState::scan_idx_to_hash_pos_.
Referenced by GroupByAndAggregate::codegen(), codegen(), GroupByAndAggregate::codegenAggArg(), TargetExprCodegen::codegenAggregate(), codegenArrayAt(), codegenColVar(), codegenFunctionOperCastArgs(), codegenFunctionOperNullArg(), codegenGeoArgs(), codegenGeoOperator(), codegenIsNull(), Executor::codegenJoinLoops(), RangeJoinHashTable::codegenKey(), BoundingBoxIntersectJoinHashTable::codegenKey(), BoundingBoxIntersectJoinHashTable::codegenManyKey(), GroupByAndAggregate::codegenOutputSlot(), codegenQualifierCmp(), codegenRowId(), Executor::codegenWindowFunctionAggregateCalls(), Executor::codegenWindowResetStateControlFlow(), GroupByAndAggregate::codegenWindowRowPointer(), and Executor::groupByColumnCodegen().
|
static |
Definition at line 158 of file LogicalIR.cpp.
References anonymous_namespace{LogicalIR.cpp}::contains_unsafe_division(), anonymous_namespace{LogicalIR.cpp}::get_likelihood(), RelAlgExecutionUnit::quals, anonymous_namespace{LogicalIR.cpp}::should_defer_eval(), and RelAlgExecutionUnit::simple_quals.
|
private |
Definition at line 554 of file ColumnIR.cpp.
References cgen_state_, CHECK, CHECK_GE, CHECK_LE, Analyzer::ColumnVar::get_rte_idx(), Analyzer::ColumnVar::getColumnKey(), CgenState::group_by_expr_cache_, and Analyzer::Var::kGROUPBY.
Referenced by codegenColVar(), and codegenOuterJoinNullPlaceholder().
llvm::Value * CodeGenerator::toBool | ( | llvm::Value * | lv | ) |
Definition at line 344 of file LogicalIR.cpp.
References AUTOMATIC_IR_METADATA, cgen_state_, CHECK, and CgenState::ir_builder_.
Referenced by Executor::buildHoistLeftHandSideFiltersCb(), Executor::buildIsDeletedCb(), Executor::buildJoinLoops(), codegen(), codegenCase(), codegenCastBetweenIntTypesOverflowChecks(), codegenDiv(), codegenLogical(), codegenWidthBucketExpr(), and Executor::codegenWindowResetStateControlFlow().
|
friend |
Definition at line 668 of file CodeGenerator.h.
|
protected |
Definition at line 666 of file CodeGenerator.h.
Referenced by beginArgsNullcheck(), Executor::buildJoinLoops(), castArrayPointer(), codegen(), codegenAdd(), GroupByAndAggregate::codegenAggArg(), codegenArith(), codegenArrayAt(), codegenArrayBuff(), codegenArrayExpr(), codegenBinOpWithOverflowForCPU(), codegenBoundingBoxIntersect(), codegenBufferArgs(), codegenCase(), codegenCast(), codegenCastBetweenIntTypes(), codegenCastBetweenIntTypesOverflowChecks(), codegenCastBetweenTimestamps(), codegenCastFromFp(), codegenCastFromString(), codegenCastNonStringToString(), codegenCastTimestampToDate(), codegenCastTimestampToTime(), codegenCastToFp(), codegenCmp(), codegenCmpDecimalConst(), codegenColumn(), ScalarCodeGenerator::codegenColumn(), codegenColVar(), codegenCompression(), codegenConstantWidthBucketExpr(), codegenDateTruncHighPrecisionTimestamps(), codegenDeciDiv(), codegenDictLike(), codegenDictRegexp(), codegenDictStrCmp(), codegenDiv(), codegenExtractHighPrecisionTimestamps(), codegenFixedLengthColVar(), codegenFixedLengthColVarInWindow(), codegenFpArith(), codegenFunctionOper(), codegenFunctionOperCastArgs(), codegenFunctionOperNullArg(), codegenFunctionOperWithCustomTypeHandling(), codegenGeoArgs(), codegenGeoBinOper(), codegenGeoConstant(), codegenGeoLineStringArgs(), codegenGeoMultiLineStringArgs(), codegenGeoMultiPointArgs(), codegenGeoMultiPolygonArgs(), codegenGeoOperator(), codegenGeoPointArgs(), codegenGeoPolygonArgs(), codegenGeosConstructorCall(), codegenGeosPredicateCall(), codegenGeoUOper(), codegenHoistedConstants(), codegenHoistedConstantsLoads(), codegenHoistedConstantsPlaceholders(), codegenIntArith(), codegenIsNull(), codegenIsNullNumber(), codegenLinRegPredict(), codegenLogical(), codegenLogicalShortCircuit(), codegenMod(), codegenMul(), codegenOuterJoinNullPlaceholder(), codegenPerRowStringOper(), codegenPseudoStringOper(), codegenQualifierCmp(), codegenRowId(), codegenSkipOverflowCheckForNull(), codegenStrCmp(), codegenStringFetchAndEncode(), codegenSub(), codegenTreeRegPredict(), codegenUMinus(), codegenUnnest(), codegenVariableLengthStringColVar(), codegenWidthBucketExpr(), codegenWindowPosition(), codgenAdjustFixedEncNull(), colByteStream(), ScalarCodeGenerator::compile(), createInValuesBitmap(), createLineStringStructType(), createMultiLineStringStructType(), createMultiPointStructType(), createMultiPolygonStructType(), createPointStructType(), createPolygonStructType(), createStringViewStructType(), endArgsNullcheck(), foundOuterJoinMatch(), ScalarCodeGenerator::generateNativeGPUCode(), getArithWithOverflowIntrinsic(), posArg(), resolveGroupedColumnReference(), and toBool().
|
private |
Definition at line 656 of file CodeGenerator.h.
Referenced by checkExpressionRanges(), codegen(), codegenCast(), codegenCmp(), codegenFixedLengthColVarInWindow(), codegenStringFetchAndEncode(), and executor().
|
staticprivate |
Definition at line 675 of file CodeGenerator.h.
Referenced by generateNativeCPUCode().
|
staticprivate |
Definition at line 672 of file CodeGenerator.h.
|
protected |
Definition at line 667 of file CodeGenerator.h.
Referenced by Executor::buildJoinLoops(), checkExpressionRanges(), codegen(), ScalarCodeGenerator::codegenColumn(), codegenColVar(), codegenGeoOperator(), colByteStream(), ScalarCodeGenerator::compile(), hashJoinLhs(), needCastForHashJoinLhs(), and ScalarCodeGenerator::prepare().