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

Function CodegenStrOrCollValueGetPtr

be/src/runtime/descriptors.cc:1304–1319  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1302constexpr int COLL_VALUE_LEN_IDX = 1;
1303
1304llvm::Value* CodegenStrOrCollValueGetPtr(LlvmCodeGen* codegen, LlvmBuilder* builder,
1305 llvm::Value* str_or_coll_value_addr, const string& name = "") {
1306 if (str_or_coll_value_addr->getType() ==
1307 codegen->GetStructType<StringValue>()->getPointerTo()) {
1308 llvm::Function* str_ptr_fn = codegen->GetFunction(
1309 IRFunction::STRING_VALUE_PTR, false);
1310 return builder->CreateCall(str_ptr_fn,
1311 llvm::ArrayRef<llvm::Value*>({str_or_coll_value_addr}), name);
1312 } else {
1313 DCHECK(str_or_coll_value_addr->getType() ==
1314 codegen->GetStructType<CollectionValue>()->getPointerTo());
1315 llvm::Value* ptr_addr = builder->CreateStructGEP(nullptr, str_or_coll_value_addr,
1316 COLL_VALUE_PTR_IDX, name + "_addr");
1317 return builder->CreateLoad(ptr_addr, name);
1318 }
1319}
1320
1321llvm::Value* CodegenStrOrCollValueGetLen(LlvmCodeGen* codegen, LlvmBuilder* builder,
1322 llvm::Value* str_or_coll_value_addr, const string& name = "") {

Callers 1

Calls 3

CreateCallMethod · 0.80
getTypeMethod · 0.65
GetFunctionMethod · 0.45

Tested by

no test coverage detected