diff --git a/backends/arm/_passes/TARGETS b/backends/arm/_passes/TARGETS index a75c63fb86e..6a7435d0840 100644 --- a/backends/arm/_passes/TARGETS +++ b/backends/arm/_passes/TARGETS @@ -1,11 +1,38 @@ load("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime") +# Core utilities that other passes depend on +runtime.python_library( + name = "core", + srcs = [ + "arm_pass.py", + "arm_pass_utils.py", + "quant_args.py", + ], + deps = [ + "//executorch/backends/arm:common", + "//executorch/backends/arm:constants", + "//executorch/backends/arm/tosa:utils", + "//executorch/backends/arm/tosa/dialect:lib", + "//executorch/backends/transforms:utils", + "//executorch/exir:lib", + ], +) + runtime.python_library( name = "passes", - srcs = glob(["*.py"]), + srcs = glob( + ["*.py"], + exclude = [ + "arm_pass.py", + "arm_pass_utils.py", + "quant_args.py", + ], + ), deps = [ + ":core", "//executorch/backends/arm:common", "//executorch/backends/arm:constants", + "//executorch/backends/arm/_passes/fb:fb", "//executorch/backends/arm/tosa:utils", "//executorch/backends/arm/tosa/dialect:lib", "//executorch/backends/transforms:fuse_view_copy", diff --git a/backends/arm/_passes/__init__.py b/backends/arm/_passes/__init__.py index 4c4d824e5d5..a28eef55426 100644 --- a/backends/arm/_passes/__init__.py +++ b/backends/arm/_passes/__init__.py @@ -5,6 +5,7 @@ from . import arm_pass_utils # noqa +from . import fb from .arm_pass import ArmPass # noqa # usort: skip from .annotate_decomposed_matmul import AnnotateDecomposedMatmulPass # noqa from .annotate_output_dim_order_pass import AnnotateOutputDimOrderPass # noqa @@ -80,6 +81,7 @@ ) from .decompose_var_pass import DecomposeVarPass # noqa from .decorate_fp32_to_int32_casting_pass import DecorateFp32toInt32CastingPass # noqa +from .fb.reciprocal_dual_lut_pass import ReciprocalDualLutPass # noqa from .fold_qdq_with_annotated_qparams_pass import ( # noqa FoldAndAnnotateQParamsPass, QuantizeClampArgumentsPass, diff --git a/backends/arm/_passes/arm_pass_manager.py b/backends/arm/_passes/arm_pass_manager.py index c04a6329f4a..e0904561a96 100644 --- a/backends/arm/_passes/arm_pass_manager.py +++ b/backends/arm/_passes/arm_pass_manager.py @@ -108,6 +108,7 @@ RewriteConvPass, RewriteMatmulPass, RewriteUpsamplePass, + ReciprocalDualLutPass, ScalarsToAttributePass, SizeAdjustInputPass, ToTosaMemoryFormatPass, @@ -331,6 +332,8 @@ def _tosa_pipeline( FuseViewCopyTransformPass(), DecomposeConvWithInt16ActivationPass(), DecomposeSumPass(), + # FIX: Fixed LUT generation, re-enabled dual LUT pass + ReciprocalDualLutPass(exported_program), InsertTableOpsPass(exported_program), ] )