| /llvm-project-15.0.7/mlir/lib/Dialect/SPIRV/IR/ |
| H A D | TargetAndABI.cpp | 22 spirv::TargetEnv::TargetEnv(spirv::TargetEnvAttr targetAttr) in TargetEnv() 41 spirv::Version spirv::TargetEnv::getVersion() const { in getVersion() 50 spirv::TargetEnv::allows(ArrayRef<spirv::Capability> caps) const { in allows() 59 bool spirv::TargetEnv::allows(spirv::Extension extension) const { in allows() 64 spirv::TargetEnv::allows(ArrayRef<spirv::Extension> exts) const { in allows() 73 spirv::Vendor spirv::TargetEnv::getVendorID() const { in getVendorID() 77 spirv::DeviceType spirv::TargetEnv::getDeviceType() const { in getDeviceType() 179 spirv::TargetEnvAttr spirv::lookupTargetEnv(Operation *op) { in lookupTargetEnv() 203 spirv::getAddressingModel(spirv::TargetEnvAttr targetAttr) { in getAddressingModel() 220 spirv::getExecutionModel(spirv::TargetEnvAttr targetAttr) { in getExecutionModel() [all …]
|
| H A D | SPIRVOps.cpp | 332 elidedAttrs.push_back(spirv::attributeName<spirv::StorageClass>()); in printMemoryAccessAttribute() 365 elidedAttrs.push_back(spirv::attributeName<spirv::StorageClass>()); in printSourceMemoryAccessAttribute() 405 spirv::ImageOperands::Bias | spirv::ImageOperands::Lod | in verifyImageOperands() 408 spirv::ImageOperands::Sample | spirv::ImageOperands::MinLod | in verifyImageOperands() 900 spirv::Scope scope = static_cast<spirv::Scope>( in verifyGroupNonUniformArithmeticOp() 2254 {spirv::attributeName<spirv::FunctionControl>()}); in print() 2489 spirv::attributeName<spirv::StorageClass>()}; in print() 3226 DenseMap<std::pair<spirv::FuncOp, spirv::ExecutionModel>, spirv::EntryPointOp> in verifyRegions() 3436 spirv::SelectionOp spirv::SelectionOp::createIfThen( in createIfThen() 3632 spirv::attributeName<spirv::StorageClass>()}; in print() [all …]
|
| H A D | SPIRVAttributes.cpp | 24 namespace spirv { namespace 32 namespace spirv { namespace 187 spirv::VerCapExtAttr spirv::VerCapExtAttr::get( in get() 188 spirv::Version version, ArrayRef<spirv::Capability> capabilities, in get() 207 spirv::VerCapExtAttr spirv::VerCapExtAttr::get(IntegerAttr version, in get() 217 spirv::Version spirv::VerCapExtAttr::getVersion() { in getVersion() 285 spirv::TargetEnvAttr spirv::TargetEnvAttr::get(spirv::VerCapExtAttr triple, in get() 297 spirv::VerCapExtAttr spirv::TargetEnvAttr::getTripleAttr() const { in getTripleAttr() 301 spirv::Version spirv::TargetEnvAttr::getVersion() const { in getVersion() 321 spirv::Vendor spirv::TargetEnvAttr::getVendorID() const { in getVendorID() [all …]
|
| H A D | SPIRVCanonicalization.cpp | 90 : public OpRewritePattern<spirv::AccessChainOp> { 107 rewriter.replaceOpWithNewOp<spirv::AccessChainOp>( in matchAndRewrite() 115 void spirv::AccessChainOp::getCanonicalizationPatterns( in getCanonicalizationPatterns() 234 void spirv::LogicalNotOp::getCanonicalizationPatterns( in getCanonicalizationPatterns() 293 : public OpRewritePattern<spirv::SelectionOp> { 332 auto selectOp = rewriter.create<spirv::SelectOp>( in matchAndRewrite() 355 isa<spirv::BranchConditionalOp>(block->front()); in onlyContainsBranchConditionalOp() 358 bool isSameAttrList(spirv::StoreOp lhs, spirv::StoreOp rhs) const { in isSameAttrList() 364 auto storeOp = cast<spirv::StoreOp>(block->front()); in getSrcValue() 370 auto storeOp = cast<spirv::StoreOp>(block->front()); in getDstPtr() [all …]
|
| /llvm-project-15.0.7/mlir/lib/Conversion/MathToSPIRV/ |
| H A D | MathToSPIRV.cpp | 290 spirv::ElementwiseOpPattern<math::AbsOp, spirv::GLFAbsOp>, in populateMathToSPIRVPatterns() 291 spirv::ElementwiseOpPattern<math::CeilOp, spirv::GLCeilOp>, in populateMathToSPIRVPatterns() 292 spirv::ElementwiseOpPattern<math::CosOp, spirv::GLCosOp>, in populateMathToSPIRVPatterns() 293 spirv::ElementwiseOpPattern<math::ExpOp, spirv::GLExpOp>, in populateMathToSPIRVPatterns() 294 spirv::ElementwiseOpPattern<math::FloorOp, spirv::GLFloorOp>, in populateMathToSPIRVPatterns() 295 spirv::ElementwiseOpPattern<math::FmaOp, spirv::GLFmaOp>, in populateMathToSPIRVPatterns() 296 spirv::ElementwiseOpPattern<math::LogOp, spirv::GLLogOp>, in populateMathToSPIRVPatterns() 298 spirv::ElementwiseOpPattern<math::SinOp, spirv::GLSinOp>, in populateMathToSPIRVPatterns() 299 spirv::ElementwiseOpPattern<math::SqrtOp, spirv::GLSqrtOp>, in populateMathToSPIRVPatterns() 300 spirv::ElementwiseOpPattern<math::TanhOp, spirv::GLTanhOp>>( in populateMathToSPIRVPatterns() [all …]
|
| /llvm-project-15.0.7/mlir/lib/Dialect/SPIRV/Transforms/ |
| H A D | LowerABIAttributesPass.cpp | 26 static spirv::GlobalVariableOp 48 spirv::PointerType::get(spirv::StructType::get(varType), *storageClass); in createGlobalVarForEntryPointArgument() 71 getInterfaceVariables(spirv::FuncOp funcOp, in getInterfaceVariables() 91 case spirv::StorageClass::Input: in getInterfaceVariables() 92 case spirv::StorageClass::Output: in getInterfaceVariables() 127 spirv::TargetEnvAttr targetEnv = spirv::lookupTargetEnv(funcOp); in lowerEntryPointABIAttr() 129 spirv::getExecutionModel(targetEnv); in lowerEntryPointABIAttr() 142 builder.create<spirv::ExecutionModeOp>( in lowerEntryPointABIAttr() 242 spirv::TargetEnv targetEnv(spirv::lookupTargetEnv(module)); in runOnOperation() 260 target.addDynamicallyLegalOp<spirv::FuncOp>([&](spirv::FuncOp op) { in runOnOperation() [all …]
|
| H A D | SPIRVConversion.cpp | 48 for (spirv::Extension ext : ors) in checkExtensionRequirements() 95 case spirv::StorageClass::Uniform: in needsExplicitLayout() 104 static spirv::PointerType 165 Optional<spirv::StorageClass> 621 static spirv::GlobalVariableOp 644 case spirv::BuiltIn::SubgroupId: in getOrInsertBuiltinVariable() 648 spirv::PointerType::get(integerType, spirv::StorageClass::Input); in getOrInsertBuiltinVariable() 671 spirv::GlobalVariableOp varOp = in getBuiltinVariableValue() 690 return spirv::PointerType::get(structType, spirv::StorageClass::PushConstant); in getPushConstantStorageType() 720 static spirv::GlobalVariableOp [all …]
|
| H A D | UpdateVCEPass.cpp | 44 Operation *op, const spirv::TargetEnv &targetEnv, in checkAndUpdateExtensionRequirements() 52 for (spirv::Extension ext : ors) in checkAndUpdateExtensionRequirements() 80 for (spirv::Capability cap : ors) in checkAndUpdateCapabilityRequirements() 93 spirv::ModuleOp module = getOperation(); in runOnOperation() 95 spirv::TargetEnvAttr targetAttr = spirv::lookupTargetEnv(module); in runOnOperation() 101 spirv::TargetEnv targetEnv(targetAttr); in runOnOperation() 104 spirv::Version deducedVersion = spirv::Version::V_1_0; in runOnOperation() 105 SetVector<spirv::Extension> deducedExtensions; in runOnOperation() 106 SetVector<spirv::Capability> deducedCapabilities; in runOnOperation() 174 auto triple = spirv::VerCapExtAttr::get( in runOnOperation() [all …]
|
| H A D | UnifyAliasedResourcePass.cpp | 85 for (spirv::SPIRVType type : types) { in deduceCanonicalResource() 164 spirv::GlobalVariableOp 166 spirv::GlobalVariableOp 170 spirv::SPIRVType getElementType(spirv::GlobalVariableOp varOp) const; 188 DenseMap<spirv::GlobalVariableOp, spirv::SPIRVType> elementTypeMap; 235 spirv::GlobalVariableOp varOp) const { in getCanonicalResource() 242 spirv::SPIRVType 253 SmallVector<spirv::SPIRVType> elementTypes; in recordIfUnifiable() 520 target.addDynamicallyLegalOp<spirv::GlobalVariableOp, spirv::AddressOfOp, in runOnOperation() 521 spirv::AccessChainOp, spirv::LoadOp, in runOnOperation() [all …]
|
| H A D | DecorateCompositeTypeLayoutPass.cpp | 28 : public OpRewritePattern<spirv::GlobalVariableOp> { 32 LogicalResult matchAndRewrite(spirv::GlobalVariableOp op, in matchAndRewrite() 36 auto ptrType = op.type().cast<spirv::PointerType>(); in matchAndRewrite() 53 rewriter.replaceOpWithNewOp<spirv::GlobalVariableOp>( in matchAndRewrite() 60 : public OpRewritePattern<spirv::AddressOfOp> { 64 LogicalResult matchAndRewrite(spirv::AddressOfOp op, in matchAndRewrite() 70 rewriter.replaceOpWithNewOp<spirv::AddressOfOp>( in matchAndRewrite() 113 target.addLegalDialect<spirv::SPIRVDialect>(); in runOnOperation() 116 [](spirv::GlobalVariableOp op) { in runOnOperation() 121 target.addDynamicallyLegalOp<spirv::AddressOfOp>([](spirv::AddressOfOp op) { in runOnOperation() [all …]
|
| /llvm-project-15.0.7/mlir/unittests/Dialect/SPIRV/ |
| H A D | SerializationTest.cpp | 56 spirv::Version::V_1_0, ArrayRef<spirv::Capability>(), in initModuleOp() 58 spirv::ModuleOp::build(builder, state); in initModuleOp() 63 spirv::StructType getFloatStructType() { in getFloatStructType() 73 auto ptrType = spirv::PointerType::get(type, spirv::StorageClass::Uniform); in addGlobalVar() 88 auto currOffset = spirv::kHeaderWordCount; in scanInstruction() 95 spirv::Opcode opcode = in scanInstruction() 109 OwningOpRef<spirv::ModuleOp> module; 156 spirv::SerializationOptions options; in TEST_F() 162 return opcode == spirv::Opcode::OpName && in TEST_F() 172 spirv::SerializationOptions options; in TEST_F() [all …]
|
| H A D | DeserializationTest.cpp | 38 context.getOrLoadDialect<mlir::spirv::SPIRVDialect>(); in DeserializationTest() 47 OwningOpRef<spirv::ModuleOp> deserialize() { in deserialize() 48 return spirv::deserialize(binary, &context); in deserialize() 65 spirv::appendModuleHeader(binary, spirv::Version::V_1_0, /*idBound=*/0); in addHeader() 77 addInstruction(spirv::Opcode::OpTypeVoid, {id}); in addVoidType() 92 addInstruction(spirv::Opcode::OpTypeStruct, words); in addStructType() 108 addInstruction(spirv::Opcode::OpFunction, in addFunction() 191 (void)spirv::encodeStringLiteralInto(operands1, "i1"); in TEST_F() 192 addInstruction(spirv::Opcode::OpMemberName, operands1); in TEST_F() 195 (void)spirv::encodeStringLiteralInto(operands2, "i2"); in TEST_F() [all …]
|
| /llvm-project-15.0.7/mlir/lib/Target/SPIRV/Deserialization/ |
| H A D | DeserializeOps.cpp | 76 spirv::Deserializer::sliceInstruction(spirv::Opcode &opcode, in sliceInstruction() 137 case spirv::Opcode::OpLine: in processInstruction() 139 case spirv::Opcode::OpNoLine: in processInstruction() 142 case spirv::Opcode::OpName: in processInstruction() 144 case spirv::Opcode::OpString: in processInstruction() 147 case spirv::Opcode::OpSource: in processInstruction() 196 case spirv::Opcode::OpLabel: in processInstruction() 198 case spirv::Opcode::OpBranch: in processInstruction() 206 case spirv::Opcode::OpPhi: in processInstruction() 208 case spirv::Opcode::OpUndef: in processInstruction() [all …]
|
| H A D | Deserializer.cpp | 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() 269 case spirv::Decoration::Block: in processDecoration() 271 case spirv::Decoration::Flat: in processDecoration() 397 spirv::Opcode opcode = spirv::Opcode::OpNop; in processFunction() 435 spirv::Opcode opcode = spirv::Opcode::OpNop; in processFunction() 533 spirv::SpecConstantOp 648 LogicalResult spirv::Deserializer::processType(spirv::Opcode opcode, in processType() 1323 spirv::Opcode enclosedOpcode = static_cast<spirv::Opcode>(operands[2]); in processSpecConstantOperation() [all …]
|
| H A D | Deserializer.h | 26 namespace spirv { 85 spirv::StructType deferredStructType; 101 spirv::Opcode enclodesOpcode; 129 OwningOpRef<spirv::ModuleOp> collect(); 137 OwningOpRef<spirv::ModuleOp> createModuleOp(); 211 spirv::SpecConstantOp getSpecConstant(uint32_t id) { in getSpecConstant() 494 OwningOpRef<spirv::ModuleOp> module; 497 Optional<spirv::FuncOp> curFunction; 504 spirv::Version version = spirv::Version::V_1_0; 510 llvm::SmallSetVector<spirv::Extension, 2> extensions; [all …]
|
| /llvm-project-15.0.7/mlir/lib/Conversion/GPUToSPIRV/ |
| H A D | GPUToSPIRV.cpp | 30 template <typename SourceOp, spirv::BuiltIn builtin> 42 template <typename SourceOp, spirv::BuiltIn builtin> 172 rewriter.replaceOpWithNewOp<spirv::ConstantOp>( in matchAndRewrite() 182 static spirv::FuncOp 244 spirv::TargetEnvAttr targetEnv = spirv::lookupTargetEnvOrDefault(funcOp); in getDefaultABIAttrs() 254 Optional<spirv::StorageClass> sc; in getDefaultABIAttrs() 256 sc = spirv::StorageClass::StorageBuffer; in getDefaultABIAttrs() 307 spirv::TargetEnvAttr targetEnv = spirv::lookupTargetEnvOrDefault(moduleOp); in matchAndRewrite() 308 spirv::AddressingModel addressingModel = spirv::getAddressingModel(targetEnv); in matchAndRewrite() 309 FailureOr<spirv::MemoryModel> memoryModel = spirv::getMemoryModel(targetEnv); in matchAndRewrite() [all …]
|
| /llvm-project-15.0.7/mlir/lib/Conversion/ArithmeticToSPIRV/ |
| H A D | ArithmeticToSPIRV.cpp | 859 spirv::ElementwiseOpPattern<arith::AddIOp, spirv::IAddOp>, in populateArithmeticToSPIRVPatterns() 860 spirv::ElementwiseOpPattern<arith::SubIOp, spirv::ISubOp>, in populateArithmeticToSPIRVPatterns() 861 spirv::ElementwiseOpPattern<arith::MulIOp, spirv::IMulOp>, in populateArithmeticToSPIRVPatterns() 862 spirv::ElementwiseOpPattern<arith::DivUIOp, spirv::UDivOp>, in populateArithmeticToSPIRVPatterns() 863 spirv::ElementwiseOpPattern<arith::DivSIOp, spirv::SDivOp>, in populateArithmeticToSPIRVPatterns() 864 spirv::ElementwiseOpPattern<arith::RemUIOp, spirv::UModOp>, in populateArithmeticToSPIRVPatterns() 873 spirv::ElementwiseOpPattern<arith::AddFOp, spirv::FAddOp>, in populateArithmeticToSPIRVPatterns() 874 spirv::ElementwiseOpPattern<arith::SubFOp, spirv::FSubOp>, in populateArithmeticToSPIRVPatterns() 875 spirv::ElementwiseOpPattern<arith::MulFOp, spirv::FMulOp>, in populateArithmeticToSPIRVPatterns() 876 spirv::ElementwiseOpPattern<arith::DivFOp, spirv::FDivOp>, in populateArithmeticToSPIRVPatterns() [all …]
|
| /llvm-project-15.0.7/mlir/lib/Conversion/SPIRVToLLVM/ |
| H A D | SPIRVToLLVM.cpp | 234 auto storeOp = cast<spirv::StoreOp>(op); in replaceWithLoadOrStore() 235 spirv::StoreOpAdaptor adaptor(operands); in replaceWithLoadOrStore() 737 case spirv::StorageClass::Input: in matchAndRewrite() 738 case spirv::StorageClass::Private: in matchAndRewrite() 739 case spirv::StorageClass::Output: in matchAndRewrite() 906 case spirv::MemoryAccess::Aligned: in matchAndRewrite() 907 case spirv::MemoryAccess::None: in matchAndRewrite() 1469 NotPattern<spirv::NotOp>, in populateSPIRVToLLVMConversionPatterns() 1512 ErasePattern<spirv::MergeOp>, in populateSPIRVToLLVMConversionPatterns() 1537 NotPattern<spirv::LogicalNotOp>, in populateSPIRVToLLVMConversionPatterns() [all …]
|
| /llvm-project-15.0.7/mlir/lib/Target/SPIRV/Serialization/ |
| H A D | Serializer.cpp | 71 namespace spirv { namespace 189 spirv::encodeStringLiteralInto(extName, spirv::stringifyExtension(ext)); in processExtension() 214 case spirv::Decoration::Binding: in processDecoration() 222 case spirv::Decoration::BuiltIn: in processDecoration() 234 case spirv::Decoration::Flat: in processDecoration() 695 spirv::Opcode opcode = spirv::Opcode::OpConstantComposite; in prepareArrayConstant() 740 spirv::Opcode opcode = spirv::Opcode::OpConstantComposite; in prepareDenseElementsConstant() 811 isSpec ? spirv::Opcode::OpSpecConstant : spirv::Opcode::OpConstant; in prepareConstantInt() 882 isSpec ? spirv::Opcode::OpSpecConstant : spirv::Opcode::OpConstant; in prepareConstantFp() 959 return isa<spirv::LoopOp, spirv::SelectionOp>(op); in processBlock() [all …]
|
| H A D | SerializeOps.cpp | 58 namespace spirv { namespace 278 auto attr = op->getAttr(spirv::attributeName<spirv::StorageClass>()); in processVariableOp() 283 elidedAttrs.push_back(spirv::attributeName<spirv::StorageClass>()); in processVariableOp() 453 functionBody, spirv::Opcode::OpLoopMerge, in processLoopOp() 484 spirv::BranchConditionalOp condBranchOp) { in processBranchConditionalOp() 536 Serializer::processOp<spirv::EntryPointOp>(spirv::EntryPointOp op) { in processOp() 570 Serializer::processOp<spirv::ControlBarrierOp>(spirv::ControlBarrierOp op) { in processOp() 591 Serializer::processOp<spirv::ExecutionModeOp>(spirv::ExecutionModeOp op) { in processOp() 620 Serializer::processOp<spirv::MemoryBarrierOp>(spirv::MemoryBarrierOp op) { in processOp() 639 Serializer::processOp<spirv::FunctionCallOp>(spirv::FunctionCallOp op) { in processOp() [all …]
|
| /llvm-project-15.0.7/mlir/lib/Conversion/MemRefToSPIRV/ |
| H A D | MemRefToSPIRV.cpp | 119 Optional<spirv::StorageClass> storageClass = in getAtomicOpScope() 125 case spirv::StorageClass::StorageBuffer: in getAtomicOpScope() 126 return spirv::Scope::Device; in getAtomicOpScope() 127 case spirv::StorageClass::Workgroup: in getAtomicOpScope() 128 return spirv::Scope::Workgroup; in getAtomicOpScope() 280 spirv::GlobalVariableOp varOp; in matchAndRewrite() 326 spirv::AccessChainOp accessChainOp = in matchAndRewrite() 370 spirv::attributeName<spirv::MemoryAccess>()), in matchAndRewrite() 419 auto loadPtr = spirv::getElementPtr( in matchAndRewrite() 439 spirv::AccessChainOp accessChainOp = in matchAndRewrite() [all …]
|
| /llvm-project-15.0.7/mlir/lib/Dialect/SPIRV/Utils/ |
| H A D | LayoutUtils.cpp | 20 spirv::StructType 27 spirv::StructType 28 VulkanLayoutUtils::decorateType(spirv::StructType structType, in decorateType() 36 SmallVector<spirv::StructType::OffsetInfo, 4> offsetInfo; in decorateType() 82 if (type.isa<spirv::ScalarType>()) { in decorateType() 90 if (auto arrayType = type.dyn_cast<spirv::ArrayType>()) in decorateType() 160 auto ptrType = type.dyn_cast<spirv::PointerType>(); in isLegalType() 172 case spirv::StorageClass::Uniform: in isLegalType() 173 case spirv::StorageClass::StorageBuffer: in isLegalType() 174 case spirv::StorageClass::PushConstant: in isLegalType() [all …]
|
| /llvm-project-15.0.7/mlir/test/lib/Dialect/SPIRV/ |
| H A D | TestAvailability.cpp | 53 os << spirv::stringifyVersion(*minVersion) << "\n"; in runOnOperation() 62 os << spirv::stringifyVersion(*maxVersion) << "\n"; in runOnOperation() 72 os << spirv::stringifyExtension(ext); in runOnOperation() 84 os << spirv::stringifyCapability(cap); in runOnOperation() 156 .cast<spirv::TargetEnvAttr>(); in runOnOperation() 187 op, value.getType(), ptr, spirv::Scope::Workgroup, in matchAndRewrite() 188 spirv::MemorySemantics::AcquireRelease | in matchAndRewrite() 189 spirv::MemorySemantics::AtomicCounterMemory, in matchAndRewrite() 203 rewriter.replaceOpWithNewOp<spirv::BitReverseOp>( in matchAndRewrite() 228 rewriter.replaceOpWithNewOp<spirv::ModuleOp>( in matchAndRewrite() [all …]
|
| /llvm-project-15.0.7/mlir/include/mlir/Dialect/SPIRV/Transforms/ |
| H A D | Passes.td | 15 : Pass<"decorate-spirv-composite-type-layout", "ModuleOp"> { 17 let constructor = "mlir::spirv::createDecorateSPIRVCompositeTypeLayoutPass()"; 20 def SPIRVCanonicalizeGL : Pass<"spirv-canonicalize-gl", ""> { 22 let constructor = "mlir::spirv::createCanonicalizeGLPass()"; 25 def SPIRVLowerABIAttributes : Pass<"spirv-lower-abi-attrs", "spirv::ModuleOp"> { 27 let constructor = "mlir::spirv::createLowerABIAttributesPass()"; 30 def SPIRVRewriteInsertsPass : Pass<"spirv-rewrite-inserts", "spirv::ModuleOp"> { 33 let constructor = "mlir::spirv::createRewriteInsertsPass()"; 37 : Pass<"spirv-unify-aliased-resource", "spirv::ModuleOp"> { 40 let constructor = "mlir::spirv::createUnifyAliasedResourcePass()"; [all …]
|
| /llvm-project-15.0.7/mlir/lib/Conversion/SCFToSPIRV/ |
| H A D | SCFToSPIRV.cpp | 140 spirv::PointerType::get(convertedType, spirv::StorageClass::Function); in replaceSCFOutputValue() 142 auto alloc = rewriter.create<spirv::VariableOp>( in replaceSCFOutputValue() 170 auto loopOp = rewriter.create<spirv::LoopOp>(loc, spirv::LoopControl::None); in matchAndRewrite() 212 auto cmpOp = rewriter.create<spirv::SLessThanOp>( in matchAndRewrite() 215 rewriter.create<spirv::BranchConditionalOp>( in matchAndRewrite() 253 rewriter.create<spirv::SelectionOp>(loc, spirv::SelectionControl::None); in matchAndRewrite() 256 rewriter.create<spirv::MergeOp>(loc); in matchAndRewrite() 266 rewriter.create<spirv::BranchOp>(loc, mergeBlock); in matchAndRewrite() 342 auto loopOp = rewriter.create<spirv::LoopOp>(loc, spirv::LoopControl::None); in matchAndRewrite() 395 spirv::PointerType::get(res.getType(), spirv::StorageClass::Function); in matchAndRewrite() [all …]
|