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