Lines Matching defs:GR
111 SPIRVGlobalRegistry &GR, MachineInstr &I,
115 Register NewReg = createVirtualRegister(NewPtrType, &GR, MRI, MIB.getMF());
118 .addUse(GR.getSPIRVTypeID(NewPtrType))
127 static SPIRVType *createNewPtrType(SPIRVGlobalRegistry &GR, MachineInstr &I,
137 : GR.getOrCreateSPIRVType(
139 return GR.getOrCreateSPIRVPointerType(NewBaseType, MIB, SC);
145 MachineRegisterInfo *MRI, SPIRVGlobalRegistry &GR,
152 SPIRVType *OpType = GR.getSPIRVTypeForVReg(OpTypeReg, MF);
157 SPIRVType *ElemType = GR.getSPIRVTypeForVReg(ElemTypeReg, MF);
163 : GR.getTypeForSPIRVType(ElemType) == ResTy;
169 createNewPtrType(GR, I, OpType, IsSameMF, false, ResType, ResTy);
170 if (!GR.isBitcastCompatible(NewPtrType, OpType))
173 doInsertBitcast(STI, MRI, GR, I, OpReg, OpIdx, NewPtrType);
180 SPIRVGlobalRegistry &GR,
186 SPIRVType *OpType = GR.getSPIRVTypeForVReg(OpTypeReg, MF);
189 SPIRVType *ElemType = GR.getSPIRVTypeForVReg(OpType->getOperand(2).getReg());
195 createNewPtrType(GR, I, OpType, false, true, nullptr,
197 doInsertBitcast(STI, MRI, GR, I, OpReg, OpIdx, NewPtrType);
202 SPIRVGlobalRegistry &GR, MachineInstr &I) {
206 SPIRVType *PtrType = GR.getSPIRVTypeForVReg(PtrTypeReg, MF);
207 SPIRVType *PonteeElemType = PtrType ? GR.getPointeeType(PtrType) : nullptr;
219 GR.getOrCreateSPIRVType(IntegerType::getInt8Ty(Context), MIB);
220 SPIRVType *NewPtrType = GR.getOrCreateSPIRVPointerType(ElemType, MIB, SC);
221 doInsertBitcast(STI, MRI, GR, I, PtrReg, 0, NewPtrType);
226 SPIRVGlobalRegistry &GR,
231 SPIRVType *OpType = GR.getSPIRVTypeForVReg(OpTypeReg, MF);
234 SPIRVType *ElemType = GR.getSPIRVTypeForVReg(OpType->getOperand(2).getReg());
240 GR.getSPIRVTypeForVReg(ElemType->getOperand(1).getReg());
253 SPIRVType *NewPtrType = GR.getOrCreateSPIRVPointerType(MemberType, MIB, SC);
254 doInsertBitcast(STI, MRI, GR, I, OpReg, OpIdx, NewPtrType);
268 SPIRVGlobalRegistry &GR, MachineInstr &FunCall,
280 ? GR.getSPIRVTypeForVReg(DefPtrType->getOperand(2).getReg(),
284 const Type *DefElemTy = GR.getTypeForSPIRVType(DefElemType);
290 GR.setCurrentFunc(*FunCall.getParent()->getParent());
291 validatePtrTypes(STI, CallMRI, GR, FunCall, OpIdx, DefElemType,
293 GR.setCurrentFunc(*CurMF);
303 SPIRVGlobalRegistry &GR,
308 const_cast<MachineInstr *>(GR.getFunctionDefinition(F));
312 validateFunCallMachineDef(STI, DefMRI, CallMRI, GR, FunCall, FunDef);
319 MachineRegisterInfo *DefMRI, SPIRVGlobalRegistry &GR,
321 const Function *F = GR.getFunctionByDefinition(&FunDef);
322 if (SmallPtrSet<MachineInstr *, 8> *FwdCalls = GR.getForwardCalls(F))
326 validateFunCallMachineDef(STI, DefMRI, CallMRI, GR, *FunCall, &FunDef);
332 SPIRVGlobalRegistry &GR, MachineInstr &I) {
333 SPIRVType *BaseTypeInst = GR.getSPIRVTypeForVReg(I.getOperand(0).getReg());
336 GR.getSPIRVTypeForVReg(BaseTypeInst->getOperand(2).getReg());
337 validatePtrTypes(STI, MRI, GR, I, 2, BaseElemType);
350 SPIRVGlobalRegistry &GR = *STI.getSPIRVGlobalRegistry();
351 GR.setCurrentFunc(MF);
379 validatePtrTypes(STI, MRI, GR, MI, 2,
380 GR.getSPIRVTypeForVReg(MI.getOperand(0).getReg()));
385 validatePtrTypes(STI, MRI, GR, MI, 0,
386 GR.getSPIRVTypeForVReg(MI.getOperand(3).getReg()));
390 validatePtrTypes(STI, MRI, GR, MI, 0,
391 GR.getSPIRVTypeForVReg(MI.getOperand(1).getReg()));
395 validateAccessChain(STI, MRI, GR, MI);
400 validateAccessChain(STI, MRI, GR, MI);
407 if (const Function *F = validateFunCall(STI, MRI, GR, MI))
408 GR.addForwardCall(F, &MI);
413 validateForwardCalls(STI, MRI, GR, MI);
422 if (GR.isScalarOrVectorOfType(MI.getOperand(1).getReg(),
431 if (GR.isScalarOrVectorOfType(MI.getOperand(1).getReg(),
437 if (GR.isScalarOrVectorOfType(MI.getOperand(1).getReg(),
443 if (GR.isScalarOrVectorOfType(MI.getOperand(1).getReg(),
450 validateLifetimeStart(STI, MRI, GR, MI);
453 validatePtrUnwrapStructField(STI, MRI, GR, MI, 3);
454 validatePtrUnwrapStructField(STI, MRI, GR, MI, 4);
458 validateGroupWaitEventsPtr(STI, MRI, GR, MI);
461 SPIRVType *Type = GR.getSPIRVTypeForVReg(MI.getOperand(1).getReg());
476 SPIRVType *Type = GR.getSPIRVTypeForVReg(MI.getOperand(1).getReg());
492 SPIRVType *Int32Type = GR.getOrCreateSPIRVIntegerType(32, MIB);
496 STI, MRI, GR, MI, MI.getNumOperands() - 1,
499 : GR.getOrCreateSPIRVVectorType(
510 STI, MRI, GR, MI, MI.getNumOperands() - 1,
511 GR.getSPIRVTypeForVReg(
519 validatePtrUnwrapStructField(STI, MRI, GR, MI,