Skip to content

Commit 48ff29e

Browse files
Arm backend: Add CanonicalizeViewCopyPermutePass (pytorch#20276)
This pass replaces PostponePermuteOpBelowSqueezeOrUnsqueezeLikeView using a more general condition for which permute-view combinations may be fused, see docstrings. + remove stale comments in mha test Signed-off-by: Adrian Lundell <adrian.lundell@arm.com>
1 parent ed6e2e2 commit 48ff29e

9 files changed

Lines changed: 1438 additions & 20 deletions

backends/arm/_passes/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from .accumulate_index_put_pass import AccumulateIndexPutPass # noqa
1010
from .broadcast_args_pass import BroadcastArgsPass # noqa
1111
from .canonicalize_gather_pass import CanonicalizeGatherPass # noqa
12+
from .canonicalize_view_copy_permute_pass import CanonicalizeViewCopyPermutePass # noqa
1213
from .cast_int64_pass import CastInt64BuffersToInt32Pass # noqa
1314
from .cast_to_int32_pass import CastToInt32Pass # noqa
1415
from .constant_folding_pass import ConstantFoldingPass # noqa

backends/arm/_passes/arm_pass_manager.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
AccumulateIndexPutPass,
1616
BroadcastArgsPass,
1717
CanonicalizeGatherPass,
18+
CanonicalizeViewCopyPermutePass,
1819
CastInt64BuffersToInt32Pass,
1920
CastToInt32Pass,
2021
ComputeConstantOpsAOTPass,
@@ -29,7 +30,6 @@
2930
ConvertInt64OutputOpsToInt32Pass,
3031
ConvertMinMaxPass,
3132
ConvertMmToBmmPass,
32-
ConvertPermuteSingletonToViewPass,
3333
ConvertSplitToSlicePass,
3434
ConvertSqueezesToViewPass,
3535
ConvertToClampPass,
@@ -165,9 +165,6 @@
165165
from executorch.backends.transforms.fuse_cascaded_transpose_or_permute_ops import (
166166
FuseCascadedTransposeOrPermuteOps,
167167
)
168-
from executorch.backends.transforms.postpone_permute_below_squeeze_view import (
169-
PostponePermuteOpBelowSqueezeOrUnsqueezeLikeView,
170-
)
171168

172169
from executorch.exir import ExportedProgram
173170
from executorch.exir._program_utils import _get_updated_graph_signature
@@ -616,9 +613,8 @@ def _tosa_pipeline(
616613
RewritePadPass(),
617614
FuseViewCopyTransformPass(),
618615
RemovePermutesAroundElementwiseTosaOps(),
619-
PostponePermuteOpBelowSqueezeOrUnsqueezeLikeView(),
616+
CanonicalizeViewCopyPermutePass(),
620617
FuseCascadedTransposeOrPermuteOps(),
621-
ConvertPermuteSingletonToViewPass(),
622618
RewriteHighRankSingletonPermutePass(),
623619
DecomposePermuteForU55Pass(),
624620
RewriteSlicePass(),

0 commit comments

Comments
 (0)