53 lines · plain
1# -*- Python -*-2 3from lit import Test4import lit.formats5import lit.util6import subprocess7 8def getSysrootFlagsOnDarwin(config, lit_config):9 # On Darwin, support relocatable SDKs by providing Clang with a10 # default system root path.11 if 'darwin' in config.target_triple:12 try:13 out = subprocess.check_output(['xcrun', '--show-sdk-path']).strip().decode()14 res = 015 except OSError:16 res = -117 if res == 0 and out:18 sdk_path = out19 lit_config.note('using SDKROOT: %r' % sdk_path)20 return '-isysroot %s' % sdk_path21 return ''22 23sysroot_flags = getSysrootFlagsOnDarwin(config, lit_config)24 25config.clang = lit.util.which('clang', config.clang_tools_dir).replace('\\', '/')26 27config.name = 'Clang Perf Training'28config.suffixes = ['.c', '.cc', '.cpp', '.m', '.mm', '.cu', '.ll', '.cl', '.s', '.S', '.modulemap', '.test']29 30if not config.use_llvm_build:31 config.excludes = ['llvm-support']32 33cc1_wrapper = '%s %s/perf-helper.py cc1' % (config.python_exe, config.perf_helper_dir)34 35use_lit_shell = os.environ.get("LIT_USE_INTERNAL_SHELL")36config.test_format = lit.formats.ShTest(use_lit_shell == "0")37config.cmake_compiler_args = '-DCMAKE_C_COMPILER="{0}" -DCMAKE_CXX_COMPILER="{0};--driver-mode=g++"'.format(38 config.clang.replace(' ', ';')39)40config.substitutions.append( ('%clang_cpp_skip_driver', ' %s %s %s ' % (cc1_wrapper, config.clang, sysroot_flags)))41config.substitutions.append( ('%clang_cpp', ' %s --driver-mode=g++ %s ' % (config.clang, sysroot_flags)))42config.substitutions.append( ('%clang_skip_driver', ' %s %s %s ' % (cc1_wrapper, config.clang, sysroot_flags)))43config.substitutions.append( ('%clang', '%s %s ' % (config.clang, sysroot_flags) ) )44config.substitutions.append( ('%test_root', config.test_exec_root ) )45config.substitutions.append( ('%cmake_compiler_args', config.cmake_compiler_args))46config.substitutions.append( ('%cmake_generator', config.cmake_generator ) )47config.substitutions.append( ('%cmake', config.cmake_exe ) )48config.substitutions.append( ('%llvm_src_dir', config.llvm_src_dir ) )49config.substitutions.append( ('%perf_wrapper', '' ) )50 51config.environment['LLVM_PROFILE_FILE'] = 'perf-training-%4m.profraw'52 53