Index: buildbot/osuosl/master/config/builders.py =================================================================== --- buildbot/osuosl/master/config/builders.py +++ buildbot/osuosl/master/config/builders.py @@ -644,7 +644,12 @@ 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.getPollyARMBuildFactory()} ] # 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 @@ -167,3 +167,88 @@ **lnt_args); return f + +def getPollyARMBuildFactory(): + 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 + host_clang = "/local/clang+llvm-3.7.1-x86_64-linux-gnu-ubuntu-14.04" + + f = buildbot.process.factory.BuildFactory() + # Get LLVM, Clang and Polly + f.addStep(SVN(name='svn-llvm', + mode='update', + baseURL='http://llvm.org/svn/llvm-project/llvm/', + defaultBranch='trunk', + workdir=llvm_srcdir)) + f.addStep(SVN(name='svn-clang', + mode='update', + baseURL='http://llvm.org/svn/llvm-project/cfe/', + defaultBranch='trunk', + workdir=clang_srcdir)) + f.addStep(SVN(name='svn-polly', + mode='update', + baseURL='http://llvm.org/svn/llvm-project/polly/', + defaultBranch='trunk', + workdir=polly_srcdir)) + + # Clean build dir + f.addStep(ShellCommand(name='clean-build-dir', + command=['rm', '-rf', llvm_objdir], + warnOnFailure=True, + description='cleaning', + descriptionDone='clean', + workdir='.')) + + # Create configuration files with cmake + f.addStep(ShellCommand(name="create-build-dir", + command=["mkdir", "-p", llvm_objdir], + warnOnFailure=True, + description=["create build dir"], + workdir=".")) + cmakeCommand = ["cmake", "-G", "Ninja", "../%s" % llvm_srcdir, + "-DLLVM_TARGETS_TO_BUILD='ARM;AArch64'", + "-DLLVM_DEFAULT_TARGET_TRIPLE=arm-linux-gnueabi", + "-DLLVM_TARGET_ARCH=arm-linux-gnueabi", + "-DCMAKE_BUILD_TYPE=Release", + "-DLLVM_ENABLE_ASSERTIONS=True", + "-DCMAKE_C_COMPILER:FILEPATH=%s/bin/clang" % host_clang, + "-DCMAKE_CXX_COMPILER:FILEPATH=%s/bin/clang++" % host_clang, + "-DCMAKE_INSTALL_PREFIX=../%s" % llvm_instdir] + f.addStep(ShellCommand(name="cmake-configure", + command=cmakeCommand, + warnOnFailure=True, + description=["cmake configure"], + workdir=llvm_objdir)) + + # Build Polly + f.addStep(ShellCommand(name="build_polly", + command=["ninja", "-j16"], + haltOnFailure=True, + description=["build polly"], + workdir=llvm_objdir)) + + # Clean install dir + f.addStep(ShellCommand(name='clean-install-dir', + command=['rm', '-rf', llvm_instdir], + warnOnFailure=True, + description='cleaning', + descriptionDone='clean', + workdir='.')) + + # Install Polly + f.addStep(ShellCommand(name="install_polly", + command=["ninja", "install", "-j16"], + warnOnFailure=True, + description=["install polly"], + workdir=llvm_objdir)) + + # Test Polly + f.addStep(ShellCommand(name="test_polly", + command=["ninja", "check-polly", "-j16"], + haltOnFailure=True, + description=["test polly"], + workdir=llvm_objdir)) + return f