Changeset View
Changeset View
Standalone View
Standalone View
mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRVPass.cpp
Show All 16 Lines | |||||
#include "mlir/Dialect/SPIRV/SPIRVLowering.h" | #include "mlir/Dialect/SPIRV/SPIRVLowering.h" | ||||
#include "mlir/Pass/Pass.h" | #include "mlir/Pass/Pass.h" | ||||
using namespace mlir; | using namespace mlir; | ||||
namespace { | namespace { | ||||
/// A pass converting MLIR Standard operations into the SPIR-V dialect. | /// A pass converting MLIR Standard operations into the SPIR-V dialect. | ||||
class ConvertStandardToSPIRVPass | class ConvertStandardToSPIRVPass | ||||
: public ModulePass<ConvertStandardToSPIRVPass> { | : public OperationPass<ConvertStandardToSPIRVPass, ModuleOp> { | ||||
/// Include the generated pass utilities. | /// Include the generated pass utilities. | ||||
#define GEN_PASS_ConvertStandardToSPIRV | #define GEN_PASS_ConvertStandardToSPIRV | ||||
#include "mlir/Conversion/Passes.h.inc" | #include "mlir/Conversion/Passes.h.inc" | ||||
void runOnModule() override; | void runOnOperation() override; | ||||
}; | }; | ||||
} // namespace | } // namespace | ||||
void ConvertStandardToSPIRVPass::runOnModule() { | void ConvertStandardToSPIRVPass::runOnOperation() { | ||||
MLIRContext *context = &getContext(); | MLIRContext *context = &getContext(); | ||||
ModuleOp module = getModule(); | ModuleOp module = getOperation(); | ||||
auto targetAttr = spirv::lookupTargetEnvOrDefault(module); | auto targetAttr = spirv::lookupTargetEnvOrDefault(module); | ||||
std::unique_ptr<ConversionTarget> target = | std::unique_ptr<ConversionTarget> target = | ||||
spirv::SPIRVConversionTarget::get(targetAttr); | spirv::SPIRVConversionTarget::get(targetAttr); | ||||
SPIRVTypeConverter typeConverter(targetAttr); | SPIRVTypeConverter typeConverter(targetAttr); | ||||
OwningRewritePatternList patterns; | OwningRewritePatternList patterns; | ||||
populateStandardToSPIRVPatterns(context, typeConverter, patterns); | populateStandardToSPIRVPatterns(context, typeConverter, patterns); | ||||
Show All 10 Lines |