| 59 | } |
| 60 | |
| 61 | void EmitTuple(const IrArray& tuple, absl::Span<llvm::Value* const> operands, |
| 62 | llvm::IRBuilder<>* b) { |
| 63 | llvm::Module* module = getModuleFromBuilder(b); |
| 64 | for (size_t i = 0; i < operands.size(); ++i) { |
| 65 | auto* store = b->CreateStore( |
| 66 | b->CreatePointerCast(operands[i], PrimitiveTypeToIrType(TUPLE, module)), |
| 67 | b->CreateInBoundsGEP(tuple.GetBasePointer(), |
| 68 | {b->getInt64(0), b->getInt64(i)})); |
| 69 | tuple.AnnotateLoadStoreInstructionWithMetadata(store); |
| 70 | } |
| 71 | } |
| 72 | |
| 73 | void EmitTuple(const IrArray& tuple, absl::Span<const IrArray> buffers, |
| 74 | llvm::IRBuilder<>* b) { |
no test coverage detected