Internal change

PiperOrigin-RevId: 958652570
Change-Id: Iee21e1f551c649eeac55f961d03685453019b252
diff --git a/rules/acls.bzl b/rules/acls.bzl
index ddab3bd..bdf0c01 100644
--- a/rules/acls.bzl
+++ b/rules/acls.bzl
@@ -59,7 +59,6 @@
 load("//rules/acls:databinding.bzl", "DATABINDING_ALLOWED", "DATABINDING_DISALLOWED")
 load("//rules/acls:desugaring_runtime_jar_classpath.bzl", "DESUGAR_USE_RUNTIME_JARS")
 load("//rules/acls:dex2oat_opts.bzl", "CAN_USE_DEX2OAT_OPTIONS")
-load("//rules/acls:disable_optimizing_dexer.bzl", "DISABLE_OPTIMIZING_DEXER")
 load("//rules/acls:enable_exported_lint_checks.bzl", "ENABLE_EXPORTED_LINT_CHECKS")
 load("//rules/acls:force_final_resources.bzl", "FORCE_FINAL_ANDROID_BINARY_RESOURCES")
 load("//rules/acls:gpu_override.bzl", "CAN_USE_GPU_OVERRIDE")
@@ -188,9 +187,6 @@
 def _use_r8(fqn):
     return matches(fqn, USE_R8_DICT)
 
-def _in_disable_optimizing_dexer(fqn):
-    return matches(fqn, DISABLE_OPTIMIZING_DEXER_DICT)
-
 def _in_force_final_android_binary_resources(fqn):
     return matches(fqn, FORCE_FINAL_ANDROID_BINARY_RESOURCES_DICT)
 
@@ -289,7 +285,6 @@
 D8_OPTIMIZATION_METADATA_DICT = make_dict(D8_OPTIMIZATION_METADATA)
 RESOURCE_SHRINKING_IN_OPTIMIZER_ROLLOUT_DICT = make_dict(RESOURCE_SHRINKING_IN_OPTIMIZER_ROLLOUT)
 RESOURCE_SHRINKING_IN_OPTIMIZER_FALLBACK_DICT = make_dict(RESOURCE_SHRINKING_IN_OPTIMIZER_FALLBACK)
-DISABLE_OPTIMIZING_DEXER_DICT = make_dict(DISABLE_OPTIMIZING_DEXER)
 FORCE_FINAL_ANDROID_BINARY_RESOURCES_DICT = make_dict(FORCE_FINAL_ANDROID_BINARY_RESOURCES)
 STAMP_SIGNING_ROLLOUT_DICT = make_dict(STAMP_SIGNING_ROLLOUT)
 STAMP_SIGNING_FALLBACK_DICT = make_dict(STAMP_SIGNING_FALLBACK)
@@ -388,7 +383,6 @@
     in_allow_proguard_apply_mapping = _in_allow_proguard_apply_mapping,
     use_r8 = _use_r8,
     in_d8_optimization_metadata = _in_d8_optimization_metadata,
-    in_disable_optimizing_dexer = _in_disable_optimizing_dexer,
     in_force_final_android_binary_resources = _in_force_final_android_binary_resources,
     in_resource_shrinking_in_optimizer = _in_resource_shrinking_in_optimizer,
     in_stamp_signing_rollout = _in_stamp_signing_rollout,
diff --git a/rules/android_binary/attrs.bzl b/rules/android_binary/attrs.bzl
index 6c0c5b1..7923818 100644
--- a/rules/android_binary/attrs.bzl
+++ b/rules/android_binary/attrs.bzl
@@ -216,14 +216,6 @@
                 default = "@rules_cc//cc:current_cc_toolchain",
                 aspects = [split_config_aspect],
             ),
-            _optimizing_dexer = attr.label(
-                cfg = "exec",
-                allow_single_file = True,
-                default = configuration_field(
-                    fragment = "android",
-                    name = "optimizing_dexer",
-                ),
-            ),
             _desugared_lib_config = attr.label(
                 allow_single_file = True,
                 default = Label("//tools/android:full_desugar_jdk_libs_config_json"),
diff --git a/rules/android_binary/impl.bzl b/rules/android_binary/impl.bzl
index 2de18cc..a41a532 100644
--- a/rules/android_binary/impl.bzl
+++ b/rules/android_binary/impl.bzl
@@ -271,7 +271,7 @@
     postprocessing_output_map = None
     deploy_jar = deploy_ctx.deploy_jar
     is_binary_optimized = len(ctx.attr.proguard_specs) > 0
-    optimizing_dexer = read_possibly_native_flag(ctx, "optimizing_dexer")
+    optimizing_dexer = getattr(get_android_toolchain(ctx), "optimizing_dexer", None)
     java8_legacy_dex_map = None
     proguarded_jar = optimize_ctx.proguard_output.output_jar if is_binary_optimized else None
     proguard_output_map = optimize_ctx.proguard_output.mapping if is_binary_optimized else None
@@ -279,7 +279,7 @@
     binary_runtime_jars = deploy_ctx.binary_runtime_jars
     forbidden_dexopts = _dex.FORBIDDEN_DEXOPTS
 
-    should_optimize_dex = optimizing_dexer and proguarded_jar and not acls.in_disable_optimizing_dexer(str(ctx.label))
+    should_optimize_dex = optimizing_dexer and proguarded_jar
 
     build_metadata_output = None
     if should_optimize_dex and acls.in_d8_optimization_metadata(str(ctx.label)):
@@ -752,7 +752,7 @@
         ctx.attr.proguard_generate_mapping or enable_resource_shrinking
     )
     desugar_java8_libs_generates_map = read_possibly_native_flag(ctx, "desugar_for_android")
-    optimizing_dexing = bool(read_possibly_native_flag(ctx, "optimizing_dexer")) and not acls.in_disable_optimizing_dexer(str(ctx.label))
+    optimizing_dexing = getattr(get_android_toolchain(ctx), "optimizing_dexer", None)
 
     if generate_proguard_map:
         # Determine the output of the Proguard map from shrinking the app. This depends on the
diff --git a/rules/attrs.bzl b/rules/attrs.bzl
index 3607f4b..d80a0a0 100644
--- a/rules/attrs.bzl
+++ b/rules/attrs.bzl
@@ -518,11 +518,6 @@
         default = Label("//flags:flags_wrapper"),
         providers = [WrappedFlagsInfo],
     ),
-    _starlark_optimizing_dexer = attr.label(
-        allow_files = True,
-        cfg = "exec",
-        default = Label("//flags:optimizing_dexer"),
-    ),
 )
 
 attrs = struct(
diff --git a/rules/dex.bzl b/rules/dex.bzl
index cb05fd2..d7adb7a 100644
--- a/rules/dex.bzl
+++ b/rules/dex.bzl
@@ -76,7 +76,7 @@
         min_sdk_config = None,
         toolchain_type = None):
     info = _merge_infos(utils.collect_providers(StarlarkAndroidDexInfo, deps))
-    should_optimize_dex = optimizing_dexer and proguarded_jar and not acls.in_disable_optimizing_dexer(str(ctx.label))
+    should_optimize_dex = optimizing_dexer and proguarded_jar
     incremental_dexopt_filter = list(_DEXOPTS_SUPPORTED_IN_INCREMENTAL_DEXING)
     if should_optimize_dex:
         incremental_dexopt_filter += _EXTRA_DEXOPTS_SUPPORTED_IN_OPTIMIZED_DEX
@@ -279,7 +279,7 @@
     if num_shards <= 1:
         fail("num_shards expects to be larger than 1.")
 
-    should_optimize_dex = optimizing_dexer and proguarded_jar and not acls.in_disable_optimizing_dexer(str(ctx.label))
+    should_optimize_dex = optimizing_dexer and proguarded_jar
     shard_suffix = ".zip" if should_optimize_dex else ".jar.dex.zip"
     shards = _make_shard_artifacts(ctx, num_shards, shard_suffix)
     globals_shards = [_make_globals_shard(ctx, shard) for shard in shards] if should_optimize_dex else []