#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/SPIRV/IR/SPIRVAttributes.h"
#include "mlir/Dialect/SPIRV/IR/SPIRVOps.h"
#include "mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h"
#include "mlir/Pass/Pass.h"
usingnamespacemlir;
namespace {
struct PrintOpAvailability
: public PassWrapper<PrintOpAvailability, OperationPass<func::FuncOp>> { … };
}
void PrintOpAvailability::runOnOperation() { … }
namespace mlir {
void registerPrintSpirvAvailabilityPass() { … }
}
namespace {
struct ConvertToTargetEnv
: public PassWrapper<ConvertToTargetEnv, OperationPass<func::FuncOp>> { … };
struct ConvertToAtomCmpExchangeWeak : RewritePattern { … };
struct ConvertToBitReverse : RewritePattern { … };
struct ConvertToGroupNonUniformBallot : RewritePattern { … };
struct ConvertToModule : RewritePattern { … };
struct ConvertToSubgroupBallot : RewritePattern { … };
template <const char *TestOpName, typename SPIRVOp>
struct ConvertToIntegerDotProd : RewritePattern { … };
}
void ConvertToTargetEnv::runOnOperation() { … }
namespace mlir {
void registerConvertToTargetEnvPass() { … }
}