| Index: tools/run_perf.py
|
| diff --git a/tools/run_perf.py b/tools/run_perf.py
|
| index a8cc3fab7158207f73d5ae460b0f291360a76219..4a01988c2509c8206c196f774c97f93f55944a63 100755
|
| --- a/tools/run_perf.py
|
| +++ b/tools/run_perf.py
|
| @@ -350,9 +350,9 @@ class Node(object):
|
|
|
| class DefaultSentinel(Node):
|
| """Fake parent node with all default values."""
|
| - def __init__(self):
|
| + def __init__(self, binary = "d8"):
|
| super(DefaultSentinel, self).__init__()
|
| - self.binary = "d8"
|
| + self.binary = binary
|
| self.run_count = 10
|
| self.timeout = 60
|
| self.path = []
|
| @@ -543,11 +543,10 @@ def MakeGraphConfig(suite, arch, parent):
|
| raise Exception("Invalid suite configuration.")
|
|
|
|
|
| -def BuildGraphConfigs(suite, arch, parent=None):
|
| +def BuildGraphConfigs(suite, arch, parent):
|
| """Builds a tree structure of graph objects that corresponds to the suite
|
| configuration.
|
| """
|
| - parent = parent or DefaultSentinel()
|
|
|
| # TODO(machenbach): Implement notion of cpu type?
|
| if arch not in suite.get("archs", SUPPORTED_ARCHS):
|
| @@ -813,6 +812,11 @@ def Main(args):
|
| default="out")
|
| parser.add_option("--outdir-no-patch",
|
| help="Base directory with compile output without patch")
|
| + parser.add_option("--binary-override-path",
|
| + help="JavaScript engine binary. By default, d8 under "
|
| + "architecture-specific build dir. "
|
| + "Not supported in conjunction with outdir-no-patch.")
|
| +
|
| (options, args) = parser.parse_args(args)
|
|
|
| if len(args) == 0: # pragma: no cover
|
| @@ -843,7 +847,18 @@ def Main(args):
|
| else:
|
| build_config = "%s.release" % options.arch
|
|
|
| - options.shell_dir = os.path.join(workspace, options.outdir, build_config)
|
| + if options.binary_override_path == None:
|
| + options.shell_dir = os.path.join(workspace, options.outdir, build_config)
|
| + default_binary_name = "d8"
|
| + else:
|
| + if not os.path.isfile(options.binary_override_path):
|
| + print "binary-override-path must be a file name"
|
| + return 1
|
| + if options.outdir_no_patch:
|
| + print "specify either binary-override-path or outdir-no-patch"
|
| + return 1
|
| + options.shell_dir = os.path.dirname(options.binary_override_path)
|
| + default_binary_name = os.path.basename(options.binary_override_path)
|
|
|
| if options.outdir_no_patch:
|
| options.shell_dir_no_patch = os.path.join(
|
| @@ -872,7 +887,8 @@ def Main(args):
|
| platform.PreExecution()
|
|
|
| # Build the graph/trace tree structure.
|
| - root = BuildGraphConfigs(suite, options.arch)
|
| + default_parent = DefaultSentinel(default_binary_name)
|
| + root = BuildGraphConfigs(suite, options.arch, default_parent)
|
|
|
| # Callback to be called on each node on traversal.
|
| def NodeCB(node):
|
|
|