Remove non-functional benchmarks.

Bug: 221813759
Change-Id: I412dd682d7ef6825906e323cb93e11e4deb2a370
diff --git a/src/main/java/com/android/tools/r8/benchmarks/FrameworkIncrementalDexingBenchmark.java b/src/main/java/com/android/tools/r8/benchmarks/FrameworkIncrementalDexingBenchmark.java
deleted file mode 100644
index 20571ba..0000000
--- a/src/main/java/com/android/tools/r8/benchmarks/FrameworkIncrementalDexingBenchmark.java
+++ /dev/null
@@ -1,242 +0,0 @@
-// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.benchmarks;
-
-import static com.android.tools.r8.benchmarks.BenchmarkUtils.printRuntimeNanoseconds;
-
-import com.android.tools.r8.ByteDataView;
-import com.android.tools.r8.ClassFileResourceProvider;
-import com.android.tools.r8.CompilationFailedException;
-import com.android.tools.r8.CompilationMode;
-import com.android.tools.r8.D8;
-import com.android.tools.r8.D8Command;
-import com.android.tools.r8.D8Command.Builder;
-import com.android.tools.r8.DexFilePerClassFileConsumer;
-import com.android.tools.r8.DexFilePerClassFileConsumer.ForwardingConsumer;
-import com.android.tools.r8.DexIndexedConsumer;
-import com.android.tools.r8.DiagnosticsHandler;
-import com.android.tools.r8.ProgramConsumer;
-import com.android.tools.r8.ProgramResource;
-import com.android.tools.r8.ProgramResource.Kind;
-import com.android.tools.r8.ResourceException;
-import com.android.tools.r8.origin.Origin;
-import com.android.tools.r8.origin.PathOrigin;
-import com.android.tools.r8.utils.DescriptorUtils;
-import com.android.tools.r8.utils.ThreadUtils;
-import com.android.tools.r8.utils.ZipUtils;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.io.ByteStreams;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ExecutorService;
-
-public class FrameworkIncrementalDexingBenchmark {
-  private static final int ITERATIONS = 100;
-  private static final int API = 24;
-  private static final Path JAR_DESUGARED =
-      Paths.get("third_party", "framework", "framework_14082017_desugared.jar");
-  private static final Path JAR_NOT_DESUGARED =
-      Paths.get("third_party", "framework", "framework_14082017.jar");
-  private static final Path LIB =
-      Paths.get("third_party", "android_jar", "lib-v" + API, "android.jar");
-
-  static class InMemoryClassPathProvider implements ClassFileResourceProvider {
-    Origin origin;
-    Map<String, byte[]> resources;
-
-    InMemoryClassPathProvider(Path archive) throws IOException {
-      origin = new PathOrigin(archive);
-      ImmutableMap.Builder<String, byte[]> builder = ImmutableMap.builder();
-      ZipUtils.iter(
-          archive.toString(),
-          (entry, stream) -> {
-            String name = entry.getName();
-            if (ZipUtils.isClassFile(name)) {
-              String descriptor = DescriptorUtils.guessTypeDescriptor(name);
-              builder.put(descriptor, ByteStreams.toByteArray(stream));
-            }
-          });
-      resources = builder.build();
-    }
-
-    @Override
-    public Set<String> getClassDescriptors() {
-      return resources.keySet();
-    }
-
-    @Override
-    public ProgramResource getProgramResource(String descriptor) {
-      byte[] bytes = resources.get(descriptor);
-      return bytes == null
-          ? null
-          : ProgramResource.fromBytes(
-              new EntryOrigin(descriptor, origin),
-              Kind.CF,
-              bytes,
-              Collections.singleton(descriptor));
-    }
-  }
-
-  static class EntryOrigin extends Origin {
-    final String descriptor;
-
-    public EntryOrigin(String descriptor, Origin parent) {
-      super(parent);
-      this.descriptor = descriptor;
-    }
-
-    @Override
-    public String part() {
-      return descriptor;
-    }
-  }
-
-  private static String title(String title, boolean desugar) {
-    return "FrameworkIncremental" + (desugar ? title : "NoDesugar" + title);
-  }
-
-  private static void compileAll(
-      Path input,
-      InMemoryClassPathProvider provider,
-      boolean desugar,
-      Map<String, ProgramResource> outputs,
-      ExecutorService executor)
-      throws IOException, CompilationFailedException {
-
-    ProgramConsumer consumer =
-        new DexFilePerClassFileConsumer.ForwardingConsumer(null) {
-          @Override
-          public synchronized void accept(
-              String primaryClassDescriptor,
-              ByteDataView data,
-              Set<String> descriptors,
-              DiagnosticsHandler handler) {
-            ProgramResource resource = ProgramResource.fromBytes(
-                Origin.unknown(), Kind.DEX, data.copyByteData(), descriptors);
-            for (String descriptor : descriptors) {
-              assert !outputs.containsKey(descriptor);
-              if (provider.resources.containsKey(descriptor)) {
-                outputs.put(descriptor, resource);
-              }
-            }
-          }
-        };
-
-    long start = System.nanoTime();
-    D8.run(
-        D8Command.builder()
-            .setMinApiLevel(API)
-            .setIntermediate(true)
-            .setMode(CompilationMode.DEBUG)
-            .addProgramFiles(input)
-            .addLibraryFiles(LIB)
-            .setDisableDesugaring(!desugar)
-            .setProgramConsumer(consumer)
-            .build(),
-        executor);
-    printRuntimeNanoseconds(title("DexAll", desugar), System.nanoTime() - start);
-  }
-
-  private static void compileGroupsOf(
-      int count,
-      List<String> descriptors,
-      InMemoryClassPathProvider provider,
-      boolean desugar,
-      Map<String, ProgramResource> outputs,
-      ExecutorService executor)
-      throws IOException, CompilationFailedException {
-    ProgramConsumer consumer =
-        new ForwardingConsumer(null) {
-          @Override
-          public synchronized void accept(
-              String primaryClassDescriptor,
-              ByteDataView data,
-              Set<String> descriptors,
-              DiagnosticsHandler handler) {
-            ProgramResource resource = ProgramResource.fromBytes(
-                Origin.unknown(), Kind.DEX, data.copyByteData(), descriptors);
-            for (String descriptor : descriptors) {
-              if (provider.resources.containsKey(descriptor)) {
-                outputs.put(descriptor, resource);
-              }
-            }
-          }
-        };
-
-    descriptors.sort(String::compareTo);
-    int increment = descriptors.size() / ITERATIONS;
-    long start = System.nanoTime();
-    for (int iteration = 0; iteration < ITERATIONS; iteration++) {
-      int index = iteration * increment;
-      Builder builder =
-          D8Command.builder()
-              .setMinApiLevel(API)
-              .setIntermediate(true)
-              .setMode(CompilationMode.DEBUG)
-              .addClasspathResourceProvider(provider)
-              .addLibraryFiles(LIB)
-              .setProgramConsumer(consumer)
-              .setDisableDesugaring(!desugar);
-      for (int j = 0; j < count; j++) {
-        builder.addClassProgramData(provider.resources.get(descriptors.get(index + j)),
-            Origin.unknown());
-      }
-      D8.run(builder.build(), executor);
-    }
-    printRuntimeNanoseconds(title("DexGroupsOf" + count, desugar), System.nanoTime() - start);
-  }
-
-  private static void merge(
-      boolean desugar, Map<String, ProgramResource> outputs, ExecutorService executor)
-      throws IOException, CompilationFailedException, ResourceException {
-    Builder builder =
-        D8Command.builder()
-            .setMinApiLevel(API)
-            .setIntermediate(false)
-            .setMode(CompilationMode.DEBUG)
-            .setProgramConsumer(DexIndexedConsumer.emptyConsumer())
-            .setDisableDesugaring(true);
-    for (ProgramResource input : outputs.values()) {
-      try (InputStream inputStream = input.getByteStream()) {
-        builder.addDexProgramData(ByteStreams.toByteArray(inputStream), input.getOrigin());
-      }
-    }
-    long start = System.nanoTime();
-    D8.run(
-        builder // never need to desugar when merging dex.
-            .build(),
-        executor);
-    printRuntimeNanoseconds(title("DexMerge", desugar), System.nanoTime() - start);
-  }
-
-  public static void main(String[] args)
-      throws IOException, CompilationFailedException, ResourceException {
-    boolean desugar = Arrays.asList(args).contains("--desugar");
-    Path input = desugar ? JAR_NOT_DESUGARED : JAR_DESUGARED;
-    InMemoryClassPathProvider provider = new InMemoryClassPathProvider(input);
-    List<String> descriptors = new ArrayList<>(provider.getClassDescriptors());
-    Map<String, ProgramResource> outputs = new HashMap<>(provider.getClassDescriptors().size());
-    int threads = Integer.min(Runtime.getRuntime().availableProcessors(), 16) / 2;
-    ExecutorService executor = ThreadUtils.getExecutorService(threads);
-    try {
-      compileAll(input, provider, desugar, outputs, executor);
-      compileGroupsOf(1, descriptors, provider, desugar, outputs, executor);
-      compileGroupsOf(10, descriptors, provider, desugar, outputs, executor);
-      compileGroupsOf(100, descriptors, provider, desugar, outputs, executor);
-      merge(desugar, outputs, executor);
-      // TODO: We should run dex2oat to verify the compilation.
-    } finally {
-      executor.shutdown();
-    }
-  }
-}
diff --git a/src/main/java/com/android/tools/r8/benchmarks/IncrementalDexingBenchmark.java b/src/main/java/com/android/tools/r8/benchmarks/IncrementalDexingBenchmark.java
deleted file mode 100644
index 477fd63..0000000
--- a/src/main/java/com/android/tools/r8/benchmarks/IncrementalDexingBenchmark.java
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.benchmarks;
-
-import com.android.tools.r8.ByteDataView;
-import com.android.tools.r8.CompilationFailedException;
-import com.android.tools.r8.CompilationMode;
-import com.android.tools.r8.D8;
-import com.android.tools.r8.D8Command;
-import com.android.tools.r8.DexIndexedConsumer;
-import com.android.tools.r8.DiagnosticsHandler;
-import com.android.tools.r8.utils.ThreadUtils;
-import java.io.IOException;
-import java.nio.file.Paths;
-import java.util.Set;
-import java.util.concurrent.ExecutorService;
-
-public class IncrementalDexingBenchmark {
-  private static final int ITERATIONS = 1000;
-
-  public static void compile(ExecutorService executor)
-      throws IOException, CompilationFailedException {
-    D8.run(
-        D8Command.builder()
-            .addProgramFiles(Paths.get("build/test/examples/arithmetic.jar"))
-            .setMode(CompilationMode.DEBUG)
-            .setDisableDesugaring(true)
-            .setProgramConsumer(
-                new DexIndexedConsumer.ForwardingConsumer(null) {
-                  @Override
-                  public void accept(
-                      int fileIndex,
-                      ByteDataView data,
-                      Set<String> descriptors,
-                      DiagnosticsHandler handler) {
-                    if (fileIndex != 0) {
-                      throw new RuntimeException("WAT");
-                    }
-                  }
-                })
-            .build(),
-        executor);
-  }
-
-  public static void main(String[] args) throws IOException, CompilationFailedException {
-    int threads = Integer.min(Runtime.getRuntime().availableProcessors(), 16) / 2;
-    ExecutorService executor = ThreadUtils.getExecutorService(threads);
-    try {
-      long start = System.nanoTime();
-      for (int i = 0; i < ITERATIONS; i++) {
-        compile(executor);
-      }
-      double elapsedMs = (System.nanoTime() - start) / 1000000.0;
-      BenchmarkUtils.printRuntimeMilliseconds("IncrementalDexing", elapsedMs);
-    } finally {
-      executor.shutdown();
-    }
-  }
-}
diff --git a/src/test/java/com/android/tools/r8/benchmarks/BenchmarkSuite.java b/src/test/java/com/android/tools/r8/benchmarks/BenchmarkSuite.java
index 1068f72..cecba1d 100644
--- a/src/test/java/com/android/tools/r8/benchmarks/BenchmarkSuite.java
+++ b/src/test/java/com/android/tools/r8/benchmarks/BenchmarkSuite.java
@@ -6,11 +6,7 @@
 /** Enumeration of the benchmark suites on Golem. */
 public enum BenchmarkSuite {
   R8_BENCHMARKS("R8Benchmarks", "suite"),
-  D8_BENCHMARKS("D8KeyBenchmarks", "d8KeySuite"),
-  D8_INCREMENTAL_BENCHMARKS("D8IncrementalBenchmarks", "incrementalSuite"),
-  OPENSOURCE_BENCHMARKS("OpenSourceAppDumps", "dumpsSuite"),
-  MEMORY_BENCHMARKS("R8MemoryBenchmarks", "r8MemorySuite"),
-  RETRACE_BENCHMARKS("R8RetraceBenchmarks", "r8RetraceSuite");
+  OPENSOURCE_BENCHMARKS("OpenSourceAppDumps", "dumpsSuite");
 
   private final String golemName;
   private final String dartName;
diff --git a/tools/golem_build.py b/tools/golem_build.py
index e9de5eb..4f668d6 100755
--- a/tools/golem_build.py
+++ b/tools/golem_build.py
@@ -8,26 +8,16 @@
 import sys
 
 import gradle
-import retrace_benchmark
 import run_benchmark
 import run_on_app_dump
 
 GRADLE_ARGS = ['--no-daemon', '-Pno_internal']
 
-LEGACY_BUILD_TARGETS = [
-  'R8',
-  'D8',
-  'buildExampleJars',
-  'downloadAndroidCts',
-  'downloadDx']
-
 def lower(items):
   return [ item.lower() for item in items ]
 
 def Main():
   targets = set()
-  targets.update(lower(LEGACY_BUILD_TARGETS))
-  targets.update(lower(retrace_benchmark.GOLEM_BUILD_TARGETS))
   targets.update(lower(run_benchmark.GOLEM_BUILD_TARGETS))
   targets.update(lower(run_on_app_dump.GOLEM_BUILD_TARGETS))
   cmd = GRADLE_ARGS + [target for target in targets]
diff --git a/tools/retrace_benchmark.py b/tools/retrace_benchmark.py
deleted file mode 100755
index 8c9121a..0000000
--- a/tools/retrace_benchmark.py
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/usr/bin/env python3
-# Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-import argparse
-import os
-import subprocess
-import sys
-import time
-
-import golem
-import jdk
-import proguard
-import utils
-
-GOLEM_BUILD_TARGETS = ['R8Lib']
-RETRACERS = ['r8', 'proguard', 'remapper']
-
-def parse_arguments(argv):
-  parser = argparse.ArgumentParser(
-                    description = 'Run r8 retrace bootstrap benchmarks.')
-  parser.add_argument('--golem',
-                    help = 'Link in third party dependencies.',
-                    default = False,
-                    action = 'store_true')
-  parser.add_argument('--ignore-java-version',
-                    help='Do not check java version',
-                    default=False,
-                    action='store_true')
-  parser.add_argument('--print-runtimeraw',
-                    metavar='BENCHMARKNAME',
-                    help='Print the line \'<BENCHMARKNAME>(RunTimeRaw):' +
-                        ' <elapsed> ms\' at the end where <elapsed> is' +
-                        ' the elapsed time in milliseconds.')
-  parser.add_argument('--retracer',
-                    help='The retracer to use',
-                    choices=RETRACERS,
-                    required=True)
-  parser.add_argument('--download-benchmarks',
-                      help='Download retrace benchmarks',
-                      default=False,
-                      action='store_true')
-  options = parser.parse_args(argv)
-  return options
-
-def download_benchmarks():
-  utils.DownloadFromGoogleCloudStorage(
-      os.path.join(utils.THIRD_PARTY, 'retrace_benchmark') + '.tar.gz.sha1')
-
-def run_retrace(options, temp):
-  if options.download_benchmarks:
-    download_benchmarks()
-  if options.retracer == 'r8':
-    retracer_args = [
-        '-cp', utils.R8LIB_JAR, 'com.android.tools.r8.retrace.Retrace']
-  elif options.retracer == 'proguard':
-    retracer_args = ['-jar', proguard.getRetraceJar()]
-  elif options.retracer == 'remapper':
-    retracer_args = ['-jar',
-                     os.path.join(
-                        utils.THIRD_PARTY,
-                        'remapper',
-                        'remapper_deploy.jar')]
-  else:
-    assert False, "Unexpected retracer " + options.retracer
-  retrace_args = [jdk.GetJavaExecutable()] + retracer_args + [
-    os.path.join(utils.THIRD_PARTY, 'retrace_benchmark', 'r8lib.jar.map'),
-    os.path.join(utils.THIRD_PARTY, 'retrace_benchmark', 'stacktrace.txt')]
-  utils.PrintCmd(retrace_args)
-  t0 = time.time()
-  subprocess.check_call(retrace_args)
-  t1 = time.time()
-  if options.print_runtimeraw:
-    print('{}(RunTimeRaw): {} ms'
-        .format(options.print_runtimeraw, 1000.0 * (t1 - t0)))
-
-
-if __name__ == '__main__':
-  options = parse_arguments(sys.argv[1:])
-  if options.golem:
-    golem.link_third_party()
-  if not options.ignore_java_version:
-    utils.check_java_version()
-  with utils.TempDir() as temp:
-    run_retrace(options, temp)
diff --git a/tools/run_bootstrap_benchmark.py b/tools/run_bootstrap_benchmark.py
deleted file mode 100755
index 0b35975..0000000
--- a/tools/run_bootstrap_benchmark.py
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/env python3
-# Copyright (c) 2018, the R8 project authors. Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-import argparse
-import os
-import sys
-
-import golem
-import minify_tool
-import toolhelper
-import utils
-
-MEMORY_XMX_LIMIT_BENCHMARK = 270
-
-def parse_arguments(argv):
-  parser = argparse.ArgumentParser(
-      description = 'Run r8 bootstrap benchmarks.')
-  parser.add_argument('--golem',
-      help = 'Link in third party dependencies.',
-      default = False,
-      action = 'store_true')
-  parser.add_argument('--limit-memory-runtime-test',
-      help = 'Run in a specific memory limit.',
-      default = False,
-      action = 'store_true')
-  return parser.parse_args(argv)
-
-
-def dex(input, output):
-  return_code = toolhelper.run(
-      'd8', [
-        input,
-        '--output', output,
-        '--lib', utils.RT_JAR,
-        '--min-api', '10000',
-        '--no-desugaring',
-      ],
-      debug=False,
-      build=False)
-  if return_code != 0:
-    sys.exit(return_code)
-
-if __name__ == '__main__':
-  options = parse_arguments(sys.argv[1:])
-  if options.golem:
-    golem.link_third_party()
-  with utils.TempDir() as temp:
-    memory_file = os.path.join(temp, 'memory.dump')
-    r8_output = os.path.join(temp, 'r8.zip')
-    d8_r8_output = os.path.join(temp, 'd8r8.zip')
-    d8_pg_output = os.path.join(temp, 'd8pg.zip')
-
-    run_memory_test = options.limit_memory_runtime_test
-
-    java_args = (['-Xmx%sM' % MEMORY_XMX_LIMIT_BENCHMARK]
-                 if run_memory_test else [])
-
-    benchmark_name = "MemoryR8Pinned" if run_memory_test else "BootstrapR8"
-
-    return_code = minify_tool.minify_tool(
-      input_jar=utils.PINNED_R8_JAR,
-      output_jar=r8_output,
-      debug=False,
-      build=False,
-      track_memory_file=memory_file,
-      benchmark_name=benchmark_name,
-      java_args=java_args)
-
-    if return_code != 0:
-      sys.exit(return_code)
-
-    if run_memory_test:
-      # We are not tracking code-size, so return early.
-      sys.exit(0)
-
-    dex(r8_output, d8_r8_output)
-    print "BootstrapR8(CodeSize):", utils.uncompressed_size(r8_output)
-    print "BootstrapR8Dex(CodeSize):", utils.uncompressed_size(d8_r8_output)
-
-    dex(utils.PINNED_PGR8_JAR, d8_pg_output)
-    print "BootstrapR8PG(CodeSize):", utils.uncompressed_size(
-        utils.PINNED_PGR8_JAR)
-    print "BootstrapR8PGDex(CodeSize):", utils.uncompressed_size(d8_pg_output)
-
-    r8_notreeshaking_output = os.path.join(temp, 'r8-notreeshaking.zip')
-    return_code = minify_tool.minify_tool(
-      input_jar=utils.PINNED_R8_JAR,
-      output_jar=r8_notreeshaking_output,
-      debug=False,
-      build=False,
-      benchmark_name="BootstrapR8NoTreeShaking",
-      additional_args=["--no-tree-shaking"])
-    if return_code != 0:
-      sys.exit(return_code)
-
-  sys.exit(0)
diff --git a/tools/test_framework.py b/tools/test_framework.py
deleted file mode 100755
index dccb63a..0000000
--- a/tools/test_framework.py
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/usr/bin/env python3
-# Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-# Run D8 or DX on 'third_party/framework/framework_<version>.jar'.
-# Report Golem-compatible CodeSize and RunTimeRaw values:
-#
-#     <NAME>-Total(CodeSize): <size>
-#     <NAME>-Total(RunTimeRaw>: <time> ms
-#
-# and also detailed segment sizes for each dex segment:
-#
-#    <NAME>-Code(CodeSize): <size>
-#    <NAME>-AnnotationSets(CodeSize): <size>
-#    ...
-#
-# Uses the DexSegment Java tool (Gradle target).
-
-from __future__ import print_function
-from glob import glob
-import argparse
-import golem
-import jdk
-import os
-import re
-import subprocess
-import sys
-import time
-
-import utils
-
-DX_JAR = os.path.join(utils.REPO_ROOT, 'tools', 'linux', 'dx', 'framework',
-    'dx.jar')
-FRAMEWORK_JAR = os.path.join('third_party', 'framework',
-    'framework_14082017_desugared.jar')
-MIN_SDK_VERSION = '24'
-
-def parse_arguments():
-  parser = argparse.ArgumentParser(
-      description = 'Run D8 or DX'
-          ' third_party/framework/framework*.jar.'
-          ' Report Golem-compatible CodeSize and RunTimeRaw values.')
-  parser.add_argument('--tool',
-      choices = ['dx', 'd8', 'd8-release'],
-      required = True,
-      help = 'Compiler tool to use.')
-  parser.add_argument('--golem',
-      help = 'Running on golem, link in third_party resources.',
-      default = False,
-      action = 'store_true')
-  parser.add_argument('--name',
-      required = True,
-      help = 'Results will be printed using the specified benchmark name (e.g.'
-          ' <NAME>-<segment>(CodeSize): <bytes>), the full size is reported'
-          ' with <NAME>-Total(CodeSize)')
-  parser.add_argument('--print-memoryuse',
-      help = 'Prints the line \'<NAME>-Total(MemoryUse):' 
-          ' <mem>\' at the end where <mem> is the peak'
-          ' peak resident set size (VmHWM) in bytes.',
-      default = False,
-      action = 'store_true')
-  parser.add_argument('--output',
-      help = 'Output directory to keep the generated files')
-  return parser.parse_args()
-
-def Main():
-  args = parse_arguments()
-  if args.golem:
-    golem.link_third_party()
-  utils.check_java_version()
-  output_dir = args.output
-  with utils.TempDir() as temp_dir:
-
-    if not output_dir:
-      output_dir = temp_dir
-
-    xmx = None
-    if args.tool == 'dx':
-      tool_file = DX_JAR
-      tool_args = ['--dex', '--output=' + output_dir, '--multi-dex',
-                   '--min-sdk-version=' + MIN_SDK_VERSION]
-      xmx = '-Xmx1600m'
-    else:
-      tool_file = utils.D8_JAR
-      tool_args = ['--output', output_dir, '--min-api', MIN_SDK_VERSION]
-      if args.tool == 'd8-release':
-        tool_args.append('--release')
-      xmx = '-Xmx600m'
-
-    cmd = []
-
-    track_memory_file = None
-    if args.print_memoryuse:
-      track_memory_file = os.path.join(output_dir, utils.MEMORY_USE_TMP_FILE)
-      cmd.extend(['tools/track_memory.sh', track_memory_file])
-
-    if tool_file.endswith('.jar'):
-      assert xmx is not None
-      cmd.extend([jdk.GetJavaExecutable(), xmx, '-jar'])
-
-    cmd.extend([tool_file] + tool_args + [FRAMEWORK_JAR])
-
-    utils.PrintCmd(cmd)
-
-    t0 = time.time()
-    subprocess.check_call(cmd)
-    dt = time.time() - t0
-
-    if args.print_memoryuse:
-      print('{}-Total(MemoryUse): {}'
-          .format(args.name, utils.grep_memoryuse(track_memory_file)))
-
-    dex_files = [f for f in glob(os.path.join(output_dir, '*.dex'))]
-    code_size = 0
-    for dex_file in dex_files:
-      code_size += os.path.getsize(dex_file)
-
-    print('{}-Total(RunTimeRaw): {} ms'
-      .format(args.name, 1000.0 * dt))
-
-    print('{}-Total(CodeSize): {}'
-      .format(args.name, code_size))
-
-    utils.print_dexsegments(args.name, dex_files)
-
-if __name__ == '__main__':
-  sys.exit(Main())
diff --git a/tools/test_helloexample.py b/tools/test_helloexample.py
deleted file mode 100755
index 509351e..0000000
--- a/tools/test_helloexample.py
+++ /dev/null
@@ -1,254 +0,0 @@
-#!/usr/bin/env python3
-# Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-# Run R8 on a simple Hello World program
-# Report Golem-compatible RunTimeRaw values:
-#
-#     <NAME>-Total(RunTimeRaw): <time> ms
-#
-# where <NAME> is Hello{,Dex}{,Large}{,NoOpt}
-
-import argparse
-import os
-import subprocess
-import sys
-import time
-import zipfile
-
-import golem
-import jdk
-import proguard
-import utils
-
-HELLO_JAR = os.path.join(utils.BUILD, 'test', 'examples', 'hello.jar')
-
-EXTRA_INPUTS = [
-  os.path.join(utils.THIRD_PARTY, 'sample_libraries', lib) for lib in [
-    'animal-sniffer-annotations-1.17.jar',
-    'annotations-13.0.jar',
-    'checker-compat-qual-2.5.2.jar',
-    'collections-28.0.0.jar',
-    'common-1.1.1.jar',
-    'commons-collections4-4.3.jar',
-    'commons-compress-1.18.jar',
-    'commons-lang3-3.8.1.jar',
-    'commons-math3-3.6.1.jar',
-    'constraint-layout-solver-1.1.3.jar',
-    'converter-gson-2.5.0.jar',
-    'dagger-2.22.1.jar',
-    'error_prone_annotations-2.2.0.jar',
-    'failureaccess-1.0.1.jar',
-    'gson-2.8.2.jar',
-    'guava-27.1-android.jar',
-    'j2objc-annotations-1.1.jar',
-    'javax.inject-1.jar',
-    'jsr305-3.0.2.jar',
-    'kotlin-stdlib-1.3.21.jar',
-    'kotlin-stdlib-common-1.3.21.jar',
-    'kotlin-stdlib-jdk7-1.3.21.jar',
-    'listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar',
-    'okhttp-3.14.0.jar',
-    'okio-1.17.2.jar',
-    'play-services-ads-17.2.0-javadoc.jar',
-    'play-services-ads-base-17.2.0-javadoc.jar',
-    'play-services-ads-lite-17.2.0-javadoc.jar',
-    'play-services-analytics-16.0.8-javadoc.jar',
-    'play-services-analytics-impl-16.0.8-javadoc.jar',
-    'play-services-base-16.1.0-javadoc.jar',
-    'play-services-basement-16.2.0-javadoc.jar',
-    'play-services-cast-16.1.2-javadoc.jar',
-    'play-services-drive-16.1.0-javadoc.jar',
-    'play-services-fitness-16.0.1-javadoc.jar',
-    'play-services-games-17.0.0-javadoc.jar',
-    'play-services-gass-17.2.0-javadoc.jar',
-    'play-services-gcm-16.1.0-javadoc.jar',
-    'play-services-iid-16.0.1-javadoc.jar',
-    'play-services-measurement-16.4.0-javadoc.jar',
-    'play-services-measurement-api-16.4.0-javadoc.jar',
-    'play-services-measurement-base-16.4.0-javadoc.jar',
-    'play-services-measurement-impl-16.4.0-javadoc.jar',
-    'play-services-measurement-sdk-16.4.0-javadoc.jar',
-    'play-services-measurement-sdk-api-16.4.0-javadoc.jar',
-    'play-services-tagmanager-v4-impl-16.0.8-javadoc.jar',
-    'play-services-vision-17.0.2-javadoc.jar',
-    'play-services-vision-common-17.0.2-javadoc.jar',
-    'protobuf-lite-3.0.1.jar',
-    'reactive-streams-1.0.2.jar',
-    'retrofit-2.5.0.jar',
-    'rxjava-2.2.8.jar',
-    'support-annotations-28.0.0.jar',
-  ]
-]
-
-EXTRA_KEEP_RULES = ['-dontwarn java.lang.ClassValue']
-
-def parse_arguments():
-  parser = argparse.ArgumentParser(
-      description = 'Compile a hello world example program')
-  parser.add_argument('--tool',
-                      choices = ['d8', 'r8'] + proguard.getVersions(),
-                      required = True,
-                      help = 'Compiler tool to use.')
-  parser.add_argument('--output-mode',
-                      choices = ['dex', 'cf'],
-                      required = True,
-                      help = 'Output mode to compile to.')
-  parser.add_argument('--golem',
-                      help = 'Running on golem, link in third_party resources.',
-                      default = False,
-                      action = 'store_true')
-  parser.add_argument('--large',
-                      help = 'Add many additional program inputs.',
-                      default = False,
-                      action = 'store_true')
-  parser.add_argument('--noopt',
-                      help = 'Disable most optimizations/processing.',
-                      default = False,
-                      action = 'store_true')
-  parser.add_argument('--print-memoryuse',
-                      help = 'Prints the line \'<NAME>-Total(MemoryUse):'
-                             ' <mem>\' at the end where <mem> is the peak'
-                             ' peak resident set size (VmHWM) in bytes.',
-                      default = False,
-                      action = 'store_true')
-  parser.add_argument('--output',
-                      help = 'Output directory to keep the generated files')
-  return parser.parse_args()
-
-def GetConfRules(extra, noopt):
-  rules = ['-keep class hello.Hello { void main(java.lang.String[]); }']
-  if len(extra) > 0:
-    rules.extend(EXTRA_KEEP_RULES)
-  if noopt:
-    rules.extend([
-      '-dontoptimize',
-      '-dontshrink',
-      '-dontobfuscate',
-      '-keepattributes *',
-    ])
-  return rules
-
-def GetCompilerPrefix(tool, mode, output, input, lib, extra, noopt):
-  return [
-    jdk.GetJavaExecutable(),
-    '-jar', utils.R8_JAR if tool == 'r8' else utils.D8_JAR,
-    '--output', output,
-    '--lib', lib,
-    '--debug' if noopt else '--release',
-    input,
-  ] + ([] if mode == 'cf' else ['--min-api', '21']) + extra
-
-def Compile(tool, output_mode, lib, extra, output_dir, noopt, temp_dir):
-  output = os.path.join(output_dir, 'out.zip')
-  if tool == 'd8':
-    if output_mode != 'dex':
-      raise ValueError('Invalid output mode for D8')
-    classpath = []
-    for cp_entry in extra:
-      classpath.extend(['--classpath', cp_entry])
-    return [
-      GetCompilerPrefix(
-        tool, output_mode, output, HELLO_JAR, lib, classpath, noopt)
-    ]
-  # The compilation is either R8 or PG.
-  # Write keep rules to a temporary file.
-  rules = GetConfRules(extra, noopt)
-  rules_file = os.path.join(temp_dir, 'rules.conf')
-  open(rules_file, 'w').write('\n'.join(rules))
-  if tool == 'r8':
-    cmd = GetCompilerPrefix(
-        tool, output_mode, output, HELLO_JAR, lib, extra, noopt)
-    cmd.extend(['--pg-conf', rules_file])
-    if output_mode == 'cf':
-      cmd.append('--classfile')
-    return [cmd]
-  if proguard.isValidVersion(tool):
-    # Build PG invokation with additional rules to silence warnings.
-    pg_out = output if output_mode == 'cf' \
-      else os.path.join(output_dir, 'pgout.zip')
-    cmds = [proguard.getCmd([
-      '-injars', ':'.join([HELLO_JAR] + extra),
-      '-libraryjars', lib,
-      '-outjars', pg_out,
-      '-dontwarn **',
-      '@' + rules_file
-    ], version=tool)]
-    if output_mode == 'dex':
-      cmds.append(
-          GetCompilerPrefix('d8', 'dex', output, pg_out, lib, [], noopt))
-    return cmds
-  raise ValueError('Unknown tool: ' + tool)
-
-def ProcessInput(input, tmp_dir):
-  if not input.endswith('.aar'):
-    return input
-  out_dir = os.path.join(tmp_dir, input)
-  os.makedirs(out_dir)
-  zip = zipfile.ZipFile(input, 'r')
-  zip.extractall(out_dir)
-  zip.close()
-  return os.path.join(out_dir, 'classes.jar')
-
-def Main():
-  args = parse_arguments()
-  if args.golem:
-    golem.link_third_party()
-  utils.check_java_version()
-
-  with utils.TempDir() as temp_dir:
-    cmd_prefix = []
-    output_dir = args.output if args.output else temp_dir
-    temp_dir = os.path.join(args.output, 'tmp') if args.output else temp_dir
-
-    track_memory_file = None
-    if args.print_memoryuse:
-      track_memory_file = os.path.join(output_dir, utils.MEMORY_USE_TMP_FILE)
-      cmd_prefix.extend(['tools/track_memory.sh', track_memory_file])
-
-    name = 'CompileHelloExample'
-
-    tool = args.tool
-    output_mode = args.output_mode
-    lib = None
-    if output_mode == 'dex':
-      name += 'Dex'
-      lib = utils.get_android_jar(28)
-    else:
-      lib = utils.RT_JAR
-
-    extra = []
-    if args.large:
-      name += 'Large'
-      extra = EXTRA_INPUTS
-
-    if args.noopt:
-      name += 'NoOpt'
-
-    cmds = Compile(
-      tool,
-      output_mode,
-      lib,
-      extra,
-      output_dir,
-      args.noopt,
-      temp_dir,
-    )
-
-    t0 = time.time()
-    for cmd in cmds:
-      fullcmd = cmd_prefix + cmd
-      utils.PrintCmd(fullcmd)
-      subprocess.check_output(fullcmd)
-    dt = time.time() - t0
-
-    if args.print_memoryuse:
-      print('{}(MemoryUse): {}'
-            .format(name, utils.grep_memoryuse(track_memory_file)))
-
-    print('{}(RunTimeRaw): {} ms'
-          .format(name, 1000.0 * dt))
-
-if __name__ == '__main__':
-  sys.exit(Main())