| 218 | } |
| 219 | |
| 220 | CodegenAnyVal::CodegenAnyVal(LlvmCodeGen* codegen, LlvmBuilder* builder, |
| 221 | const ColumnType& type, llvm::Value* value, const char* name) |
| 222 | : type_(type), value_(value), name_(name), codegen_(codegen), builder_(builder) { |
| 223 | llvm::Type* value_type = GetLoweredType(codegen, type); |
| 224 | if (value_ == NULL) { |
| 225 | // No Value* was specified, so allocate one on the stack and load it. |
| 226 | llvm::Value* ptr = codegen_->CreateEntryBlockAlloca(*builder, value_type); |
| 227 | value_ = builder_->CreateLoad(ptr, name_); |
| 228 | } |
| 229 | DCHECK_EQ(value_->getType(), value_type); |
| 230 | } |
| 231 | |
| 232 | llvm::Value* CodegenAnyVal::GetIsNull(const char* name) const { |
| 233 | switch (type_.type) { |
nothing calls this directly
no test coverage detected