Lines Matching refs:Arguments

47   const SmallVectorImpl<Register> &Arguments;  member
51 const SmallVectorImpl<Register> &Arguments) in IncomingCall()
54 Arguments(Arguments) {} in IncomingCall()
155 const SmallVectorImpl<Register> &Arguments) { in lookupBuiltin() argument
187 BuiltinName, Builtin, ReturnRegister, ReturnType, Arguments); in lookupBuiltin()
230 BuiltinName, Builtin, ReturnRegister, ReturnType, Arguments); in lookupBuiltin()
261 BuiltinName, Builtin, ReturnRegister, ReturnType, Arguments); in lookupBuiltin()
462 assert(Call->Arguments.size() == 2 && in buildAtomicInitInst()
464 MIRBuilder.getMRI()->setRegClass(Call->Arguments[0], &SPIRV::IDRegClass); in buildAtomicInitInst()
465 MIRBuilder.getMRI()->setRegClass(Call->Arguments[1], &SPIRV::IDRegClass); in buildAtomicInitInst()
467 .addUse(Call->Arguments[0]) in buildAtomicInitInst()
468 .addUse(Call->Arguments[1]); in buildAtomicInitInst()
476 Register PtrRegister = Call->Arguments[0]; in buildAtomicLoadInst()
482 if (Call->Arguments.size() > 1) { in buildAtomicLoadInst()
483 ScopeRegister = Call->Arguments[1]; in buildAtomicLoadInst()
489 if (Call->Arguments.size() > 2) { in buildAtomicLoadInst()
491 MemSemanticsReg = Call->Arguments[2]; in buildAtomicLoadInst()
515 Register PtrRegister = Call->Arguments[0]; in buildAtomicStoreInst()
521 MIRBuilder.getMRI()->setRegClass(Call->Arguments[1], &SPIRV::IDRegClass); in buildAtomicStoreInst()
526 .addUse(Call->Arguments[1]); in buildAtomicStoreInst()
540 Register ObjectPtr = Call->Arguments[0]; // Pointer (volatile A *object.) in buildAtomicCompareExchangeInst()
541 Register ExpectedArg = Call->Arguments[1]; // Comparator (C* expected). in buildAtomicCompareExchangeInst()
542 Register Desired = Call->Arguments[2]; // Value (C Desired). in buildAtomicCompareExchangeInst()
572 if (Call->Arguments.size() >= 4) { in buildAtomicCompareExchangeInst()
573 assert(Call->Arguments.size() >= 5 && in buildAtomicCompareExchangeInst()
576 static_cast<std::memory_order>(getIConstVal(Call->Arguments[3], MRI)); in buildAtomicCompareExchangeInst()
578 static_cast<std::memory_order>(getIConstVal(Call->Arguments[4], MRI)); in buildAtomicCompareExchangeInst()
582 MemSemEqualReg = Call->Arguments[3]; in buildAtomicCompareExchangeInst()
584 MemSemUnequalReg = Call->Arguments[4]; in buildAtomicCompareExchangeInst()
585 MRI->setRegClass(Call->Arguments[3], &SPIRV::IDRegClass); in buildAtomicCompareExchangeInst()
586 MRI->setRegClass(Call->Arguments[4], &SPIRV::IDRegClass); in buildAtomicCompareExchangeInst()
595 if (Call->Arguments.size() >= 6) { in buildAtomicCompareExchangeInst()
596 assert(Call->Arguments.size() == 6 && in buildAtomicCompareExchangeInst()
599 getIConstVal(Call->Arguments[5], MRI)); in buildAtomicCompareExchangeInst()
602 ScopeReg = Call->Arguments[5]; in buildAtomicCompareExchangeInst()
603 MRI->setRegClass(Call->Arguments[5], &SPIRV::IDRegClass); in buildAtomicCompareExchangeInst()
642 Call->Arguments.size() >= 4 ? Call->Arguments[3] : Register(); in buildAtomicRMWInst()
644 assert(Call->Arguments.size() <= 4 && in buildAtomicRMWInst()
649 Register PtrRegister = Call->Arguments[0]; in buildAtomicRMWInst()
653 Call->Arguments.size() >= 3 ? Call->Arguments[2] : Register(); in buildAtomicRMWInst()
656 MRI->setRegClass(Call->Arguments[1], &SPIRV::IDRegClass); in buildAtomicRMWInst()
663 .addUse(Call->Arguments[1]); in buildAtomicRMWInst()
673 Register PtrRegister = Call->Arguments[0]; in buildAtomicFlagInst()
676 Call->Arguments.size() >= 2 ? Call->Arguments[1] : Register(); in buildAtomicFlagInst()
686 Call->Arguments.size() >= 3 ? Call->Arguments[2] : Register(); in buildAtomicFlagInst()
705 unsigned MemFlags = getIConstVal(Call->Arguments[0], MRI); in buildBarrierInst()
719 static_cast<std::memory_order>(getIConstVal(Call->Arguments[1], MRI)); in buildBarrierInst()
727 MemSemanticsReg = Call->Arguments[0]; in buildBarrierInst()
735 if (Call->Arguments.size() >= 2) { in buildBarrierInst()
737 ((Opcode != SPIRV::OpMemoryBarrier && Call->Arguments.size() == 2) || in buildBarrierInst()
738 (Opcode == SPIRV::OpMemoryBarrier && Call->Arguments.size() == 3)) && in buildBarrierInst()
740 Register ScopeArg = (Opcode == SPIRV::OpMemoryBarrier) ? Call->Arguments[2] in buildBarrierInst()
741 : Call->Arguments[1]; in buildBarrierInst()
750 ScopeReg = Call->Arguments[1]; in buildBarrierInst()
810 for (auto Argument : Call->Arguments) in generateExtInst()
833 for (auto Argument : Call->Arguments) in generateRelationalInst()
850 Register ConstRegister = Call->Arguments[0]; in generateGroupInst()
855 if (GR->getSPIRVTypeForVReg(Call->Arguments[0])->getOpcode() != in generateGroupInst()
887 if (Call->Arguments.size() > 0) { in generateGroupInst()
888 MIB.addUse(Arg0.isValid() ? Arg0 : Call->Arguments[0]); in generateGroupInst()
889 MRI->setRegClass(Call->Arguments[0], &SPIRV::IDRegClass); in generateGroupInst()
890 for (unsigned i = 1; i < Call->Arguments.size(); i++) { in generateGroupInst()
891 MIB.addUse(Call->Arguments[i]); in generateGroupInst()
892 MRI->setRegClass(Call->Arguments[i], &SPIRV::IDRegClass); in generateGroupInst()
934 Register IndexRegister = Call->Arguments[0]; in genWorkgroupQuery()
1100 unsigned Opcode = GR->getSPIRVTypeForVReg(Call->Arguments[0])->getOpcode(); in generateDotOrFMulInst()
1106 .addUse(Call->Arguments[0]) in generateDotOrFMulInst()
1107 .addUse(Call->Arguments[1]); in generateDotOrFMulInst()
1138 SPIRVType *ImgType = GR->getSPIRVTypeForVReg(Call->Arguments[0]); in generateImageSizeQueryInst()
1154 MIRBuilder.getMRI()->setRegClass(Call->Arguments[0], &SPIRV::IDRegClass); in generateImageSizeQueryInst()
1158 .addUse(Call->Arguments[0]); in generateImageSizeQueryInst()
1198 Register Image = Call->Arguments[0]; in generateImageMiscQueryInst()
1260 Register Image = Call->Arguments[0]; in generateReadImageInst()
1263 MRI->setRegClass(Call->Arguments[1], &SPIRV::IDRegClass); in generateReadImageInst()
1267 MRI->setRegClass(Call->Arguments[2], &SPIRV::IDRegClass); in generateReadImageInst()
1269 Register Sampler = Call->Arguments[1]; in generateReadImageInst()
1309 .addUse(Call->Arguments[2]) // Coordinate. in generateReadImageInst()
1324 .addUse(Call->Arguments[1]) // Coordinate. in generateReadImageInst()
1326 .addUse(Call->Arguments[2]); in generateReadImageInst()
1332 .addUse(Call->Arguments[1]); // Coordinate. in generateReadImageInst()
1340 MIRBuilder.getMRI()->setRegClass(Call->Arguments[0], &SPIRV::IDRegClass); in generateWriteImageInst()
1341 MIRBuilder.getMRI()->setRegClass(Call->Arguments[1], &SPIRV::IDRegClass); in generateWriteImageInst()
1342 MIRBuilder.getMRI()->setRegClass(Call->Arguments[2], &SPIRV::IDRegClass); in generateWriteImageInst()
1344 .addUse(Call->Arguments[0]) // Image. in generateWriteImageInst()
1345 .addUse(Call->Arguments[1]) // Coordinate. in generateWriteImageInst()
1346 .addUse(Call->Arguments[2]); // Texel. in generateWriteImageInst()
1358 uint64_t Bitmask = getIConstVal(Call->Arguments[0], MRI); in generateSampleImageInst()
1366 Register Image = Call->Arguments[0]; in generateSampleImageInst()
1378 .addUse(Call->Arguments[1]); // Sampler. in generateSampleImageInst()
1389 MRI->setRegClass(Call->Arguments[0], &SPIRV::IDRegClass); in generateSampleImageInst()
1390 MRI->setRegClass(Call->Arguments[1], &SPIRV::IDRegClass); in generateSampleImageInst()
1391 MRI->setRegClass(Call->Arguments[3], &SPIRV::IDRegClass); in generateSampleImageInst()
1396 .addUse(Call->Arguments[0]) // Image. in generateSampleImageInst()
1397 .addUse(Call->Arguments[1]) // Coordinate. in generateSampleImageInst()
1399 .addUse(Call->Arguments[3]); in generateSampleImageInst()
1407 MIRBuilder.buildSelect(Call->ReturnRegister, Call->Arguments[0], in generateSelectInst()
1408 Call->Arguments[1], Call->Arguments[2]); in generateSelectInst()
1425 static_cast<unsigned>(getIConstVal(Call->Arguments[0], MRI)); in generateSpecConstantInst()
1429 Register ConstRegister = Call->Arguments[1]; in generateSpecConstantInst()
1459 for (unsigned i = 0; i < Call->Arguments.size(); i++) in generateSpecConstantInst()
1460 MIB.addUse(Call->Arguments[i]); in generateSpecConstantInst()
1472 MRI->setRegClass(Call->Arguments[0], &SPIRV::IDRegClass); in buildNDRange()
1473 SPIRVType *PtrType = GR->getSPIRVTypeForVReg(Call->Arguments[0]); in buildNDRange()
1483 unsigned NumArgs = Call->Arguments.size(); in buildNDRange()
1485 Register GlobalWorkSize = Call->Arguments[NumArgs < 4 ? 1 : 2]; in buildNDRange()
1488 NumArgs == 2 ? Register(0) : Call->Arguments[NumArgs < 4 ? 2 : 3]; in buildNDRange()
1491 Register GlobalWorkOffset = NumArgs <= 3 ? Register(0) : Call->Arguments[1]; in buildNDRange()
1533 .addUse(Call->Arguments[0]) in buildNDRange()
1629 Register GepReg = Call->Arguments[LocalSizeArrayIdx]; in buildEnqueueKernel()
1666 MIB.addUse(Call->Arguments[i]); in buildEnqueueKernel()
1677 MachineInstr *BlockMI = getBlockStructInstr(Call->Arguments[BlockFIdx], MRI); in buildEnqueueKernel()
1682 Register BlockLiteralReg = Call->Arguments[BlockFIdx + 1]; in buildEnqueueKernel()
1710 MIRBuilder.getMRI()->setRegClass(Call->Arguments[0], &SPIRV::IDRegClass); in generateEnqueueInst()
1711 return MIRBuilder.buildInstr(Opcode).addUse(Call->Arguments[0]); in generateEnqueueInst()
1718 MIRBuilder.getMRI()->setRegClass(Call->Arguments[0], &SPIRV::IDRegClass); in generateEnqueueInst()
1722 .addUse(Call->Arguments[0]); in generateEnqueueInst()
1724 MIRBuilder.getMRI()->setRegClass(Call->Arguments[0], &SPIRV::IDRegClass); in generateEnqueueInst()
1725 MIRBuilder.getMRI()->setRegClass(Call->Arguments[1], &SPIRV::IDRegClass); in generateEnqueueInst()
1727 .addUse(Call->Arguments[0]) in generateEnqueueInst()
1728 .addUse(Call->Arguments[1]); in generateEnqueueInst()
1730 MIRBuilder.getMRI()->setRegClass(Call->Arguments[0], &SPIRV::IDRegClass); in generateEnqueueInst()
1731 MIRBuilder.getMRI()->setRegClass(Call->Arguments[1], &SPIRV::IDRegClass); in generateEnqueueInst()
1732 MIRBuilder.getMRI()->setRegClass(Call->Arguments[2], &SPIRV::IDRegClass); in generateEnqueueInst()
1734 .addUse(Call->Arguments[0]) in generateEnqueueInst()
1735 .addUse(Call->Arguments[1]) in generateEnqueueInst()
1736 .addUse(Call->Arguments[2]); in generateEnqueueInst()
1761 .addUse(Call->Arguments[0]) in generateAsyncCopy()
1762 .addUse(Call->Arguments[1]) in generateAsyncCopy()
1763 .addUse(Call->Arguments[2]) in generateAsyncCopy()
1765 .addUse(Call->Arguments[3]); in generateAsyncCopy()
1769 .addUse(Call->Arguments[0]) in generateAsyncCopy()
1770 .addUse(Call->Arguments[1]); in generateAsyncCopy()
1793 if (GR->isScalarOrVectorOfType(Call->Arguments[0], SPIRV::OpTypeInt)) { in generateConvertInst()
1810 } else if (GR->isScalarOrVectorOfType(Call->Arguments[0], in generateConvertInst()
1829 .addUse(Call->Arguments[0]); in generateConvertInst()
1847 for (auto Argument : Call->Arguments) in generateVectorLoadStoreInst()
1872 MIB.addUse(Call->Arguments[0]); in generateLoadStoreInst()
1874 MRI->setRegClass(Call->Arguments[0], &SPIRV::IDRegClass); in generateLoadStoreInst()
1877 MIB.addUse(Call->Arguments[1]); in generateLoadStoreInst()
1878 MRI->setRegClass(Call->Arguments[1], &SPIRV::IDRegClass); in generateLoadStoreInst()
1881 unsigned NumArgs = Call->Arguments.size(); in generateLoadStoreInst()
1883 MIB.addImm(getConstFromIntrinsic(Call->Arguments[IsLoad ? 1 : 2], MRI)); in generateLoadStoreInst()
1884 MRI->setRegClass(Call->Arguments[IsLoad ? 1 : 2], &SPIRV::IDRegClass); in generateLoadStoreInst()
1887 MIB.addImm(getConstFromIntrinsic(Call->Arguments[IsLoad ? 2 : 3], MRI)); in generateLoadStoreInst()
1888 MRI->setRegClass(Call->Arguments[IsLoad ? 2 : 3], &SPIRV::IDRegClass); in generateLoadStoreInst()