Changeset View
Changeset View
Standalone View
Standalone View
mlir/tools/mlir-vulkan-runner/mlir-vulkan-runner.cpp
Show All 34 Lines | static LogicalResult runMLIRPasses(ModuleOp module) { | ||||
passManager.addPass(createGpuKernelOutliningPass()); | passManager.addPass(createGpuKernelOutliningPass()); | ||||
passManager.addPass(createLegalizeStdOpsForSPIRVLoweringPass()); | passManager.addPass(createLegalizeStdOpsForSPIRVLoweringPass()); | ||||
passManager.addPass(createConvertGPUToSPIRVPass()); | passManager.addPass(createConvertGPUToSPIRVPass()); | ||||
OpPassManager &modulePM = passManager.nest<spirv::ModuleOp>(); | OpPassManager &modulePM = passManager.nest<spirv::ModuleOp>(); | ||||
modulePM.addPass(spirv::createLowerABIAttributesPass()); | modulePM.addPass(spirv::createLowerABIAttributesPass()); | ||||
modulePM.addPass(spirv::createUpdateVersionCapabilityExtensionPass()); | modulePM.addPass(spirv::createUpdateVersionCapabilityExtensionPass()); | ||||
passManager.addPass(createConvertGpuLaunchFuncToVulkanLaunchFuncPass()); | passManager.addPass(createConvertGpuLaunchFuncToVulkanLaunchFuncPass()); | ||||
passManager.addPass(createLowerToLLVMPass()); | passManager.addPass(createLowerToLLVMPass(/*useAlloca=*/false, | ||||
/*useBarePtrCallConv=*/false, | |||||
/*emitCWrappers=*/true)); | |||||
passManager.addPass(createConvertVulkanLaunchFuncToVulkanCallsPass()); | passManager.addPass(createConvertVulkanLaunchFuncToVulkanCallsPass()); | ||||
return passManager.run(module); | return passManager.run(module); | ||||
} | } | ||||
int main(int argc, char **argv) { | int main(int argc, char **argv) { | ||||
llvm::llvm_shutdown_obj x; | llvm::llvm_shutdown_obj x; | ||||
registerPassManagerCLOptions(); | registerPassManagerCLOptions(); | ||||
mlir::registerAllDialects(); | mlir::registerAllDialects(); | ||||
llvm::InitLLVM y(argc, argv); | llvm::InitLLVM y(argc, argv); | ||||
llvm::InitializeNativeTarget(); | llvm::InitializeNativeTarget(); | ||||
llvm::InitializeNativeTargetAsmPrinter(); | llvm::InitializeNativeTargetAsmPrinter(); | ||||
mlir::initializeLLVMPasses(); | mlir::initializeLLVMPasses(); | ||||
return mlir::JitRunnerMain(argc, argv, &runMLIRPasses); | return mlir::JitRunnerMain(argc, argv, &runMLIRPasses); | ||||
} | } |