@@ -201,9 +201,9 @@ class ConvertIndexSwitchOpTypes
201201 convertSourceOp (IndexSwitchOp op, OneToNOpAdaptor adaptor,
202202 ConversionPatternRewriter &rewriter,
203203 TypeRange dstTypes) const {
204- auto newOp =
205- IndexSwitchOp::create (rewriter, op.getLoc (), dstTypes, op .getArg (),
206- op. getCases (), op.getNumCases ());
204+ auto newOp = rewriter. create <IndexSwitchOp>(
205+ op.getLoc (), dstTypes, getSingleValue (adaptor .getArg ()), op. getCases (),
206+ op.getNumCases ());
207207
208208 for (unsigned i = 0u ; i < op.getNumRegions (); i++) {
209209 auto &dstRegion = newOp.getRegion (i);
@@ -249,14 +249,14 @@ void mlir::scf::populateSCFStructuralTypeConversions(
249249 const TypeConverter &typeConverter, RewritePatternSet &patterns) {
250250 patterns.add <ConvertForOpTypes, ConvertIfOpTypes, ConvertYieldOpTypes,
251251 ConvertWhileOpTypes, ConvertConditionOpTypes,
252- ConvertIndexSwitchOpTypes>(typeConverter, patterns.getContext (),
253- benefit);
252+ ConvertIndexSwitchOpTypes>(typeConverter, patterns.getContext ());
254253}
255254
256255void mlir::scf::populateSCFStructuralTypeConversionTarget (
257256 const TypeConverter &typeConverter, ConversionTarget &target) {
258- target.addDynamicallyLegalOp <ForOp, IfOp, IndexSwitchOp>(
259- [&](Operation *op) { return typeConverter.isLegal (op->getResults ()); });
257+ target.addDynamicallyLegalOp <ForOp, IfOp, IndexSwitchOp>([&](Operation *op) {
258+ return typeConverter.isLegal (op->getResultTypes ());
259+ });
260260 target.addDynamicallyLegalOp <scf::YieldOp>([&](scf::YieldOp op) {
261261 // We only have conversions for a subset of ops that use scf.yield
262262 // terminators.
0 commit comments