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

Function CodegenStrOrCollValueGetLen

be/src/runtime/descriptors.cc:1321–1336  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1319}
1320
1321llvm::Value* CodegenStrOrCollValueGetLen(LlvmCodeGen* codegen, LlvmBuilder* builder,
1322 llvm::Value* str_or_coll_value_addr, const string& name = "") {
1323 if (str_or_coll_value_addr->getType() ==
1324 codegen->GetStructType<StringValue>()->getPointerTo()) {
1325 llvm::Function* str_len_fn = codegen->GetFunction(
1326 IRFunction::STRING_VALUE_LEN, false);
1327 return builder->CreateCall(str_len_fn,
1328 llvm::ArrayRef<llvm::Value*>({str_or_coll_value_addr}), name);
1329 } else {
1330 DCHECK(str_or_coll_value_addr->getType() ==
1331 codegen->GetStructType<CollectionValue>()->getPointerTo());
1332 llvm::Value* len_addr = builder->CreateStructGEP(nullptr, str_or_coll_value_addr,
1333 COLL_VALUE_LEN_IDX, name + "_addr");
1334 return builder->CreateLoad(len_addr, name);
1335 }
1336}
1337
1338llvm::Value* CodegenCollValueSetPtr(LlvmCodeGen* codegen, LlvmBuilder* builder,
1339 llvm::Value* str_or_coll_value, llvm::Value* ptr, const string& name = "") {

Callers 1

Calls 3

CreateCallMethod · 0.80
getTypeMethod · 0.65
GetFunctionMethod · 0.45

Tested by

no test coverage detected