[llvm] [polly] [Buildbot][Polly] Move polly-x86_64-linux-test-suite build instructions into main repository (PR #166809)

via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 6 09:19:48 PST 2025


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {darker}-->


:warning: Python code formatter, darker found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
darker --check --diff -r origin/main...HEAD .buildbot/common/util.py .buildbot/common/worker.py polly/.buildbot/polly-x86_64-linux-test-suite.py
``````````

:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:

</details>

<details>
<summary>
View the diff from darker here.
</summary>

``````````diff
--- .buildbot/common/util.py	2025-11-06 16:54:53.000000 +0000
+++ .buildbot/common/util.py	2025-11-06 17:19:21.724252 +0000
@@ -26,26 +26,26 @@
     slashes on platforms where they are path separators. This prevents
     CMake from choking when trying to decode what it thinks are escape
     sequences in filenames.
     """
     result = safe_pjoin(*args)
-    if os.sep == '\\':
-        return result.replace('\\', '/')
+    if os.sep == "\\":
+        return result.replace("\\", "/")
     else:
         return result
 
 
 def report(msg):
-    sys.stderr.write(msg + '\n')
+    sys.stderr.write(msg + "\n")
     sys.stderr.flush()
 
 
 def report_run_cmd(cmd, shell=False, *args, **kwargs):
     """
     Print a command, then executes it using subprocess.check_call.
     """
-    report('Running: %s' % ((cmd if shell else shquote_cmd(cmd)),))
+    report("Running: %s" % ((cmd if shell else shquote_cmd(cmd)),))
     sys.stderr.flush()
     subprocess.check_call(cmd, shell=shell, *args, **kwargs)
 
 
 def mkdirp(path):
@@ -85,50 +85,50 @@
     else:
         return os.path.join(dirname, *args)
 
 
 def _shquote_impl(txt, escaped_chars, quoted_chars):
-    quoted = re.sub(escaped_chars, r'\\\1', txt)
+    quoted = re.sub(escaped_chars, r"\\\1", txt)
     if len(quoted) == len(txt) and not quoted_chars.search(txt):
         return txt
     else:
         return '"' + quoted + '"'
 
 
 _SHQUOTE_POSIX_ESCAPEDCHARS = re.compile(r'(["`$\\])')
-_SHQUOTE_POSIX_QUOTEDCHARS = re.compile('[|&;<>()\' \t\n]')
+_SHQUOTE_POSIX_QUOTEDCHARS = re.compile("[|&;<>()' \t\n]")
 
 
 def shquote_posix(txt):
     """Return txt, appropriately quoted for POSIX shells."""
-    return _shquote_impl(
-        txt, _SHQUOTE_POSIX_ESCAPEDCHARS, _SHQUOTE_POSIX_QUOTEDCHARS)
+    return _shquote_impl(txt, _SHQUOTE_POSIX_ESCAPEDCHARS, _SHQUOTE_POSIX_QUOTEDCHARS)
 
 
 _SHQUOTE_WINDOWS_ESCAPEDCHARS = re.compile(r'(["\\])')
-_SHQUOTE_WINDOWS_QUOTEDCHARS = re.compile('[ \t\n]')
+_SHQUOTE_WINDOWS_QUOTEDCHARS = re.compile("[ \t\n]")
 
 
 def shquote_windows(txt):
     """Return txt, appropriately quoted for Windows's cmd.exe."""
     return _shquote_impl(
-        txt.replace('%', '%%'),
-        _SHQUOTE_WINDOWS_ESCAPEDCHARS, _SHQUOTE_WINDOWS_QUOTEDCHARS)
+        txt.replace("%", "%%"),
+        _SHQUOTE_WINDOWS_ESCAPEDCHARS,
+        _SHQUOTE_WINDOWS_QUOTEDCHARS,
+    )
 
 
 def shquote(txt):
     """Return txt, appropriately quoted for use in a shell command."""
-    if os.name in set(('nt', 'os2', 'ce')):
+    if os.name in set(("nt", "os2", "ce")):
         return shquote_windows(txt)
     else:
         return shquote_posix(txt)
 
 
 def shquote_cmd(cmd):
     """Convert a list of shell arguments to an appropriately quoted string."""
-    return ' '.join(map(shquote, cmd))
-
+    return " ".join(map(shquote, cmd))
 
 
 def clean_dir(path):
     """
     Removes directory at path (and all its subdirectories) if it exists,
@@ -148,28 +148,28 @@
     slashes on platforms where they are path separators. This prevents
     CMake from choking when trying to decode what it thinks are escape
     sequences in filenames.
     """
     result = safe_pjoin(*args)
-    if os.sep == '\\':
-        return result.replace('\\', '/')
+    if os.sep == "\\":
+        return result.replace("\\", "/")
     else:
         return result
 
 
 def report(msg):
-    sys.stderr.write(msg + '\n')
+    sys.stderr.write(msg + "\n")
     sys.stderr.flush()
 
 
 def report_run_cmd(cmd, shell=False, *args, **kwargs):
     """
     Print a command, then executes it using subprocess.check_call.
     """
-    report('Running: %s' % ((cmd if shell else shquote_cmd(cmd)),))
-    sys.stderr.flush()
-    subprocess.check_call([str(c) for c in  cmd], shell=shell, *args, **kwargs)
+    report("Running: %s" % ((cmd if shell else shquote_cmd(cmd)),))
+    sys.stderr.flush()
+    subprocess.check_call([str(c) for c in cmd], shell=shell, *args, **kwargs)
 
 
 def mkdirp(path):
     """Create directory path if it does not already exist."""
     try:
@@ -207,47 +207,45 @@
     else:
         return os.path.join(dirname, *args)
 
 
 def _shquote_impl(txt, escaped_chars, quoted_chars):
-    quoted = re.sub(escaped_chars, r'\\\1', txt)
+    quoted = re.sub(escaped_chars, r"\\\1", txt)
     if len(quoted) == len(txt) and not quoted_chars.search(txt):
         return txt
     else:
         return '"' + quoted + '"'
 
 
 _SHQUOTE_POSIX_ESCAPEDCHARS = re.compile(r'(["`$\\])')
-_SHQUOTE_POSIX_QUOTEDCHARS = re.compile('[|&;<>()\' \t\n]')
+_SHQUOTE_POSIX_QUOTEDCHARS = re.compile("[|&;<>()' \t\n]")
 
 
 def shquote_posix(txt):
     """Return txt, appropriately quoted for POSIX shells."""
-    return _shquote_impl(
-        txt, _SHQUOTE_POSIX_ESCAPEDCHARS, _SHQUOTE_POSIX_QUOTEDCHARS)
+    return _shquote_impl(txt, _SHQUOTE_POSIX_ESCAPEDCHARS, _SHQUOTE_POSIX_QUOTEDCHARS)
 
 
 _SHQUOTE_WINDOWS_ESCAPEDCHARS = re.compile(r'(["\\])')
-_SHQUOTE_WINDOWS_QUOTEDCHARS = re.compile('[ \t\n]')
+_SHQUOTE_WINDOWS_QUOTEDCHARS = re.compile("[ \t\n]")
 
 
 def shquote_windows(txt):
     """Return txt, appropriately quoted for Windows's cmd.exe."""
     return _shquote_impl(
-        txt.replace('%', '%%'),
-        _SHQUOTE_WINDOWS_ESCAPEDCHARS, _SHQUOTE_WINDOWS_QUOTEDCHARS)
+        txt.replace("%", "%%"),
+        _SHQUOTE_WINDOWS_ESCAPEDCHARS,
+        _SHQUOTE_WINDOWS_QUOTEDCHARS,
+    )
 
 
 def shquote(txt):
     """Return txt, appropriately quoted for use in a shell command."""
-    if os.name in set(('nt', 'os2', 'ce')):
+    if os.name in set(("nt", "os2", "ce")):
         return shquote_windows(txt)
     else:
         return shquote_posix(txt)
 
 
 def shquote_cmd(cmd):
     """Convert a list of shell arguments to an appropriately quoted string."""
-    return ' '.join(map(shquote, cmd))
-
-
-
+    return " ".join(map(shquote, cmd))
--- .buildbot/common/worker.py	2025-11-06 16:54:53.000000 +0000
+++ .buildbot/common/worker.py	2025-11-06 17:19:21.760262 +0000
@@ -8,87 +8,88 @@
 import errno
 import re
 import subprocess
 from contextlib import contextmanager
 
+
 @contextmanager
 def step(step_name, halt_on_fail=False):
-    util.report('@@@BUILD_STEP {}@@@'.format(step_name))
+    util.report("@@@BUILD_STEP {}@@@".format(step_name))
     if halt_on_fail:
-        util.report('@@@HALT_ON_FAILURE@@@')
+        util.report("@@@HALT_ON_FAILURE@@@")
     try:
         yield
     except Exception as e:
         if isinstance(e, subprocess.CalledProcessError):
-            util.report(
-                '{} exited with return code {}.'.format(e.cmd, e.returncode)
-            )
+            util.report("{} exited with return code {}.".format(e.cmd, e.returncode))
         else:
-            util.report('The build step threw an exception...')
+            util.report("The build step threw an exception...")
             traceback.print_exc()
 
-        util.report('@@@STEP_FAILURE@@@')
+        util.report("@@@STEP_FAILURE@@@")
         if halt_on_fail:
             exit(1)
     finally:
         sys.stdout.flush()
 
 
 def get_steps(makefile):
     try:
-        make_cmd = build_make_cmd(makefile, 'get-steps')
+        make_cmd = build_make_cmd(makefile, "get-steps")
         raw_steps = capture_cmd_stdout(make_cmd)
-        return raw_steps.decode('utf-8').split('\n')[:-1]
+        return raw_steps.decode("utf-8").split("\n")[:-1]
     except:
         return []
 
+
 def build_make_cmd(makefile, target, make_vars={}):
-    make_cmd = ['make', '-f', makefile]
+    make_cmd = ["make", "-f", makefile]
     if not target is None:
         make_cmd.append(target)
-    for k,v in make_vars.items():
+    for k, v in make_vars.items():
         make_cmd += ["{}={}".format(k, v)]
     return make_cmd
 
+
 def capture_cmd_stdout(cmd, **kwargs):
-    return subprocess.run(cmd, shell=False, check=True, stdout=subprocess.PIPE, **kwargs).stdout
+    return subprocess.run(
+        cmd, shell=False, check=True, stdout=subprocess.PIPE, **kwargs
+    ).stdout
+
 
 def run_command(cmd, **kwargs):
     util.report_run_cmd(cmd, **kwargs)
 
 
 def run_ninja(args, targets, **kwargs):
-    cmd = ['ninja', *targets]
+    cmd = ["ninja", *targets]
     if args.jobs:
-        args .append(f'-j{args.jobs}')
-    #env = os.environ.copy()
-    #env['NINJA_STATUS'] = "[%p/%es :: %u->%r->%f (of %t)] "
+        args.append(f"-j{args.jobs}")
+    # env = os.environ.copy()
+    # env['NINJA_STATUS'] = "[%p/%es :: %u->%r->%f (of %t)] "
     util.report_run_cmd(cmd, **kwargs)
-
-
 
 
 def checkout(giturl, sourcepath):
     if not os.path.exists(sourcepath):
-        run_command(['git', 'clone', giturl, sourcepath])
+        run_command(["git", "clone", giturl, sourcepath])
 
     # Reset repository state no matter what there was before
-    run_command(['git', '-C', sourcepath, 'stash', '--all'])
-    run_command(['git', '-C', sourcepath, 'stash', 'clear'])
+    run_command(["git", "-C", sourcepath, "stash", "--all"])
+    run_command(["git", "-C", sourcepath, "stash", "clear"])
 
     # Fetch and checkout the newest
-    run_command(['git', '-C', sourcepath, 'fetch', 'origin'])
-    run_command(['git', '-C', sourcepath, 'checkout', 'origin/main', '--detach'])
+    run_command(["git", "-C", sourcepath, "fetch", "origin"])
+    run_command(["git", "-C", sourcepath, "checkout", "origin/main", "--detach"])
 
 
-def clean_on_request(args, always=[],on_clobber=[],on_clean=[]):
+def clean_on_request(args, always=[], on_clobber=[], on_clean=[]):
     cleanset = always
     if args.clobber or args.clean:
         # Clean implies clobber
         cleanset += on_clobber
-    if  args.clean:
+    if args.clean:
         cleanset += on_clean
 
     for d in cleanset:
-        with step(f'delete-{os.path.basename(d)}'):
-          util.clean_dir(d)
-
+        with step(f"delete-{os.path.basename(d)}"):
+            util.clean_dir(d)
--- polly/.buildbot/polly-x86_64-linux-test-suite.py	2025-11-06 16:54:53.000000 +0000
+++ polly/.buildbot/polly-x86_64-linux-test-suite.py	2025-11-06 17:19:21.801595 +0000
@@ -3,99 +3,129 @@
 import os
 import sys
 import argparse
 import pathlib
 
-llvmsrcroot = os.path.normpath(f"{__file__}/../../..") # Adapt to location in source tree
-sys.path.insert(0, os.path.join(llvmsrcroot, '.buildbot/common'))
+llvmsrcroot = os.path.normpath(
+    f"{__file__}/../../.."
+)  # Adapt to location in source tree
+sys.path.insert(0, os.path.join(llvmsrcroot, ".buildbot/common"))
 import worker
 
 
 # For information
-for k,v in os.environ.items():
+for k, v in os.environ.items():
     print(f"{k}={v}")
+
 
 def relative_if_possible(path, relative_to):
     path = os.path.normpath(path)
     try:
         result = os.path.relpath(path, start=relative_to)
         return result if result else path
     except Exception:
-        return  path
+        return path
 
 
 parser = argparse.ArgumentParser()
-parser.add_argument('--cachefile', default=relative_if_possible(pathlib.Path(__file__).with_suffix('.cmake'), llvmsrcroot), help='CMake cache seed')
-parser.add_argument('--jobs', '-j', help='Override the number fo default jobs')
-parser.add_argument('--clean', type=bool, default=os.environ.get('BUILDBOT_CLEAN'), help='Whether to delete source-, install-, and build-dirs before running')
-parser.add_argument('--clobber', type=bool, default=os.environ.get('BUILDBOT_CLOBBER'), help='Whether to delete install- and build-dirs before running')
+parser.add_argument(
+    "--cachefile",
+    default=relative_if_possible(
+        pathlib.Path(__file__).with_suffix(".cmake"), llvmsrcroot
+    ),
+    help="CMake cache seed",
+)
+parser.add_argument("--jobs", "-j", help="Override the number fo default jobs")
+parser.add_argument(
+    "--clean",
+    type=bool,
+    default=os.environ.get("BUILDBOT_CLEAN"),
+    help="Whether to delete source-, install-, and build-dirs before running",
+)
+parser.add_argument(
+    "--clobber",
+    type=bool,
+    default=os.environ.get("BUILDBOT_CLOBBER"),
+    help="Whether to delete install- and build-dirs before running",
+)
 args, _ = parser.parse_known_args()
 
 
 cwd = os.getcwd()
 
 
+buildbot_buildername = os.environ.get("BUILDBOT_BUILDERNAME")
+buildbot_revision = os.environ.get("BUILDBOT_REVISION", "origin/main")
 
 
-
-buildbot_buildername = os.environ.get('BUILDBOT_BUILDERNAME')
-buildbot_revision = os.environ.get('BUILDBOT_REVISION', 'origin/main')
-
-
-os.environ['NINJA_STATUS'] = "[%p/%es :: %u->%r->%f (of %t)] "
+os.environ["NINJA_STATUS"] = "[%p/%es :: %u->%r->%f (of %t)] "
 
 llvmbuilddir = "build-llvm"
 testsuitesrcdir = "testsuite.src"
 testsuitebuilddir = "build-testsuite"
-llvminstalldir = 'install-llvm'
+llvminstalldir = "install-llvm"
 print(f"Using build directory: {cwd}")
 
 # NEVER clean llvmsrcroot or cwd!
-worker.clean_on_request(args, always=[llvminstalldir,testsuitebuilddir],on_clobber=[llvmbuilddir],on_clean=[testsuitesrcdir])
+worker.clean_on_request(
+    args,
+    always=[llvminstalldir, testsuitebuilddir],
+    on_clobber=[llvmbuilddir],
+    on_clean=[testsuitesrcdir],
+)
 
 
-with worker.step('configure-llvm', halt_on_fail=True):
-    cmd = ['cmake',
-        '-S', os.path.join(llvmsrcroot,'llvm'),
-        '-B', llvmbuilddir,
-        '-G', 'Ninja',
-        '-C', os.path.join(llvmsrcroot, args.cachefile),
-        f'-DCMAKE_INSTALL_PREFIX={llvminstalldir}'
+with worker.step("configure-llvm", halt_on_fail=True):
+    cmd = [
+        "cmake",
+        "-S",
+        os.path.join(llvmsrcroot, "llvm"),
+        "-B",
+        llvmbuilddir,
+        "-G",
+        "Ninja",
+        "-C",
+        os.path.join(llvmsrcroot, args.cachefile),
+        f"-DCMAKE_INSTALL_PREFIX={llvminstalldir}",
     ]
     if args.jobs:
-        cmd.append(f'-DLLVM_LIT_ARGS=-svj{args.jobs}')
+        cmd.append(f"-DLLVM_LIT_ARGS=-svj{args.jobs}")
     worker.run_command(cmd)
 
-with worker.step('build-llvm', halt_on_fail=True):
-    worker.run_command(['ninja', '-C', llvmbuilddir])
+with worker.step("build-llvm", halt_on_fail=True):
+    worker.run_command(["ninja", "-C", llvmbuilddir])
 
-with worker.step('check-polly'):
-    worker.run_command(['ninja', '-C', llvmbuilddir, 'check-polly'])
+with worker.step("check-polly"):
+    worker.run_command(["ninja", "-C", llvmbuilddir, "check-polly"])
 
-with worker. step('install-llvm', halt_on_fail=True):
-    worker.run_command(['ninja', '-C', llvmbuilddir, 'install'])
+with worker.step("install-llvm", halt_on_fail=True):
+    worker.run_command(["ninja", "-C", llvmbuilddir, "install"])
 
-with worker. step('clone-testsuite', halt_on_fail=True):
-    worker.checkout('https://github.com/llvm/llvm-test-suite',testsuitesrcdir)
+with worker.step("clone-testsuite", halt_on_fail=True):
+    worker.checkout("https://github.com/llvm/llvm-test-suite", testsuitesrcdir)
 
-with worker.step('configure-testsuite', halt_on_fail=True):
-    cmd = ['cmake',
-        '-S', testsuitesrcdir,
-        '-B', testsuitebuilddir,
-        '-G', 'Ninja',
-        '-C', os.path.join(llvmsrcroot, args.cachefile),
-        '-DCMAKE_BUILD_TYPE=Release',
-        f'-DCMAKE_C_COMPILER={os.path.abspath(llvminstalldir)}/bin/clang',
-        f'-DCMAKE_CXX_COMPILER={os.path.abspath(llvminstalldir)}/bin/clang++',
-        f'-DCMAKE_C_FLAGS=-mllvm -polly',
-        f'-DCMAKE_CXX_FLAGS=-mllvm -polly',
+with worker.step("configure-testsuite", halt_on_fail=True):
+    cmd = [
+        "cmake",
+        "-S",
+        testsuitesrcdir,
+        "-B",
+        testsuitebuilddir,
+        "-G",
+        "Ninja",
+        "-C",
+        os.path.join(llvmsrcroot, args.cachefile),
+        "-DCMAKE_BUILD_TYPE=Release",
+        f"-DCMAKE_C_COMPILER={os.path.abspath(llvminstalldir)}/bin/clang",
+        f"-DCMAKE_CXX_COMPILER={os.path.abspath(llvminstalldir)}/bin/clang++",
+        f"-DCMAKE_C_FLAGS=-mllvm -polly",
+        f"-DCMAKE_CXX_FLAGS=-mllvm -polly",
     ]
     if args.jobs:
-        cmd.append(f'-DLLVM_LIT_ARGS=-svj{args.jobs}')
+        cmd.append(f"-DLLVM_LIT_ARGS=-svj{args.jobs}")
     worker.run_command(cmd)
 
-with worker.step('build-testsuite', halt_on_fail=True):
-    worker. run_ninja(args, ['-C', testsuitebuilddir])
+with worker.step("build-testsuite", halt_on_fail=True):
+    worker.run_ninja(args, ["-C", testsuitebuilddir])
 
-with worker.step('check-testsuite'):
-    worker.run_ninja(args, ['-C', testsuitebuilddir, 'check'])
-
+with worker.step("check-testsuite"):
+    worker.run_ninja(args, ["-C", testsuitebuilddir, "check"])

``````````

</details>


https://github.com/llvm/llvm-project/pull/166809


More information about the llvm-commits mailing list