if jit_impl_cfg == 'mcjit':
# When running with mcjit, mangle -mcjit into target triple
# and add -use-mcjit flag to lli invocation
- if 'i686' in config.target_triple:
+ if 'i386' in config.target_triple or 'i686' in config.target_triple:
config.target_triple += jit_impl_cfg + '-ia32'
elif 'x86_64' in config.target_triple:
config.target_triple += jit_impl_cfg + '-ia64'
# Regex to reject matching a hyphen
NOHYPHEN = r"(?<!-)"
-for pattern in [r"\bbugpoint\b(?!-)", r"(?<!/|-)\bclang\b(?!-)",
+for pattern in [r"\bbugpoint\b(?!-)",
+ r"(?<!/|-)\bclang\b(?!-)",
r"\bgold\b",
# Match llc but not -llc
NOHYPHEN + r"\bllc\b",
r"\blli\b",
- r"\bllvm-ar\b", r"\bllvm-as\b",
- r"\bllvm-bcanalyzer\b", r"\bllvm-config\b",
- r"\bllvm-cov\b", r"\bllvm-diff\b",
- r"\bllvm-dis\b", r"\bllvm-dwarfdump\b",
- r"\bllvm-extract\b", r"\bllvm-jistlistener\b",
- r"\bllvm-link\b", r"\bllvm-mc\b",
- r"\bllvm-nm\b", r"\bllvm-objdump\b",
- r"\bllvm-prof\b", r"\bllvm-size\b",
- r"\bllvm-rtdyld\b", r"\bllvm-shlib\b",
+ r"\bllvm-PerfectShuffle\b",
+ r"\bllvm-ar\b",
+ r"\bllvm-as\b",
+ r"\bllvm-bcanalyzer\b",
+ r"\bllvm-config\b",
+ r"\bllvm-cov\b",
+ r"\bllvm-diff\b",
+ r"\bllvm-dis\b",
+ r"\bllvm-dwarfdump\b",
+ r"\bllvm-extract\b",
+ r"\bllvm-jistlistener\b",
+ r"\bllvm-link\b",
+ r"\bllvm-lto\b",
+ r"\bllvm-mc\b",
+ r"\bllvm-mcmarkup\b",
+ r"\bllvm-nm\b",
+ r"\bllvm-objdump\b",
+ r"\bllvm-ranlib\b",
+ r"\bllvm-readobj\b",
+ r"\bllvm-rtdyld\b",
+ r"\bllvm-shlib\b",
+ r"\bllvm-size\b",
+ r"\bllvm-tblgen\b",
+ r"\bllvm-c-test\b",
# Match llvmc but not -llvmc
NOHYPHEN + r"\bllvmc\b",
- r"\blto\b",
- # Don't match '.opt', '-opt',
- # '^opt' or '/opt'.
- r"\bmacho-dump\b", r"(?<!\.|-|\^|/)\bopt\b",
- r"\bllvm-tblgen\b", r"\bFileCheck\b",
- r"\bFileUpdate\b", r"\bc-index-test\b",
- r"\bfpcmp\b", r"\bllvm-PerfectShuffle\b",
+ # Match lto but not -lto
+ NOHYPHEN + r"\blto\b",
+ r"\bmacho-dump\b",
+ # Don't match '.opt', '-opt', '^opt' or '/opt'.
+ r"(?<!\.|-|\^|/)\bopt\b",
+ r"\bFileCheck\b",
+ r"\bFileUpdate\b",
+ r"\bc-index-test\b",
+ r"\bfpcmp\b",
+ r"\bobj2yaml\b",
+ r"\byaml2obj\b",
# Handle these specially as they are strings searched
# for during testing.
- r"\| \bcount\b", r"\| \bnot\b"]:
+ r"\| \bcount\b",
+ r"\| \bnot\b"]:
# Extract the tool name from the pattern. This relies on the tool
# name being surrounded by \b word match operators. If the
# pattern starts with "| ", include it in the string to be
if config.have_zlib == "1":
config.available_features.add("zlib")
+# Native compilation: host arch == target arch
+# FIXME: Consider cases that target can be executed
+# even if host_triple were different from target_triple.
+if config.host_triple == config.target_triple:
+ config.available_features.add("native")
+
# llc knows whether he is compiled with -DNDEBUG.
import subprocess
try: