Get reference to data array at specified index in the args list.
| 195 | |
| 196 | /// Get reference to data array at specified index in the args list. |
| 197 | llvm::Value* LLVMGenerator::GetDataReference(llvm::Value* arg_addrs, int idx, |
| 198 | FieldPtr field) { |
| 199 | const std::string& name = field->name(); |
| 200 | llvm::Value* load = LoadVectorAtIndex(arg_addrs, types()->i64_type(), idx, name); |
| 201 | llvm::Type* base_type = types()->DataVecType(field->type()); |
| 202 | llvm::Value* ret; |
| 203 | if (base_type->isPointerTy()) { |
| 204 | ret = ir_builder()->CreateIntToPtr(load, base_type, name + "_darray"); |
| 205 | } else { |
| 206 | llvm::Type* pointer_type = types()->ptr_type(base_type); |
| 207 | ret = ir_builder()->CreateIntToPtr(load, pointer_type, name + "_darray"); |
| 208 | } |
| 209 | return ret; |
| 210 | } |
| 211 | |
| 212 | /// Get reference to offsets array at specified index in the args list. |
| 213 | llvm::Value* LLVMGenerator::GetOffsetsReference(llvm::Value* arg_addrs, int idx, |
no test coverage detected