@@ -127,32 +127,34 @@ struct ArithToAPFloatConversionPass final
127127 : impl::ArithToAPFloatConversionPassBase<ArithToAPFloatConversionPass> {
128128 using Base::Base;
129129
130- void runOnOperation () override {
131- MLIRContext *context = &getContext ();
132- RewritePatternSet patterns (context);
133- static const char add[] = " add" ;
134- static const char subtract[] = " subtract" ;
135- static const char multiply[] = " multiply" ;
136- static const char divide[] = " divide" ;
137- static const char remainder[] = " remainder" ;
138- patterns.add <BinaryArithOpToAPFloatConversion<arith::AddFOp, add>,
139- BinaryArithOpToAPFloatConversion<arith::SubFOp, subtract>,
140- BinaryArithOpToAPFloatConversion<arith::MulFOp, multiply>,
141- BinaryArithOpToAPFloatConversion<arith::DivFOp, divide>,
142- BinaryArithOpToAPFloatConversion<arith::RemFOp, remainder>>(
143- context, 1 , getOperation ());
144- LogicalResult result = success ();
145- ScopedDiagnosticHandler scopedHandler (context, [&result](Diagnostic &diag) {
146- if (diag.getSeverity () == DiagnosticSeverity::Error) {
147- result = failure ();
148- }
149- // NB: if you don't return failure, no other diag handlers will fire (see
150- // mlir/lib/IR/Diagnostics.cpp:DiagnosticEngineImpl::emit).
151- return failure ();
152- });
153- walkAndApplyPatterns (getOperation (), std::move (patterns));
154- if (failed (result))
155- return signalPassFailure ();
156- }
130+ void runOnOperation () override ;
157131};
132+
133+ void ArithToAPFloatConversionPass::runOnOperation () {
134+ MLIRContext *context = &getContext ();
135+ RewritePatternSet patterns (context);
136+ static const char add[] = " add" ;
137+ static const char subtract[] = " subtract" ;
138+ static const char multiply[] = " multiply" ;
139+ static const char divide[] = " divide" ;
140+ static const char remainder[] = " remainder" ;
141+ patterns.add <BinaryArithOpToAPFloatConversion<arith::AddFOp, add>,
142+ BinaryArithOpToAPFloatConversion<arith::SubFOp, subtract>,
143+ BinaryArithOpToAPFloatConversion<arith::MulFOp, multiply>,
144+ BinaryArithOpToAPFloatConversion<arith::DivFOp, divide>,
145+ BinaryArithOpToAPFloatConversion<arith::RemFOp, remainder>>(
146+ context, 1 , getOperation ());
147+ LogicalResult result = success ();
148+ ScopedDiagnosticHandler scopedHandler (context, [&result](Diagnostic &diag) {
149+ if (diag.getSeverity () == DiagnosticSeverity::Error) {
150+ result = failure ();
151+ }
152+ // NB: if you don't return failure, no other diag handlers will fire (see
153+ // mlir/lib/IR/Diagnostics.cpp:DiagnosticEngineImpl::emit).
154+ return failure ();
155+ });
156+ walkAndApplyPatterns (getOperation (), std::move (patterns));
157+ if (failed (result))
158+ return signalPassFailure ();
159+ }
158160} // namespace
0 commit comments