diff --git a/benchmark.py b/benchmark.py index 989fea0..617331f 100755 --- a/benchmark.py +++ b/benchmark.py @@ -3,7 +3,7 @@ from common import run_cmake from common import setup from common import benchmark -from common import src +from common import LLVM_SRC from common import obj @@ -13,7 +13,7 @@ import sys import shutil -setup(internet=True) +setup() def build_stage(n): inst_dir = obj + '/llvm-inst%s' % n @@ -57,12 +57,12 @@ def build_stage(n): os.chdir('..') -assert os.path.exists(src + '/tools/clang') -assert os.path.exists(src + '/tools/lld') -if platform.system() == 'Darwin': - assert not os.path.exists(src + '/projects/libcxx') -else: - assert not os.path.exists(src + '/projects/libcxx') -assert not os.path.exists(src + '/tools/clang/tools/extra') +#assert os.path.exists( + '/tools/clang') +#assert os.path.exists(src + '/tools/lld') +#if platform.system() == 'Darwin': +# assert not os.path.exists(src + '/projects/libcxx') +#else: +# assert not os.path.exists(src + '/projects/libcxx') +#assert not os.path.exists(src + '/tools/clang/tools/extra') build_stage(1) build_stage(2) diff --git a/common.py b/common.py index 2c7ecce..5d3034a 100644 --- a/common.py +++ b/common.py @@ -4,8 +4,10 @@ import shutil HOME = os.environ['HOME'] -benchmark = '%s/benchmark_llvm' % HOME -src = '%s/llvm.src' % benchmark +benchmark = '/tmp/benchmark_llvm' +LLVM_SRC = '%s/llvm.src' % benchmark +CLANG_SRC = '%s/clang.src' % benchmark +LLD_SRC = '%s/lld.src' % benchmark obj = '%s/llvm.obj' % benchmark def which(x): @@ -14,28 +16,27 @@ def which(x): def git(*args): return subprocess.check_call([which('git')] + list(args)) +def svn(*args): + return subprocess.check_call([which('svn')] + list(args)) -def setup(internet=True): +def setup(): if not os.path.exists(benchmark): os.makedirs(benchmark) os.makedirs(obj) os.chdir(benchmark) - if internet: - clone_url_prefix = 'http://llvm.org/git/' - else: - clone_url_prefix = 'git://assets.llvm.scea.com/' - git('clone', '%sllvm.git' % clone_url_prefix, src) - git('clone', '%sclang.git' % clone_url_prefix, src + '/tools/clang') - git('clone', '%slld.git' % clone_url_prefix, src + '/tools/lld') + clone_url_prefix = 'http://llvm.org/svn/llvm-project/' + svn('checkout', '%sllvm/trunk' % clone_url_prefix, LLVM_SRC) + svn('checkout', '%scfe/trunk' % clone_url_prefix, CLANG_SRC) + svn('checkout', '%slld/trunk' % clone_url_prefix, LLD_SRC) else: shutil.rmtree(obj, True) os.makedirs(obj) - os.chdir(src) - git('pull', 'origin', 'master') - os.chdir(src + '/tools/clang') - git('pull', 'origin', 'master') - os.chdir(src + '/tools/lld') - git('pull', 'origin', 'master') + os.chdir(LLVM_SRC) + svn('update') + os.chdir(CLANG_SRC) + svn('update') + os.chdir(LLD_SRC) + svn('update') os.chdir(obj) @@ -78,7 +79,10 @@ def run_cmake(CC='clang', CXX='clang++', AR='ar', '-DCMAKE_BUILD_TYPE=%s' % buildtype, '-DLLVM_ENABLE_SPHINX=OFF', '-DCOMPILER_RT_BUILD_SHARED_ASAN=OFF', - '-DLLVM_TARGETS_TO_BUILD=X86' ] + '-DLLVM_TARGETS_TO_BUILD=X86', + '-DLLVM_EXTERNAL_CLANG_SOURCE_DIR=%s' % CLANG_SRC, + '-DLLVM_EXTERNAL_LLD_SOURCE_SIR=%s' % LLD_SRC, + ] # FIXME: Talk with espindola about linker flag usage #linker_flags=[] @@ -123,5 +127,5 @@ def run_cmake(CC='clang', CXX='clang++', AR='ar', os.environ['CC'] = CC os.environ['CXX'] = CXX - cmd = ['cmake', src ] + CMAKE_ARGS + cmd = ['cmake', LLVM_SRC ] + CMAKE_ARGS subprocess.check_call(cmd)