Lines Matching refs:spirv
34 if (auto selectionOp = dyn_cast<spirv::SelectionOp>(op)) in getStructuredControlFlowOpMergeBlock()
36 if (auto loopOp = dyn_cast<spirv::LoopOp>(op)) in getStructuredControlFlowOpMergeBlock()
48 if (auto loopOp = dyn_cast<spirv::LoopOp>(block->getParentOp())) { in getPhiIncomingBlock()
71 namespace spirv { namespace
75 void encodeInstructionInto(SmallVectorImpl<uint32_t> &binary, spirv::Opcode op, in encodeInstructionInto()
78 binary.push_back(spirv::getPrefixedOpcode(wordCount, op)); in encodeInstructionInto()
82 Serializer::Serializer(spirv::ModuleOp module, in Serializer()
111 auto moduleSize = spirv::kHeaderWordCount + capabilities.size() + in collect()
120 spirv::appendModuleHeader(binary, module.vce_triple()->getVersion(), nextID); in collect()
168 encodeInstructionInto(capabilities, spirv::Opcode::OpCapability, in processCapability()
180 spirv::encodeStringLiteralInto(operands, fileName); in processDebugInfo()
181 encodeInstructionInto(debug, spirv::Opcode::OpString, operands); in processDebugInfo()
187 for (spirv::Extension ext : module.vce_triple()->getExtensions()) { in processExtension()
189 spirv::encodeStringLiteralInto(extName, spirv::stringifyExtension(ext)); in processExtension()
190 encodeInstructionInto(extensions, spirv::Opcode::OpExtension, extName); in processExtension()
198 encodeInstructionInto(memoryModel, spirv::Opcode::OpMemoryModel, {am, mm}); in processMemoryModel()
205 auto decoration = spirv::symbolizeDecoration(decorationName); in processDecoration()
214 case spirv::Decoration::Binding: in processDecoration()
215 case spirv::Decoration::DescriptorSet: in processDecoration()
216 case spirv::Decoration::Location: in processDecoration()
222 case spirv::Decoration::BuiltIn: in processDecoration()
224 auto enumVal = spirv::symbolizeBuiltIn(strAttr.getValue()); in processDecoration()
233 case spirv::Decoration::Aliased: in processDecoration()
234 case spirv::Decoration::Flat: in processDecoration()
235 case spirv::Decoration::NonReadable: in processDecoration()
236 case spirv::Decoration::NonWritable: in processDecoration()
237 case spirv::Decoration::NoPerspective: in processDecoration()
238 case spirv::Decoration::Restrict: in processDecoration()
239 case spirv::Decoration::RelaxedPrecision: in processDecoration()
257 spirv::encodeStringLiteralInto(nameOperands, name); in processName()
258 encodeInstructionInto(names, spirv::Opcode::OpName, nameOperands); in processName()
263 LogicalResult Serializer::processTypeDecoration<spirv::ArrayType>( in processTypeDecoration()
264 Location loc, spirv::ArrayType type, uint32_t resultID) { in processTypeDecoration()
267 return emitDecoration(resultID, spirv::Decoration::ArrayStride, {stride}); in processTypeDecoration()
273 LogicalResult Serializer::processTypeDecoration<spirv::RuntimeArrayType>( in processTypeDecoration()
274 Location loc, spirv::RuntimeArrayType type, uint32_t resultID) { in processTypeDecoration()
277 return emitDecoration(resultID, spirv::Decoration::ArrayStride, {stride}); in processTypeDecoration()
284 const spirv::StructType::MemberDecorationInfo &memberDecoration) { in processMemberDecoration()
291 encodeInstructionInto(decorations, spirv::Opcode::OpMemberDecorate, args); in processMemberDecoration()
303 if (auto ptrType = type.dyn_cast<spirv::PointerType>()) { in isInterfaceStructPtrType()
305 case spirv::StorageClass::PhysicalStorageBuffer: in isInterfaceStructPtrType()
306 case spirv::StorageClass::PushConstant: in isInterfaceStructPtrType()
307 case spirv::StorageClass::StorageBuffer: in isInterfaceStructPtrType()
308 case spirv::StorageClass::Uniform: in isInterfaceStructPtrType()
309 return ptrType.getPointeeType().isa<spirv::StructType>(); in isInterfaceStructPtrType()
336 auto typeEnum = spirv::Opcode::OpTypeVoid; in processTypeImpl()
362 encodeInstructionInto(typesGlobalValues, spirv::Opcode::OpTypePointer, in processTypeImpl()
376 Location loc, Type type, uint32_t resultID, spirv::Opcode &typeEnum, in prepareBasicType()
382 typeEnum = spirv::Opcode::OpTypeVoid; in prepareBasicType()
388 typeEnum = spirv::Opcode::OpTypeBool; in prepareBasicType()
392 typeEnum = spirv::Opcode::OpTypeInt; in prepareBasicType()
403 typeEnum = spirv::Opcode::OpTypeFloat; in prepareBasicType()
414 typeEnum = spirv::Opcode::OpTypeVector; in prepareBasicType()
420 if (auto imageType = type.dyn_cast<spirv::ImageType>()) { in prepareBasicType()
421 typeEnum = spirv::Opcode::OpTypeImage; in prepareBasicType()
436 if (auto arrayType = type.dyn_cast<spirv::ArrayType>()) { in prepareBasicType()
437 typeEnum = spirv::Opcode::OpTypeArray; in prepareBasicType()
451 if (auto ptrType = type.dyn_cast<spirv::PointerType>()) { in prepareBasicType()
453 spirv::StructType pointeeStruct = in prepareBasicType()
454 ptrType.getPointeeType().dyn_cast<spirv::StructType>(); in prepareBasicType()
468 spirv::Opcode::OpTypeForwardPointer, in prepareBasicType()
472 auto structType = spirv::StructType::getIdentified( in prepareBasicType()
492 typeEnum = spirv::Opcode::OpTypePointer; in prepareBasicType()
498 spirv::Decoration::Block))) in prepareBasicType()
506 if (auto runtimeArrayType = type.dyn_cast<spirv::RuntimeArrayType>()) { in prepareBasicType()
512 typeEnum = spirv::Opcode::OpTypeRuntimeArray; in prepareBasicType()
517 if (auto sampledImageType = type.dyn_cast<spirv::SampledImageType>()) { in prepareBasicType()
518 typeEnum = spirv::Opcode::OpTypeSampledImage; in prepareBasicType()
528 if (auto structType = type.dyn_cast<spirv::StructType>()) { in prepareBasicType()
546 spirv::StructType::MemberDecorationInfo offsetDecoration{ in prepareBasicType()
547 elementIndex, /*hasValue=*/1, spirv::Decoration::Offset, in prepareBasicType()
556 SmallVector<spirv::StructType::MemberDecorationInfo, 4> memberDecorations; in prepareBasicType()
568 typeEnum = spirv::Opcode::OpTypeStruct; in prepareBasicType()
577 type.dyn_cast<spirv::CooperativeMatrixNVType>()) { in prepareBasicType()
583 typeEnum = spirv::Opcode::OpTypeCooperativeMatrixNV; in prepareBasicType()
596 if (auto matrixType = type.dyn_cast<spirv::MatrixType>()) { in prepareBasicType()
602 typeEnum = spirv::Opcode::OpTypeMatrix; in prepareBasicType()
614 spirv::Opcode &typeEnum, in prepareFunctionType()
616 typeEnum = spirv::Opcode::OpTypeFunction; in prepareFunctionType()
687 auto elementType = constType.cast<spirv::ArrayType>().getElementType(); in prepareArrayConstant()
695 spirv::Opcode opcode = spirv::Opcode::OpConstantComposite; in prepareArrayConstant()
730 auto elementType = constType.cast<spirv::CompositeType>().getElementType(0); in prepareDenseElementsConstant()
740 spirv::Opcode opcode = spirv::Opcode::OpConstantComposite; in prepareDenseElementsConstant()
778 ? (isSpec ? spirv::Opcode::OpSpecConstantTrue in prepareConstantBool()
779 : spirv::Opcode::OpConstantTrue) in prepareConstantBool()
780 : (isSpec ? spirv::Opcode::OpSpecConstantFalse in prepareConstantBool()
781 : spirv::Opcode::OpConstantFalse); in prepareConstantBool()
811 isSpec ? spirv::Opcode::OpSpecConstant : spirv::Opcode::OpConstant; in prepareConstantInt()
882 isSpec ? spirv::Opcode::OpSpecConstant : spirv::Opcode::OpConstant; in prepareConstantFp()
946 encodeInstructionInto(functionBody, spirv::Opcode::OpLabel, {blockID}); in processBlock()
959 return isa<spirv::LoopOp, spirv::SelectionOp>(op); in processBlock()
967 encodeInstructionInto(functionBody, spirv::Opcode::OpBranch, {blockID}); in processBlock()
968 encodeInstructionInto(functionBody, spirv::Opcode::OpLabel, {blockID}); in processBlock()
1016 if (auto branchOp = dyn_cast<spirv::BranchOp>(terminator)) { in emitPhiForBlockArguments()
1019 dyn_cast<spirv::BranchConditionalOp>(terminator)) { in emitPhiForBlockArguments()
1080 encodeInstructionInto(functionBody, spirv::Opcode::OpPhi, phiArgs); in emitPhiForBlockArguments()
1100 spirv::encodeStringLiteralInto(importOperands, extensionSetName); in encodeExtensionInstruction()
1101 encodeInstructionInto(extendedSets, spirv::Opcode::OpExtInstImport, in encodeExtensionInstruction()
1116 encodeInstructionInto(functionBody, spirv::Opcode::OpExtInst, in encodeExtensionInstruction()
1127 .Case([&](spirv::AddressOfOp op) { return processAddressOfOp(op); }) in processOperation()
1128 .Case([&](spirv::BranchOp op) { return processBranchOp(op); }) in processOperation()
1129 .Case([&](spirv::BranchConditionalOp op) { in processOperation()
1132 .Case([&](spirv::ConstantOp op) { return processConstantOp(op); }) in processOperation()
1133 .Case([&](spirv::FuncOp op) { return processFuncOp(op); }) in processOperation()
1134 .Case([&](spirv::GlobalVariableOp op) { in processOperation()
1137 .Case([&](spirv::LoopOp op) { return processLoopOp(op); }) in processOperation()
1138 .Case([&](spirv::ReferenceOfOp op) { return processReferenceOfOp(op); }) in processOperation()
1139 .Case([&](spirv::SelectionOp op) { return processSelectionOp(op); }) in processOperation()
1140 .Case([&](spirv::SpecConstantOp op) { return processSpecConstantOp(op); }) in processOperation()
1141 .Case([&](spirv::SpecConstantCompositeOp op) { in processOperation()
1144 .Case([&](spirv::SpecConstantOperationOp op) { in processOperation()
1147 .Case([&](spirv::UndefOp op) { return processUndefOp(op); }) in processOperation()
1148 .Case([&](spirv::VariableOp op) { return processVariableOp(op); }) in processOperation()
1181 encodeInstructionInto(functionBody, static_cast<spirv::Opcode>(opcode), in processOpWithoutGrammarAttr()
1199 spirv::Decoration decoration, in emitDecoration()
1203 spirv::getPrefixedOpcode(wordCount, spirv::Opcode::OpDecorate)); in emitDecoration()
1222 encodeInstructionInto(binary, spirv::Opcode::OpLine, in emitDebugLine()