20 auto var_ptr = cgen_state_->ir_builder_.CreateAlloca(elem_ty);
21 cgen_state_->ir_builder_.CreateStore(elem_val, var_ptr);
27 catalog_->getDataMgr().getCudaMgr()->isArchMaxwell();
31 const std::string& agg_base_name,
32 const bool threads_share_memory,
35 llvm::isa<llvm::AllocaInst>(val_ptr) &&
37 llvm::Type::getDoublePtrTy(
executor_->cgen_state_->context_) &&
38 "agg_id" == agg_base_name);
42 executor_->cgen_state_->ir_builder_.CreateCall(
43 executor_->cgen_state_->module_->getFunction(
"force_sync"));
bool isArchMaxwell(const ExecutorDeviceType dt) const
ExecutorDeviceType device_type
llvm::Value * spillDoubleElement(llvm::Value *elem_val, llvm::Type *elem_ty)
bool needsUnnestDoublePatch(llvm::Value const *val_ptr, const std::string &agg_base_name, const bool threads_share_memory, const CompilationOptions &co) const