MCPcopy Create free account
hub / github.com/apache/impala / ToIR

Method ToIR

be/src/runtime/types.cc:289–324  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

287}
288
289llvm::ConstantStruct* ColumnType::ToIR(LlvmCodeGen* codegen) const {
290 // ColumnType = { i32, i8, i32, i32, i32, <vector>, <vector>, <vector> }
291 llvm::StructType* column_type_type = codegen->GetStructType<ColumnType>();
292
293 DCHECK_EQ(sizeof(type), sizeof(int32_t));
294 llvm::Constant* type_field = codegen->GetI32Constant(type);
295
296 DCHECK_EQ(sizeof(len), sizeof(int32_t));
297 llvm::Constant* len_field = codegen->GetI32Constant(len);
298 DCHECK_EQ(sizeof(precision), sizeof(int32_t));
299 llvm::Constant* precision_field = codegen->GetI32Constant(precision);
300 DCHECK_EQ(sizeof(scale), sizeof(int32_t));
301 llvm::Constant* scale_field = codegen->GetI32Constant(scale);
302
303 // Create empty 'children', 'field_names' and 'field_ids' vectors
304 DCHECK(children.empty()) << "Nested types NYI";
305 DCHECK(field_names.empty()) << "Nested types NYI";
306 DCHECK(field_ids.empty()) << "Nested types NYI";
307 llvm::Constant* children_field =
308 llvm::Constant::getNullValue(column_type_type->getElementType(4));
309 llvm::Constant* field_names_field =
310 llvm::Constant::getNullValue(column_type_type->getElementType(5));
311 llvm::Constant* field_ids_field =
312 llvm::Constant::getNullValue(column_type_type->getElementType(6));
313
314 DCHECK_EQ(sizeof(is_binary_), sizeof(uint8_t));
315 llvm::Constant* is_binary_field = codegen->GetI8Constant(is_binary_);
316
317 llvm::Constant* padding =
318 llvm::Constant::getNullValue(column_type_type->getElementType(8));
319
320 return llvm::cast<llvm::ConstantStruct>(
321 llvm::ConstantStruct::get(column_type_type, type_field, len_field, precision_field,
322 scale_field, children_field, field_names_field, field_ids_field,
323 is_binary_field, padding));
324}
325
326}

Callers 7

CodegenEvalMethod · 0.45
CodegenInsertMethod · 0.45
CodegenHashRowMethod · 0.45
CompareMethod · 0.45
GetIrTypeMethod · 0.45

Calls 3

GetI32ConstantMethod · 0.80
GetI8ConstantMethod · 0.80
emptyMethod · 0.45

Tested by

no test coverage detected