[Mlir-commits] [mlir] [MLIR] Update convert-gpu-to-spirv pass to prepare using GPU compilat… (PR #69941)
Jakub Kuderski
llvmlistbot at llvm.org
Fri Oct 27 14:52:46 PDT 2023
================
@@ -76,22 +76,24 @@ void GPUToSPIRVPass::runOnOperation() {
// This works fine for Vulkan shader that has a dedicated runner.
// But OpenCL kernel needs SPIRV module placed inside original GPU module as
// OpenCL uses GPU compilation pipeline.
- auto targetEnv = getTargetEnvFromGPUModuleOp(moduleOp);
+ const mlir::spirv::TargetEnv& targetEnv = getTargetEnvFromGPUModuleOp(moduleOp);
FailureOr<spirv::MemoryModel> memoryModel =
spirv::getMemoryModel(targetEnv);
if (failed(memoryModel))
return signalPassFailure();
- (memoryModel == spirv::MemoryModel::OpenCL)
- ? builder.setInsertionPoint(moduleOp.getBody(),
- moduleOp.getBody()->begin())
- : builder.setInsertionPoint(moduleOp.getOperation());
+ if (memoryModel == spirv::MemoryModel::OpenCL) {
+ builder.setInsertionPoint(moduleOp.getBody(),
+ moduleOp.getBody()->begin());
+ } else {
+ builder.setInsertionPoint(moduleOp.getOperation());
+ }
gpuModules.push_back(builder.clone(*moduleOp.getOperation()));
});
// Run conversion for each module independently as they can have different
// TargetEnv attributes.
for (Operation *gpuModule : gpuModules) {
- auto targetAttr = spirv::lookupTargetEnvOrDefault(gpuModule);
+ mlir::spirv::TargetEnvAttr targetAttr = spirv::lookupTargetEnvOrDefault(gpuModule);
----------------
kuhar wrote:
```suggestion
spirv::TargetEnvAttr targetAttr = spirv::lookupTargetEnvOrDefault(gpuModule);
```
https://github.com/llvm/llvm-project/pull/69941
More information about the Mlir-commits
mailing list