Lines Matching refs:spirv

44     Operation *op, const spirv::TargetEnv &targetEnv,  in checkAndUpdateExtensionRequirements()
45 const spirv::SPIRVType::ExtensionArrayRefVector &candidates, in checkAndUpdateExtensionRequirements()
46 SetVector<spirv::Extension> &deducedExtensions) { in checkAndUpdateExtensionRequirements()
48 if (Optional<spirv::Extension> chosen = targetEnv.allows(ors)) { in checkAndUpdateExtensionRequirements()
52 for (spirv::Extension ext : ors) in checkAndUpdateExtensionRequirements()
53 extStrings.push_back(spirv::stringifyExtension(ext)); in checkAndUpdateExtensionRequirements()
72 Operation *op, const spirv::TargetEnv &targetEnv, in checkAndUpdateCapabilityRequirements()
73 const spirv::SPIRVType::CapabilityArrayRefVector &candidates, in checkAndUpdateCapabilityRequirements()
74 SetVector<spirv::Capability> &deducedCapabilities) { in checkAndUpdateCapabilityRequirements()
76 if (Optional<spirv::Capability> chosen = targetEnv.allows(ors)) { in checkAndUpdateCapabilityRequirements()
80 for (spirv::Capability cap : ors) in checkAndUpdateCapabilityRequirements()
81 capStrings.push_back(spirv::stringifyCapability(cap)); 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()
102 spirv::Version allowedVersion = targetAttr.getVersion(); 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()
112 if (auto minVersionIfx = dyn_cast<spirv::QueryMinVersionInterface>(op)) { in runOnOperation()
113 Optional<spirv::Version> minVersion = minVersionIfx.getMinVersion(); in runOnOperation()
119 << spirv::stringifyVersion(deducedVersion) in runOnOperation()
121 << spirv::stringifyVersion(allowedVersion); in runOnOperation()
127 if (auto extensions = dyn_cast<spirv::QueryExtensionInterface>(op)) in runOnOperation()
133 if (auto capabilities = dyn_cast<spirv::QueryCapabilityInterface>(op)) in runOnOperation()
145 if (auto globalVar = dyn_cast<spirv::GlobalVariableOp>(op)) in runOnOperation()
149 SmallVector<ArrayRef<spirv::Extension>, 4> typeExtensions; in runOnOperation()
150 SmallVector<ArrayRef<spirv::Capability>, 8> typeCapabilities; in runOnOperation()
153 valueType.cast<spirv::SPIRVType>().getExtensions(typeExtensions); in runOnOperation()
159 valueType.cast<spirv::SPIRVType>().getCapabilities(typeCapabilities); in runOnOperation()
174 auto triple = spirv::VerCapExtAttr::get( in runOnOperation()
177 module->setAttr(spirv::ModuleOp::getVCETripleAttrName(), triple); in runOnOperation()
180 std::unique_ptr<OperationPass<spirv::ModuleOp>>
181 mlir::spirv::createUpdateVersionCapabilityExtensionPass() { in createUpdateVersionCapabilityExtensionPass()