File tree Expand file tree Collapse file tree 2 files changed +10
-6
lines changed
mlir/lib/Conversion/GPUToSPIRV Expand file tree Collapse file tree 2 files changed +10
-6
lines changed Original file line number Diff line number Diff line change @@ -385,9 +385,11 @@ LogicalResult GPUModuleConversion::matchAndRewrite(
385385 if (auto attr = moduleOp->getAttrOfType <spirv::TargetEnvAttr>(
386386 spirv::getTargetEnvAttrName ()))
387387 spvModule->setAttr (spirv::getTargetEnvAttrName (), attr);
388- for (const Attribute &targetAttr : moduleOp.getTargetsAttr ())
389- if (auto spirvTargetEnvAttr = dyn_cast<spirv::TargetEnvAttr>(targetAttr))
390- spvModule->setAttr (spirv::getTargetEnvAttrName (), spirvTargetEnvAttr);
388+ if (const ArrayAttr &targets = moduleOp.getTargetsAttr ()) {
389+ for (const Attribute &targetAttr : targets)
390+ if (auto spirvTargetEnvAttr = dyn_cast<spirv::TargetEnvAttr>(targetAttr))
391+ spvModule->setAttr (spirv::getTargetEnvAttrName (), spirvTargetEnvAttr);
392+ }
391393
392394 rewriter.eraseOp (moduleOp);
393395 return success ();
Original file line number Diff line number Diff line change @@ -61,9 +61,11 @@ struct GPUToSPIRVPass final : impl::ConvertGPUToSPIRVBase<GPUToSPIRVPass> {
6161
6262spirv::TargetEnvAttr
6363GPUToSPIRVPass::lookupTargetEnvInTargets (gpu::GPUModuleOp moduleOp) {
64- for (const Attribute &targetAttr : moduleOp.getTargetsAttr ())
65- if (auto spirvTargetEnvAttr = dyn_cast<spirv::TargetEnvAttr>(targetAttr))
66- return spirvTargetEnvAttr;
64+ if (const ArrayAttr &targets = moduleOp.getTargetsAttr ()) {
65+ for (const Attribute &targetAttr : targets)
66+ if (auto spirvTargetEnvAttr = dyn_cast<spirv::TargetEnvAttr>(targetAttr))
67+ return spirvTargetEnvAttr;
68+ }
6769
6870 return {};
6971}
You can’t perform that action at this time.
0 commit comments