r"\bllvm-dwarfdump\b",
r"\bllvm-extract\b",
r"\bllvm-go\b",
+ r"\bllvm-lib\b",
r"\bllvm-link\b",
r"\bllvm-lto\b",
r"\bllvm-mc\b",
r"\bFileCheck\b",
r"\bobj2yaml\b",
r"\byaml2obj\b",
+ r"\byaml-bench\b",
r"\bverify-uselistorder\b",
# Handle these specially as they are strings searched
# for during testing.
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
else:
config.available_features.add("nozlib")
-# Native compilation: host arch == target arch
+# Native compilation: host arch == target arch and native backend built-in
# FIXME: Consider cases that target can be executed
# even if host_triple were different from target_triple.
-if config.host_triple == config.target_triple:
+if (config.host_triple == config.target_triple and
+ config.native_target in config.targets_to_build):
config.available_features.add("native")
import subprocess