1d8b5bde5SChris Bieneman# -*- Python -*- 2d8b5bde5SChris Bieneman 3d8b5bde5SChris Bienemanfrom lit import Test 4d8b5bde5SChris Bienemanimport lit.formats 5d8b5bde5SChris Bienemanimport lit.util 6d8b5bde5SChris Bienemanimport os 7f70de9caSMichael Zolotukhinimport subprocess 8d8b5bde5SChris Bieneman 9d8b5bde5SChris Bienemandef getSysrootFlagsOnDarwin(config, lit_config): 10d8b5bde5SChris Bieneman # On Darwin, support relocatable SDKs by providing Clang with a 11d8b5bde5SChris Bieneman # default system root path. 12d8b5bde5SChris Bieneman if 'darwin' in config.target_triple: 13d8b5bde5SChris Bieneman try: 14f70de9caSMichael Zolotukhin out = subprocess.check_output(['xcrun', '--show-sdk-path']).strip() 15d8b5bde5SChris Bieneman res = 0 16d8b5bde5SChris Bieneman except OSError: 17d8b5bde5SChris Bieneman res = -1 18d8b5bde5SChris Bieneman if res == 0 and out: 19d8b5bde5SChris Bieneman sdk_path = out 20d8b5bde5SChris Bieneman lit_config.note('using SDKROOT: %r' % sdk_path) 21d8b5bde5SChris Bieneman return '-isysroot %s' % sdk_path 22d8b5bde5SChris Bieneman return '' 23d8b5bde5SChris Bieneman 24d8b5bde5SChris Bienemansysroot_flags = getSysrootFlagsOnDarwin(config, lit_config) 25d8b5bde5SChris Bieneman 26d8b5bde5SChris Bienemanconfig.clang = os.path.realpath(lit.util.which('clang', config.clang_tools_dir)).replace('\\', '/') 27d8b5bde5SChris Bieneman 28d8b5bde5SChris Bienemanconfig.name = 'Clang Perf Training' 29*78acf911SPetr Hosekconfig.suffixes = ['.c', '.cc', '.cpp', '.m', '.mm', '.cu', '.ll', '.cl', '.s', '.S', '.modulemap', '.test'] 30d8b5bde5SChris Bieneman 312c59c4ffSShoaib Meenaidtrace_wrapper = '%s %s/perf-helper.py dtrace' % (config.python_exe, config.perf_helper_dir) 322c59c4ffSShoaib Meenaidtrace_wrapper_cc1 = '%s %s/perf-helper.py dtrace --cc1' % (config.python_exe, config.perf_helper_dir) 33d8b5bde5SChris Bieneman 347f5884a4SChris Bienemanif 'darwin' in config.target_triple: 357f5884a4SChris Bieneman lit_config.note('using DTrace oneshot probe') 367f5884a4SChris Bieneman dtrace_wrapper = '%s --use-oneshot' % dtrace_wrapper 377f5884a4SChris Bieneman dtrace_wrapper_cc1 = '%s --use-oneshot' % dtrace_wrapper_cc1 387f5884a4SChris Bieneman 39d8b5bde5SChris Bienemanuse_lit_shell = os.environ.get("LIT_USE_INTERNAL_SHELL") 40d8b5bde5SChris Bienemanconfig.test_format = lit.formats.ShTest(use_lit_shell == "0") 41be16876eSAlexander Shaposhnikovconfig.substitutions.append( ('%clang_cpp_skip_driver', ' %s %s --driver-mode=g++ %s ' % (dtrace_wrapper_cc1, config.clang, sysroot_flags))) 42be16876eSAlexander Shaposhnikovconfig.substitutions.append( ('%clang_cpp', ' %s %s --driver-mode=g++ %s ' % (dtrace_wrapper, config.clang, sysroot_flags))) 4312fd02dbSChris Bienemanconfig.substitutions.append( ('%clang_skip_driver', ' %s %s %s ' % (dtrace_wrapper_cc1, config.clang, sysroot_flags))) 44d8b5bde5SChris Bienemanconfig.substitutions.append( ('%clang', ' %s %s %s ' % (dtrace_wrapper, config.clang, sysroot_flags) ) ) 45d8b5bde5SChris Bienemanconfig.substitutions.append( ('%test_root', config.test_exec_root ) ) 46d8b5bde5SChris Bieneman 47