4040from executorch .exir .passes .normalize_view_copy_base_pass import (
4141 NormalizeViewCopyBasePass ,
4242)
43- from executorch .exir .passes .remove_graph_asserts_pass import RemoveGraphAssertsPass
43+ from executorch .exir .passes .remove_graph_asserts_pass import (
44+ RemoveGraphAssertsPass ,
45+ RemoveNonCoreAtenOpGraphAssertsPass ,
46+ )
4447from executorch .exir .passes .remove_mixed_type_operators import RemoveMixedTypeOperators
4548from executorch .exir .passes .replace_aten_with_edge_pass import aten_to_edge
4649from executorch .exir .passes .replace_view_copy_with_view_pass import (
@@ -722,13 +725,20 @@ def _generate_edge_program(
722725 program : ExportedProgram ,
723726 ops_set_to_not_decompose : Optional [List [torch ._ops .OpOverload ]] = None ,
724727) -> ExportedProgram :
728+
729+ # Remove invalid assert ops, such as _assert_tensor_metadata
730+ gm = program .graph_module
731+ gm_res = RemoveNonCoreAtenOpGraphAssertsPass ()(gm )
732+ assert gm_res is not None
733+ gm = gm_res .graph_module
734+
725735 if config ._check_ir_validity :
726736 try :
727737 EXIRATenDialectVerifier (
728738 edge_compile_config = config ,
729739 class_only = False ,
730740 exception_list = ops_set_to_not_decompose ,
731- )(program . graph_module )
741+ )(gm )
732742 except ExportError as e :
733743 logging .info (f"Input program { name } is not in ATen dialect." )
734744 raise e
@@ -745,7 +755,6 @@ def _generate_edge_program(
745755 if not config ._skip_dim_order :
746756 passes .append (MemoryFormatOpsPass ())
747757
748- gm = program .graph_module
749758 for p in passes :
750759 gm_res = p (gm )
751760 assert gm_res is not None
0 commit comments