Lit: Allow overriding llvm tool paths+arguments, make -D an alias for --param

These changes allow usages where you want to pass an additional
commandline option to all invocations of a specific llvm tool. Example:

> llvm-lit -Dllc=llc -enable-misched -verify-machineinstrs

Differential Revision: http://reviews.llvm.org/D9487

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236461 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Matthias Braun
2015-05-04 21:36:36 +00:00
parent 9cf57f7a88
commit cccd128a8a
3 changed files with 8 additions and 4 deletions

View File

@@ -56,7 +56,7 @@ GENERAL OPTIONS
Search for :file:`{NAME}.cfg` and :file:`{NAME}.site.cfg` when searching for Search for :file:`{NAME}.cfg` and :file:`{NAME}.site.cfg` when searching for
test suites, instead of :file:`lit.cfg` and :file:`lit.site.cfg`. test suites, instead of :file:`lit.cfg` and :file:`lit.site.cfg`.
.. option:: --param NAME, --param NAME=VALUE .. option:: -D NAME, -D NAME=VALUE, --param NAME, --param NAME=VALUE
Add a user defined parameter ``NAME`` with the given ``VALUE`` (or the empty Add a user defined parameter ``NAME`` with the given ``VALUE`` (or the empty
string if not given). The meaning and use of these parameters is test suite string if not given). The meaning and use of these parameters is test suite

View File

@@ -267,8 +267,12 @@ for pattern in [r"\bbugpoint\b(?!-)",
pattern) pattern)
tool_pipe = tool_match.group(2) tool_pipe = tool_match.group(2)
tool_name = tool_match.group(4) tool_name = tool_match.group(4)
tool_path = lit.util.which(tool_name, llvm_tools_dir) # Did the user specify the tool path + arguments? This allows things like
if not tool_path: # llvm-lit "-Dllc=llc -enable-misched -verify-machineinstrs"
tool_path = lit_config.params.get(tool_name)
if tool_path is None:
tool_path = lit.util.which(tool_name, llvm_tools_dir)
if tool_path is None:
# Warn, but still provide a substitution. # Warn, but still provide a substitution.
lit_config.note('Did not find ' + tool_name + ' in ' + llvm_tools_dir) lit_config.note('Did not find ' + tool_name + ' in ' + llvm_tools_dir)
tool_path = llvm_tools_dir + '/' + tool_name tool_path = llvm_tools_dir + '/' + tool_name

View File

@@ -146,7 +146,7 @@ def main(builtinParameters = {}):
parser.add_option("", "--config-prefix", dest="configPrefix", parser.add_option("", "--config-prefix", dest="configPrefix",
metavar="NAME", help="Prefix for 'lit' config files", metavar="NAME", help="Prefix for 'lit' config files",
action="store", default=None) action="store", default=None)
parser.add_option("", "--param", dest="userParameters", parser.add_option("-D", "--param", dest="userParameters",
metavar="NAME=VAL", metavar="NAME=VAL",
help="Add 'NAME' = 'VAL' to the user defined parameters", help="Add 'NAME' = 'VAL' to the user defined parameters",
type=str, action="append", default=[]) type=str, action="append", default=[])