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

Method GetBufferReference

cpp/src/gandiva/llvm_generator.cc:1362–1388  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1360}
1361
1362llvm::Value* LLVMGenerator::Visitor::GetBufferReference(int idx, BufferType buffer_type,
1363 FieldPtr field) {
1364 llvm::IRBuilder<>* builder = ir_builder();
1365
1366 // Switch to the entry block to create a reference.
1367 llvm::BasicBlock* saved_block = builder->GetInsertBlock();
1368 builder->SetInsertPoint(entry_block_);
1369
1370 llvm::Value* slot_ref = nullptr;
1371 switch (buffer_type) {
1372 case kBufferTypeValidity:
1373 slot_ref = generator_->GetValidityReference(arg_addrs_, idx, field);
1374 break;
1375
1376 case kBufferTypeData:
1377 slot_ref = generator_->GetDataReference(arg_addrs_, idx, field);
1378 break;
1379
1380 case kBufferTypeOffsets:
1381 slot_ref = generator_->GetOffsetsReference(arg_addrs_, idx, field);
1382 break;
1383 }
1384
1385 // Revert to the saved block.
1386 builder->SetInsertPoint(saved_block);
1387 return slot_ref;
1388}
1389
1390llvm::Value* LLVMGenerator::Visitor::GetSliceOffset(int idx) {
1391 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