if (Offset) {
HostPtr = Builder.CreatePointerCast(
HostPtr, ScopArray->getElementType()->getPointerTo());
- HostPtr = Builder.CreateGEP(HostPtr, Offset);
+ HostPtr = Builder.CreateGEP(ScopArray->getElementType(), HostPtr, Offset);
}
HostPtr = Builder.CreatePointerCast(HostPtr, Builder.getInt8PtrTy());
if (Offset) {
HostPtr = Builder.CreatePointerCast(
HostPtr, ScopArray->getElementType()->getPointerTo());
- HostPtr = Builder.CreateGEP(HostPtr, Offset);
+ HostPtr = Builder.CreateGEP(ScopArray->getElementType(), HostPtr, Offset);
}
HostPtr = Builder.CreatePointerCast(HostPtr, Builder.getInt8PtrTy());
void GPUNodeBuilder::insertStoreParameter(Instruction *Parameters,
Instruction *Param, int Index) {
Value *Slot = Builder.CreateGEP(
- Parameters, {Builder.getInt64(0), Builder.getInt64(Index)});
+ Parameters->getType()->getPointerElementType(), Parameters,
+ {Builder.getInt64(0), Builder.getInt64(Index)});
Value *ParamTyped = Builder.CreatePointerCast(Param, Builder.getInt8PtrTy());
Builder.CreateStore(ParamTyped, Slot);
}
if (Offset) {
DevArray = Builder.CreatePointerCast(
DevArray, SAI->getElementType()->getPointerTo());
- DevArray = Builder.CreateGEP(DevArray, Builder.CreateNeg(Offset));
+ DevArray = Builder.CreateGEP(SAI->getElementType(), DevArray,
+ Builder.CreateNeg(Offset));
DevArray = Builder.CreatePointerCast(DevArray, Builder.getInt8PtrTy());
}
Value *Slot = Builder.CreateGEP(
- Parameters, {Builder.getInt64(0), Builder.getInt64(Index)});
+ ArrayTy, Parameters, {Builder.getInt64(0), Builder.getInt64(Index)});
if (gpu_array_is_read_only_scalar(&Prog->array[i])) {
Value *ValPtr = nullptr;