Index: llvm/trunk/docs/CommandGuide/lit.rst =================================================================== --- llvm/trunk/docs/CommandGuide/lit.rst +++ llvm/trunk/docs/CommandGuide/lit.rst @@ -56,7 +56,7 @@ 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`. -.. 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 string if not given). The meaning and use of these parameters is test suite Index: llvm/trunk/test/lit.cfg =================================================================== --- llvm/trunk/test/lit.cfg +++ llvm/trunk/test/lit.cfg @@ -267,8 +267,12 @@ pattern) tool_pipe = tool_match.group(2) tool_name = tool_match.group(4) - tool_path = lit.util.which(tool_name, llvm_tools_dir) - if not tool_path: + # Did the user specify the tool path + arguments? This allows things like + # 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. lit_config.note('Did not find ' + tool_name + ' in ' + llvm_tools_dir) tool_path = llvm_tools_dir + '/' + tool_name Index: llvm/trunk/utils/lit/lit/main.py =================================================================== --- llvm/trunk/utils/lit/lit/main.py +++ llvm/trunk/utils/lit/lit/main.py @@ -146,7 +146,7 @@ parser.add_option("", "--config-prefix", dest="configPrefix", metavar="NAME", help="Prefix for 'lit' config files", action="store", default=None) - parser.add_option("", "--param", dest="userParameters", + parser.add_option("-D", "--param", dest="userParameters", metavar="NAME=VAL", help="Add 'NAME' = 'VAL' to the user defined parameters", type=str, action="append", default=[])