1414
1515import torch
1616import torch .fx
17-
18- from executorch .backends .cadence .aot .fuse_ops import FuseTransposeOrPermuteOpPairsPass
1917from executorch .backends .cadence .aot .pass_utils import (
2018 CadencePassAttribute ,
2119 get_arg ,
2220 register_cadence_pass ,
2321 RemoveOrReplacePassInterface ,
2422 set_arg ,
2523)
24+
2625from executorch .backends .cadence .aot .simplify_ops import SimplifySliceOpPass
2726from executorch .backends .cadence .aot .utils import get_edge_overload_packet
2827from executorch .backends .transforms .remove_clone_ops import RemoveCloneOpsTransform
3433from torch .fx .node import Node
3534
3635
37- @register_cadence_pass (CadencePassAttribute (opt_level = 1 ))
36+ @register_cadence_pass (CadencePassAttribute (opt_level = 0 ))
3837class RemoveCloneOpsTransformImported (ExportPass ):
3938 def call (self , graph_module : torch .fx .GraphModule ) -> PassResult :
4039 finalize_passes : List [PassType ] = [
@@ -45,7 +44,7 @@ def call(self, graph_module: torch.fx.GraphModule) -> PassResult:
4544 return result
4645
4746
48- @register_cadence_pass (CadencePassAttribute (opt_level = 1 ))
47+ @register_cadence_pass (CadencePassAttribute (opt_level = 0 ))
4948class RemoveDetachCopyPass (RemoveOrReplacePassInterface ):
5049 @property
5150 def targets (self ) -> list [EdgeOpOverload ]:
@@ -67,7 +66,7 @@ class RemoveRedundantOps:
6766 ]
6867
6968
70- @register_cadence_pass (CadencePassAttribute (opt_level = 1 ))
69+ @register_cadence_pass (CadencePassAttribute (opt_level = 0 ))
7170class RemoveZeroSizedCatArgsPass (RemoveOrReplacePassInterface ):
7271 @property
7372 def targets (self ) -> list [EdgeOpOverload ]:
@@ -121,11 +120,11 @@ def maybe_remove_or_replace(self, node: Node) -> bool:
121120 return False
122121
123122
124- @register_cadence_pass (CadencePassAttribute (opt_level = 1 ))
123+ @register_cadence_pass (CadencePassAttribute (opt_level = 0 ))
125124class RemoveNopExpandOpPass (RemoveOrReplacePassInterface ):
126125 """
127126 For an expand op, if the operator shape matches the expand shape, then the
128- expand is a nop. This is an optimization that removes unnecessary ops.
127+ expand is a nop.
129128 """
130129
131130 @property
@@ -144,9 +143,9 @@ def maybe_remove_or_replace(self, node: Node) -> bool:
144143 return False
145144
146145
147- @register_cadence_pass (CadencePassAttribute (opt_level = 1 ))
146+ @register_cadence_pass (CadencePassAttribute (opt_level = 0 ))
148147class RemoveToOpsPass (RemoveOrReplacePassInterface ):
149- # aten.to.* ops are no-ops in inference - this is an optimization
148+ # aten.to.* as of now are all nops
150149 @property
151150 def targets (self ) -> list [EdgeOpOverload ]:
152151 return [
@@ -265,11 +264,11 @@ def maybe_remove_or_replace(self, node: Node) -> bool:
265264 return True
266265
267266
268- @register_cadence_pass (CadencePassAttribute (opt_level = 1 ))
267+ @register_cadence_pass (CadencePassAttribute (opt_level = 0 ))
269268class RemoveAliasCopyOpPass (RemoveOrReplacePassInterface ):
270269 """
270+
271271 alias_copy is a no-op and can be removed.
272- This is an optimization that removes unnecessary ops.
273272 """
274273
275274 @property
@@ -413,9 +412,6 @@ class Subgraph:
413412 exir_ops .edge .quantized_decomposed .dequantize_per_tensor .default ,
414413 exir_ops .edge .cadence .quantize_per_tensor .default ,
415414 exir_ops .edge .cadence .dequantize_per_tensor .default ,
416- exir_ops .edge .cadence .quantized_relu .per_tensor ,
417- exir_ops .edge .cadence .requantize .per_tensor ,
418- exir_ops .edge .cadence .quantized_add .per_tensor ,
419415 # Ops that require special handling.
420416 exir_ops .edge .aten .cat .default ,
421417 exir_ops .edge .aten .mean .dim ,
@@ -808,7 +804,6 @@ class CommonRemovePasses:
808804 RemoveToOpsPass ,
809805 RemoveZeroSizedCatArgsPass ,
810806 RemovePermutesAroundElementwiseOps ,
811- FuseTransposeOrPermuteOpPairsPass ,
812807 RemoveSqueezeViewBeforeElementwiseOps ,
813808 RemoveCatFromSliceCopyPass ,
814809 RemoveCloneOpsTransformImported ,
0 commit comments