| 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 the host to be support LBR format with cycles. |
| 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_latency_result = subprocess.call( |
| [llvm_exegesis_exe, '-mode', 'latency', '-x86-lbr-sample-period', '123', '-repetition-mode', 'loop', '-snippets-file', '/dev/null'], stdout=quiet, stderr=quiet) |
| except OSError: |
| print('could not exec llvm-exegesis') |
| config.unsupported = True |
| if not check_llvm_exegesis_latency_result == 0: |
| config.unsupported = True |