MCPcopy Create free account
hub / github.com/apache/arrow / GetBufferReference

Method GetBufferReference

cpp/src/gandiva/llvm_generator.cc:1369–1395  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1367}
1368
1369llvm::Value* LLVMGenerator::Visitor::GetBufferReference(int idx, BufferType buffer_type,
1370 FieldPtr field) {
1371 llvm::IRBuilder<>* builder = ir_builder();
1372
1373 // Switch to the entry block to create a reference.
1374 llvm::BasicBlock* saved_block = builder->GetInsertBlock();
1375 builder->SetInsertPoint(entry_block_);
1376
1377 llvm::Value* slot_ref = nullptr;
1378 switch (buffer_type) {
1379 case kBufferTypeValidity:
1380 slot_ref = generator_->GetValidityReference(arg_addrs_, idx, field);
1381 break;
1382
1383 case kBufferTypeData:
1384 slot_ref = generator_->GetDataReference(arg_addrs_, idx, field);
1385 break;
1386
1387 case kBufferTypeOffsets:
1388 slot_ref = generator_->GetOffsetsReference(arg_addrs_, idx, field);
1389 break;
1390 }
1391
1392 // Revert to the saved block.
1393 builder->SetInsertPoint(saved_block);
1394 return slot_ref;
1395}
1396
1397llvm::Value* LLVMGenerator::Visitor::GetSliceOffset(int idx) {
1398 return slice_offsets_[idx];

Callers

nothing calls this directly

Calls 4

GetValidityReferenceMethod · 0.80
GetDataReferenceMethod · 0.80
GetOffsetsReferenceMethod · 0.80
ir_builderFunction · 0.70

Tested by

no test coverage detected