Index: buildbot/osuosl/master/config/builders.py =================================================================== --- buildbot/osuosl/master/config/builders.py +++ buildbot/osuosl/master/config/builders.py @@ -644,7 +644,24 @@ reportBuildslave=False, package_cache="http://parkas1.inria.fr/packages", submitURL=['http://gcc12.fsffrance.org:8808/submitRun','http://llvm.org/perf/submitRun'], - testerName='x86_64-penryn-O3-polly-before-vectorizer-detect-only')} + testerName='x86_64-penryn-O3-polly-before-vectorizer-detect-only')}, + + {'name': "polly-arm-linux", + 'slavenames': ["hexagon-build-02", "hexagon-build-03"], + 'builddir': "polly-arm-linux", + 'factory': PollyBuilder.getPollyBuildFactory( + clean=True, + install=True, + make='ninja', + jobs=16, + checkFormat=False, + extraCmakeArgs=["-G", "Ninja", + "-DLLVM_TARGETS_TO_BUILD='ARM;AArch64'", + "-DLLVM_DEFAULT_TARGET_TRIPLE=arm-linux-gnueabi", + "-DLLVM_TARGET_ARCH=arm-linux-gnueabi", + "-DLLVM_ENABLE_ASSERTIONS=True", + "-DCMAKE_C_COMPILER:FILEPATH=/local/clang+llvm-3.7.1-x86_64-linux-gnu-ubuntu-14.04/bin/clang", + "-DCMAKE_CXX_COMPILER:FILEPATH=/local/clang+llvm-3.7.1-x86_64-linux-gnu-ubuntu-14.04/bin/clang++"])} ] # LLDB builders. Index: buildbot/osuosl/master/config/status.py =================================================================== --- buildbot/osuosl/master/config/status.py +++ buildbot/osuosl/master/config/status.py @@ -168,4 +168,13 @@ "llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast", "clang-with-lto-ubuntu"], addLogs=False), + InformativeMailNotifier( + fromaddr = "llvm.buildmaster@lab.llvm.org", + sendToInterestedUsers= False, + extraRecipients = ["efriedma@codeaurora.org"], + subject="Build %(builder)s Failure", + mode = "failing", + builders = ["polly-arm-linux"], + addLogs=False, + num_lines = 15), ] Index: zorg/buildbot/builders/PollyBuilder.py =================================================================== --- zorg/buildbot/builders/PollyBuilder.py +++ zorg/buildbot/builders/PollyBuilder.py @@ -9,11 +9,28 @@ from zorg.buildbot.builders import LNTBuilder from zorg.buildbot.builders import ClangBuilder -def getPollyBuildFactory(): +def getPollyBuildFactory( + clean=False, + install=False, + make='make', + jobs=None, + checkFormat=True, + extraCmakeArgs=[]): llvm_srcdir = "llvm.src" llvm_objdir = "llvm.obj" + llvm_instdir = "llvm.inst" polly_srcdir = '%s/tools/polly' % llvm_srcdir clang_srcdir = '%s/tools/clang' % llvm_srcdir + jobs_cmd = [] + if jobs is not None: + jobs_cmd = ["-j"+str(jobs)] + build_cmd = [make] + jobs_cmd + install_cmd = [make, 'install'] + jobs_cmd + check_cmd = [make, 'check-polly'] + jobs_cmd + check_format_cmd = [make, 'polly-check-format'] + jobs_cmd + cmake_install = [] + if install: + cmake_install = ["-DCMAKE_INSTALL_PREFIX=../%s" % llvm_instdir] f = buildbot.process.factory.BuildFactory() # Determine the build directory. @@ -22,7 +39,7 @@ property="builddir", description="set build dir", workdir=".")) - # Get LLVM, clang and Polly + # Get LLVM, Clang and Polly f.addStep(SVN(name='svn-llvm', mode='update', baseURL='http://llvm.org/svn/llvm-project/llvm/', @@ -39,38 +56,66 @@ defaultBranch='trunk', workdir=polly_srcdir)) + # Clean build dir + if clean: + f.addStep(ShellCommand(name='clean-build-dir', + command=['rm', '-rf', llvm_objdir], + warnOnFailure=True, + description=["clean build dir"], + workdir='.')) + # Create configuration files with cmake f.addStep(ShellCommand(name="create-build-dir", - command=["mkdir", "-p", llvm_objdir], - haltOnFailure=False, - description=["create build dir"], - workdir=".")) + command=["mkdir", "-p", llvm_objdir], + haltOnFailure=False, + description=["create build dir"], + workdir=".")) cmakeCommand = ["cmake", "../%s" %llvm_srcdir, - "-DCMAKE_COLOR_MAKEFILE=OFF", "-DPOLLY_TEST_DISABLE_BAR=ON", - "-DCMAKE_BUILD_TYPE=Release"] - + "-DCMAKE_COLOR_MAKEFILE=OFF", + "-DPOLLY_TEST_DISABLE_BAR=ON", + "-DCMAKE_BUILD_TYPE=Release"] + cmake_install + extraCmakeArgs f.addStep(ShellCommand(name="cmake-configure", - command=cmakeCommand, + command=cmakeCommand, + haltOnFailure=False, + description=["cmake configure"], + workdir=llvm_objdir)) + + # Build + f.addStep(ShellCommand(name="build", + command=build_cmd, + haltOnFailure=True, + description=["build"], + workdir=llvm_objdir)) + + # Clean install dir + if install and clean: + f.addStep(ShellCommand(name='clean-install-dir', + command=['rm', '-rf', llvm_instdir], haltOnFailure=False, - description=["cmake configure"], - workdir=llvm_objdir)) - # Build Polly - f.addStep(ShellCommand(name="build_polly", - command=["make"], - haltOnFailure=True, - description=["build polly"], + description=["clean install dir"], + workdir='.')) + + # Install + if install: + f.addStep(ShellCommand(name="install", + command=install_cmd, + haltOnFailure=False, + description=["install"], workdir=llvm_objdir)) + # Test Polly f.addStep(ShellCommand(name="test_polly", - command=["make", "polly-test"], - haltOnFailure=True, - description=["test polly"], - workdir=llvm_objdir)) + command=check_cmd, + haltOnFailure=True, + description=["test polly"], + workdir=llvm_objdir)) + # Check formatting - f.addStep(ShellCommand(name="test_polly_format", - command=["make", "polly-check-format"], + if checkFormat: + f.addStep(ShellCommand(name="test_polly_format", + command=check_format_cmd, haltOnFailure=False, - description=["Check formatting"], + description=["check formatting"], workdir=llvm_objdir)) return f