namespace tosa {
-std::unique_ptr<Pass> createTosaToArith();
+std::unique_ptr<Pass> createTosaToArith(bool includeApplyRescale = false,
+ bool use32BitApplyRescale = false);
void populateTosaToArithConversionPatterns(RewritePatternSet *patterns);
namespace {
struct TosaToArith : public impl::TosaToArithBase<TosaToArith> {
public:
+ TosaToArith(TosaToArithOptions &options) : TosaToArithBase(options) {}
+
void runOnOperation() override {
RewritePatternSet patterns(&getContext());
ConversionTarget target(getContext());
};
} // namespace
-std::unique_ptr<Pass> mlir::tosa::createTosaToArith() {
- return std::make_unique<TosaToArith>();
+std::unique_ptr<Pass> mlir::tosa::createTosaToArith(bool includeApplyRescale,
+ bool use32BitApplyRescale) {
+ TosaToArithOptions options = {includeApplyRescale, use32BitApplyRescale};
+ return std::make_unique<TosaToArith>(options);
}