mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
f2be46c665
Summary: This should avoid failing on old CPUs that do not have a cycle counter. Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D55416 llvm-svn: 348740
34 lines
1.3 KiB
INI
34 lines
1.3 KiB
INI
import subprocess
|
|
import lit.util
|
|
|
|
if not ('X86' in config.root.targets):
|
|
# We need support for X86.
|
|
config.unsupported = True
|
|
|
|
elif not ('x86_64' in config.root.host_triple):
|
|
# We need to be running on an X86 host.
|
|
config.unsupported = True
|
|
|
|
else:
|
|
# We need libpfm to be installed and allow reading perf counters. We can
|
|
# only know that at runtime, so we try to measure the latency of an empty
|
|
# code snippet and bail out on error.
|
|
llvm_exegesis_exe = lit.util.which('llvm-exegesis', config.llvm_tools_dir)
|
|
if not llvm_exegesis_exe:
|
|
print('llvm-exegesis not found')
|
|
config.unsupported = True
|
|
else:
|
|
try:
|
|
with open(os.devnull, 'w') as quiet:
|
|
check_llvm_exegesis_uops_result = subprocess.call(
|
|
[llvm_exegesis_exe, '-mode', 'uops', '-snippets-file', '/dev/null'], stdout=quiet, stderr=quiet)
|
|
check_llvm_exegesis_latency_result = subprocess.call(
|
|
[llvm_exegesis_exe, '-mode', 'latency', '-snippets-file', '/dev/null'], stdout=quiet, stderr=quiet)
|
|
except OSError:
|
|
print('could not exec llvm-exegesis')
|
|
config.unsupported = True
|
|
if not check_llvm_exegesis_uops_result == 0:
|
|
config.unsupported = True
|
|
if not check_llvm_exegesis_latency_result == 0:
|
|
config.unsupported = True
|