Workaround for issue in #2878.
diff --git a/iree/compiler/Dialect/VM/Conversion/StandardToVM/ConvertStandardToVM.cpp b/iree/compiler/Dialect/VM/Conversion/StandardToVM/ConvertStandardToVM.cpp index fa90e6e..acaa807 100644 --- a/iree/compiler/Dialect/VM/Conversion/StandardToVM/ConvertStandardToVM.cpp +++ b/iree/compiler/Dialect/VM/Conversion/StandardToVM/ConvertStandardToVM.cpp
@@ -176,7 +176,9 @@ if (!integerAttr) { return srcOp.emitRemark() << "unsupported const type for dialect"; } - auto targetType = getTypeConverter()->convertType(srcOp.getType()); + // TODO(#2878): use getTypeConverter() when we pass it upon creation. + IREE::VM::TypeConverter typeConverter; + auto targetType = typeConverter.convertType(srcOp.getType()); switch (targetType.getIntOrFloatBitWidth()) { case 1: case 32: @@ -392,13 +394,14 @@ void populateStandardToVMPatterns(MLIRContext *context, TypeConverter &typeConverter, OwningRewritePatternList &patterns) { - patterns - .insert<BranchOpConversion, CallOpConversion, CmpIOpConversion, - CondBranchOpConversion, ConstantOpConversion, ModuleOpConversion, - ModuleTerminatorOpConversion, FuncOpConversion, - ReturnOpConversion, CastingOpConversion<IndexCastOp>, - CastingOpConversion<TruncateIOp>, SelectI32OpConversion>( - typeConverter, context); + patterns.insert<BranchOpConversion, CallOpConversion, CmpIOpConversion, + CondBranchOpConversion, ModuleOpConversion, + ModuleTerminatorOpConversion, FuncOpConversion, + ReturnOpConversion, CastingOpConversion<IndexCastOp>, + CastingOpConversion<TruncateIOp>, SelectI32OpConversion>( + typeConverter, context); + // TODO(#2878): pass typeConverter here. + patterns.insert<ConstantOpConversion>(context); // Binary arithmetic ops patterns