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
