Lines Matching refs:spirv

44          isa_and_nonnull<spirv::FuncOp>(block->getParentOp());  in isFnEntryBlock()
51 spirv::Deserializer::Deserializer(ArrayRef<uint32_t> binary, in Deserializer()
62 LogicalResult spirv::Deserializer::deserialize() { in deserialize()
72 spirv::Opcode opcode = spirv::Opcode::OpNop; in deserialize()
101 OwningOpRef<spirv::ModuleOp> spirv::Deserializer::collect() { in collect()
109 OwningOpRef<spirv::ModuleOp> spirv::Deserializer::createModuleOp() { in createModuleOp()
111 OperationState state(unknownLoc, spirv::ModuleOp::getOperationName()); in createModuleOp()
112 spirv::ModuleOp::build(builder, state); in createModuleOp()
113 return cast<spirv::ModuleOp>(Operation::create(state)); in createModuleOp()
116 LogicalResult spirv::Deserializer::processHeader() { in processHeader()
117 if (binary.size() < spirv::kHeaderWordCount) in processHeader()
121 if (binary[0] != spirv::kMagicNumber) in processHeader()
131 version = spirv::Version::V_1_##v; \ in processHeader()
151 curOffset = spirv::kHeaderWordCount; in processHeader()
156 spirv::Deserializer::processCapability(ArrayRef<uint32_t> operands) { in processCapability()
160 auto cap = spirv::symbolizeCapability(operands[0]); in processCapability()
168 LogicalResult spirv::Deserializer::processExtension(ArrayRef<uint32_t> words) { in processExtension()
180 auto ext = spirv::symbolizeExtension(extName); in processExtension()
189 spirv::Deserializer::processExtInstImport(ArrayRef<uint32_t> words) { in processExtInstImport()
205 void spirv::Deserializer::attachVCETriple() { in attachVCETriple()
207 spirv::ModuleOp::getVCETripleAttrName(), in attachVCETriple()
208 spirv::VerCapExtAttr::get(version, capabilities.getArrayRef(), in attachVCETriple()
213 spirv::Deserializer::processMemoryModel(ArrayRef<uint32_t> operands) { in processMemoryModel()
227 LogicalResult spirv::Deserializer::processDecoration(ArrayRef<uint32_t> words) { in processDecoration()
236 stringifyDecoration(static_cast<spirv::Decoration>(words[1])); in processDecoration()
242 switch (static_cast<spirv::Decoration>(words[1])) { in processDecoration()
243 case spirv::Decoration::DescriptorSet: in processDecoration()
244 case spirv::Decoration::Binding: in processDecoration()
252 case spirv::Decoration::BuiltIn: in processDecoration()
259 stringifyBuiltIn(static_cast<spirv::BuiltIn>(words[2])))); in processDecoration()
261 case spirv::Decoration::ArrayStride: in processDecoration()
268 case spirv::Decoration::Aliased: in processDecoration()
269 case spirv::Decoration::Block: in processDecoration()
270 case spirv::Decoration::BufferBlock: in processDecoration()
271 case spirv::Decoration::Flat: in processDecoration()
272 case spirv::Decoration::NonReadable: in processDecoration()
273 case spirv::Decoration::NonWritable: in processDecoration()
274 case spirv::Decoration::NoPerspective: in processDecoration()
275 case spirv::Decoration::Restrict: in processDecoration()
276 case spirv::Decoration::RelaxedPrecision: in processDecoration()
287 case spirv::Decoration::Location: in processDecoration()
288 case spirv::Decoration::SpecId: in processDecoration()
303 spirv::Deserializer::processMemberDecoration(ArrayRef<uint32_t> words) { in processMemberDecoration()
310 auto decoration = static_cast<spirv::Decoration>(words[2]); in processMemberDecoration()
311 if (decoration == spirv::Decoration::Offset && words.size() != 4) { in processMemberDecoration()
324 LogicalResult spirv::Deserializer::processMemberName(ArrayRef<uint32_t> words) { in processMemberName()
339 spirv::Deserializer::processFunction(ArrayRef<uint32_t> operands) { in processFunction()
359 auto fnControl = spirv::symbolizeFunctionControl(operands[2]); in processFunction()
379 auto funcOp = opBuilder.create<spirv::FuncOp>( in processFunction()
397 spirv::Opcode opcode = spirv::Opcode::OpNop; in processFunction()
400 spirv::Opcode::OpFunctionParameter))) { in processFunction()
403 if (opcode != spirv::Opcode::OpFunctionParameter) { in processFunction()
435 spirv::Opcode opcode = spirv::Opcode::OpNop; in processFunction()
444 spirv::Opcode::OpFunctionEnd))) { in processFunction()
447 if (opcode == spirv::Opcode::OpFunctionEnd) { in processFunction()
450 if (opcode != spirv::Opcode::OpLabel) { in processFunction()
464 spirv::Opcode::OpFunctionEnd)) && in processFunction()
465 opcode != spirv::Opcode::OpFunctionEnd) { in processFunction()
470 if (opcode != spirv::Opcode::OpFunctionEnd) { in processFunction()
478 spirv::Deserializer::processFunctionEnd(ArrayRef<uint32_t> operands) { in processFunctionEnd()
502 spirv::Deserializer::getConstant(uint32_t id) { in getConstant()
509 Optional<spirv::SpecConstOperationMaterializationInfo>
510 spirv::Deserializer::getSpecConstantOperation(uint32_t id) { in getSpecConstantOperation()
517 std::string spirv::Deserializer::getFunctionSymbol(uint32_t id) { in getFunctionSymbol()
525 std::string spirv::Deserializer::getSpecConstantSymbol(uint32_t id) { in getSpecConstantSymbol()
533 spirv::SpecConstantOp
534 spirv::Deserializer::createSpecConstant(Location loc, uint32_t resultID, in createSpecConstant()
537 auto op = opBuilder.create<spirv::SpecConstantOp>(unknownLoc, symName, in createSpecConstant()
548 spirv::Deserializer::processGlobalVariable(ArrayRef<uint32_t> operands) { in processGlobalVariable()
562 auto ptrType = type.dyn_cast<spirv::PointerType>(); in processGlobalVariable()
579 auto storageClass = static_cast<spirv::StorageClass>(operands[wordIndex]); in processGlobalVariable()
605 auto varOp = opBuilder.create<spirv::GlobalVariableOp>( in processGlobalVariable()
618 IntegerAttr spirv::Deserializer::getConstantInt(uint32_t id) { in getConstantInt()
626 LogicalResult spirv::Deserializer::processName(ArrayRef<uint32_t> operands) { in processName()
648 LogicalResult spirv::Deserializer::processType(spirv::Opcode opcode, in processType()
652 << spirv::stringifyOpcode(opcode) << " needs at least one <id>"; in processType()
663 case spirv::Opcode::OpTypeVoid: in processType()
668 case spirv::Opcode::OpTypeBool: in processType()
673 case spirv::Opcode::OpTypeInt: { in processType()
689 case spirv::Opcode::OpTypeFloat: { in processType()
710 case spirv::Opcode::OpTypeVector: { in processType()
723 case spirv::Opcode::OpTypePointer: { in processType()
726 case spirv::Opcode::OpTypeArray: in processType()
728 case spirv::Opcode::OpTypeCooperativeMatrixNV: in processType()
730 case spirv::Opcode::OpTypeFunction: in processType()
732 case spirv::Opcode::OpTypeImage: in processType()
734 case spirv::Opcode::OpTypeSampledImage: in processType()
736 case spirv::Opcode::OpTypeRuntimeArray: in processType()
738 case spirv::Opcode::OpTypeStruct: in processType()
740 case spirv::Opcode::OpTypeMatrix: in processType()
749 spirv::Deserializer::processOpTypePointer(ArrayRef<uint32_t> operands) { in processOpTypePointer()
759 auto storageClass = static_cast<spirv::StorageClass>(operands[1]); in processOpTypePointer()
760 typeMap[typePointerID] = spirv::PointerType::get(pointeeType, storageClass); in processOpTypePointer()
803 spirv::Deserializer::processArrayType(ArrayRef<uint32_t> operands) { in processArrayType()
830 typeMap[operands[0]] = spirv::ArrayType::get( in processArrayType()
836 spirv::Deserializer::processFunctionType(ArrayRef<uint32_t> operands) { in processFunctionType()
862 spirv::Deserializer::processCooperativeMatrixType(ArrayRef<uint32_t> operands) { in processCooperativeMatrixType()
875 auto scope = spirv::symbolizeScope(getConstantInt(operands[2]).getInt()); in processCooperativeMatrixType()
885 typeMap[operands[0]] = spirv::CooperativeMatrixNVType::get( in processCooperativeMatrixType()
891 spirv::Deserializer::processRuntimeArrayType(ArrayRef<uint32_t> operands) { in processRuntimeArrayType()
901 typeMap[operands[0]] = spirv::RuntimeArrayType::get( in processRuntimeArrayType()
907 spirv::Deserializer::processStructType(ArrayRef<uint32_t> operands) { in processStructType()
917 spirv::StructType::getEmpty(context, nameMap.lookup(operands[0]).str()); in processStructType()
939 SmallVector<spirv::StructType::OffsetInfo, 0> offsetInfo; in processStructType()
940 SmallVector<spirv::StructType::MemberDecorationInfo, 0> memberDecorationsInfo; in processStructType()
947 if (memberDecoration.first == spirv::Decoration::Offset) { in processStructType()
975 spirv::StructType::get(memberTypes, offsetInfo, memberDecorationsInfo); in processStructType()
977 auto structTy = spirv::StructType::getIdentified(context, structIdentifier); in processStructType()
995 spirv::Deserializer::processMatrixType(ArrayRef<uint32_t> operands) { in processMatrixType()
1010 typeMap[operands[0]] = spirv::MatrixType::get(elementTy, colsCount); in processMatrixType()
1015 spirv::Deserializer::processTypeForwardPointer(ArrayRef<uint32_t> operands) { in processTypeForwardPointer()
1028 spirv::Deserializer::processImageType(ArrayRef<uint32_t> operands) { in processImageType()
1040 auto dim = spirv::symbolizeDim(operands[2]); in processImageType()
1045 auto depthInfo = spirv::symbolizeImageDepthInfo(operands[3]); in processImageType()
1050 auto arrayedInfo = spirv::symbolizeImageArrayedInfo(operands[4]); in processImageType()
1055 auto samplingInfo = spirv::symbolizeImageSamplingInfo(operands[5]); in processImageType()
1059 auto samplerUseInfo = spirv::symbolizeImageSamplerUseInfo(operands[6]); in processImageType()
1064 auto format = spirv::symbolizeImageFormat(operands[7]); in processImageType()
1069 typeMap[operands[0]] = spirv::ImageType::get( in processImageType()
1076 spirv::Deserializer::processSampledImageType(ArrayRef<uint32_t> operands) { in processSampledImageType()
1086 typeMap[operands[0]] = spirv::SampledImageType::get(elementTy); in processSampledImageType()
1094 LogicalResult spirv::Deserializer::processConstant(ArrayRef<uint32_t> operands, in processConstant()
1208 LogicalResult spirv::Deserializer::processConstantBool( in processConstantBool()
1231 spirv::Deserializer::processConstantComposite(ArrayRef<uint32_t> operands) { in processConstantComposite()
1264 } else if (auto arrayType = resultType.dyn_cast<spirv::ArrayType>()) { in processConstantComposite()
1276 spirv::Deserializer::processSpecConstantComposite(ArrayRef<uint32_t> operands) { in processSpecConstantComposite()
1302 auto op = opBuilder.create<spirv::SpecConstantCompositeOp>( in processSpecConstantComposite()
1311 spirv::Deserializer::processSpecConstantOperation(ArrayRef<uint32_t> operands) { in processSpecConstantOperation()
1323 spirv::Opcode enclosedOpcode = static_cast<spirv::Opcode>(operands[2]); in processSpecConstantOperation()
1337 Value spirv::Deserializer::materializeSpecConstantOperation( in materializeSpecConstantOperation()
1338 uint32_t resultID, spirv::Opcode enclosedOpcode, uint32_t resultTypeID, in materializeSpecConstantOperation()
1378 opBuilder.create<spirv::SpecConstantOperationOp>(loc, resultType); in materializeSpecConstantOperation()
1391 opBuilder.create<spirv::YieldOp>(loc, block.front().getResult(0)); in materializeSpecConstantOperation()
1396 spirv::Deserializer::processConstantNull(ArrayRef<uint32_t> operands) { in processConstantNull()
1425 Block *spirv::Deserializer::getOrCreateBlock(uint32_t id) { in getOrCreateBlock()
1441 LogicalResult spirv::Deserializer::processBranch(ArrayRef<uint32_t> operands) { in processBranch()
1455 opBuilder.create<spirv::BranchOp>(loc, target); in processBranch()
1462 spirv::Deserializer::processBranchConditional(ArrayRef<uint32_t> operands) { in processBranchConditional()
1486 opBuilder.create<spirv::BranchConditionalOp>( in processBranchConditional()
1495 LogicalResult spirv::Deserializer::processLabel(ArrayRef<uint32_t> operands) { in processLabel()
1519 spirv::Deserializer::processSelectionMerge(ArrayRef<uint32_t> operands) { in processSelectionMerge()
1545 spirv::Deserializer::processLoopMerge(ArrayRef<uint32_t> operands) { in processLoopMerge()
1571 LogicalResult spirv::Deserializer::processPhi(ArrayRef<uint32_t> operands) { in processPhi()
1610 spirv::BlockMergeInfoMap &mergeInfo, Block *header, in ControlFlowStructurizer()
1618 spirv::BlockMergeInfoMap &mergeInfo, Block *header,
1635 spirv::SelectionOp createSelectionOp(uint32_t selectionControl);
1638 spirv::LoopOp createLoopOp(uint32_t loopControl);
1646 spirv::BlockMergeInfoMap &blockMergeInfo;
1661 spirv::SelectionOp
1667 auto control = static_cast<spirv::SelectionControl>(selectionControl); in createSelectionOp()
1668 auto selectionOp = builder.create<spirv::SelectionOp>(location, control); in createSelectionOp()
1674 spirv::LoopOp ControlFlowStructurizer::createLoopOp(uint32_t loopControl) { in createLoopOp()
1679 auto control = static_cast<spirv::LoopControl>(loopControl); in createLoopOp()
1680 auto loopOp = builder.create<spirv::LoopOp>(location, control); in createLoopOp()
1813 builder.create<spirv::BranchOp>(location, mapper.lookupOrNull(headerBlock), in structurize()
1888 builder.create<spirv::BranchOp>(location, mergeBlock); in structurize()
1903 LogicalResult spirv::Deserializer::wireUpBlockArgument() { in wireUpBlockArgument()
1940 if (auto branchOp = dyn_cast<spirv::BranchOp>(op)) { in wireUpBlockArgument()
1942 opBuilder.create<spirv::BranchOp>(branchOp.getLoc(), branchOp.getTarget(), in wireUpBlockArgument()
1945 } else if (auto branchCondOp = dyn_cast<spirv::BranchConditionalOp>(op)) { in wireUpBlockArgument()
1950 opBuilder.create<spirv::BranchConditionalOp>( in wireUpBlockArgument()
1956 opBuilder.create<spirv::BranchConditionalOp>( in wireUpBlockArgument()
1983 LogicalResult spirv::Deserializer::structurizeControlFlow() { in structurizeControlFlow()
2043 Location spirv::Deserializer::createFileLineColLoc(OpBuilder opBuilder) { in createFileLineColLoc()
2055 spirv::Deserializer::processDebugLine(ArrayRef<uint32_t> operands) { in processDebugLine()
2067 void spirv::Deserializer::clearDebugLine() { debugLine = llvm::None; } in clearDebugLine()
2070 spirv::Deserializer::processDebugString(ArrayRef<uint32_t> operands) { in processDebugString()