Only download r8.jar once when benchmarking

Change-Id: I0492ad2131c9977ae457794b5f47cfa46a99e69d
diff --git a/tools/run_benchmark.py b/tools/run_benchmark.py
index dd05251..6bf0882 100755
--- a/tools/run_benchmark.py
+++ b/tools/run_benchmark.py
@@ -78,6 +78,10 @@
         '-v',
         help='Use R8 version/hash for the run (default local build)',
         default=None)
+    result.add_argument(
+        '--version-jar',
+        help='The r8.jar corresponding to the version given at --version.',
+        default=None)
     result.add_argument('--temp',
                         help='A directory to use for temporaries and outputs.',
                         default=None)
@@ -130,11 +134,11 @@
             os.path.join(utils.R8LIB_TESTBASE_JAR)
         ]
 
-    if options.version:
+    if options.version or options.version_jar:
         # r8 is downloaded so only test jar needs to be built.
         buildTargets = testBuildTargets
-        r8jar = compiledump.download_distribution(options.version, options,
-                                                  temp)
+        r8jar = options.version_jar or compiledump.download_distribution(
+            options.version, options, temp)
 
     if not options.no_build:
         gradle.RunGradle(buildTargets + ['-Pno_internal'])