2015-12-16 09:02:44 +08:00
|
|
|
# -*- Python -*-
|
|
|
|
|
|
|
|
from lit import Test
|
|
|
|
import lit.formats
|
|
|
|
import lit.util
|
|
|
|
|
|
|
|
def getSysrootFlagsOnDarwin(config, lit_config):
|
|
|
|
# On Darwin, support relocatable SDKs by providing Clang with a
|
|
|
|
# default system root path.
|
|
|
|
if 'darwin' in config.target_triple:
|
|
|
|
try:
|
|
|
|
out = lit.util.capture(['xcrun', '--show-sdk-path']).strip()
|
|
|
|
res = 0
|
|
|
|
except OSError:
|
|
|
|
res = -1
|
|
|
|
if res == 0 and out:
|
|
|
|
sdk_path = out
|
|
|
|
lit_config.note('using SDKROOT: %r' % sdk_path)
|
|
|
|
return '-isysroot %s' % sdk_path
|
|
|
|
return ''
|
|
|
|
|
|
|
|
sysroot_flags = getSysrootFlagsOnDarwin(config, lit_config)
|
|
|
|
|
|
|
|
config.clang = lit.util.which('clang', config.clang_tools_dir).replace('\\', '/')
|
|
|
|
|
|
|
|
config.name = 'Clang Perf Training'
|
|
|
|
config.suffixes = ['.c', '.cpp', '.m', '.mm', '.cu', '.ll', '.cl', '.s', '.S', '.modulemap']
|
|
|
|
|
|
|
|
use_lit_shell = os.environ.get("LIT_USE_INTERNAL_SHELL")
|
|
|
|
config.test_format = lit.formats.ShTest(use_lit_shell == "0")
|
|
|
|
config.substitutions.append( ('%clang_cpp', ' %s --driver-mode=cpp %s ' % (config.clang, sysroot_flags)))
|
2015-12-19 08:56:12 +08:00
|
|
|
config.substitutions.append( ('%clang_cc1', ' %s -cc1 %s ' % (config.clang, sysroot_flags)))
|
2015-12-16 09:02:44 +08:00
|
|
|
config.substitutions.append( ('%clang', ' %s %s ' % (config.clang, sysroot_flags) ) )
|
2015-12-19 07:00:57 +08:00
|
|
|
config.substitutions.append( ('%test_root', config.test_exec_root ) )
|
2015-12-16 09:02:44 +08:00
|
|
|
|
|
|
|
config.environment['LLVM_PROFILE_FILE'] = 'perf-training-%p.profraw'
|
|
|
|
|