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(
385
385
if (auto attr = moduleOp->getAttrOfType <spirv::TargetEnvAttr>(
386
386
spirv::getTargetEnvAttrName ()))
387
387
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
+ }
391
393
392
394
rewriter.eraseOp (moduleOp);
393
395
return success ();
Original file line number Diff line number Diff line change @@ -61,9 +61,11 @@ struct GPUToSPIRVPass final : impl::ConvertGPUToSPIRVBase<GPUToSPIRVPass> {
61
61
62
62
spirv::TargetEnvAttr
63
63
GPUToSPIRVPass::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
+ }
67
69
68
70
return {};
69
71
}
You can’t perform that action at this time.
0 commit comments