[libcxx-commits] [libcxx] [libc++] Add scripts defining two LNT runners for libc++ (PR #187050)

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Tue Mar 17 09:01:59 PDT 2026


https://github.com/ldionne created https://github.com/llvm/llvm-project/pull/187050

None

>From b0efdf7bcadc250ce595f561e9627abb4dbc3dd2 Mon Sep 17 00:00:00 2001
From: Louis Dionne <ldionne.2 at gmail.com>
Date: Mon, 23 Feb 2026 14:26:17 -0500
Subject: [PATCH] [libc++] Add scripts defining two LNT runners for libc++

---
 libcxx/utils/ci/lnt/runners/README.md        |  7 +++++
 libcxx/utils/ci/lnt/runners/apple-m5-clang21 | 31 ++++++++++++++++++++
 libcxx/utils/ci/lnt/runners/apple-m5-xcode26 | 29 ++++++++++++++++++
 3 files changed, 67 insertions(+)
 create mode 100644 libcxx/utils/ci/lnt/runners/README.md
 create mode 100755 libcxx/utils/ci/lnt/runners/apple-m5-clang21
 create mode 100755 libcxx/utils/ci/lnt/runners/apple-m5-xcode26

diff --git a/libcxx/utils/ci/lnt/runners/README.md b/libcxx/utils/ci/lnt/runners/README.md
new file mode 100644
index 0000000000000..13668947b27ea
--- /dev/null
+++ b/libcxx/utils/ci/lnt/runners/README.md
@@ -0,0 +1,7 @@
+## Libc++ LNT runners
+
+This directory defines some LNT runners for tracking libc++ performance. A runner can be run with
+
+```
+bash <(curl -Ls https://raw.githubusercontent.com/llvm/llvm-project/main/libcxx/utils/ci/lnt/runners/RUNNER) <ARGS...>
+```
diff --git a/libcxx/utils/ci/lnt/runners/apple-m5-clang21 b/libcxx/utils/ci/lnt/runners/apple-m5-clang21
new file mode 100755
index 0000000000000..a901bffda6d97
--- /dev/null
+++ b/libcxx/utils/ci/lnt/runners/apple-m5-clang21
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+#
+# Run on macOS against Homebrew Clang
+#
+
+if [ -z "${1}" ] || [ ! -d "${1}" ]; then
+    echo "usage: ${0} <path-to-llvm-monorepo>"
+    echo "error: Please provide a valid path to the LLVM monorepo."
+    exit 1
+fi
+
+MONOREPO_DIR=$(cd "${1}" && pwd)
+
+export SDKROOT=$(xcrun --show-sdk-path)
+
+while true; do
+    ${MONOREPO_DIR}/libcxx/utils/ci/lnt/commit-watch --git-repo ${MONOREPO_DIR}                                 \
+        --lnt-url http://lnt.llvm.org --test-suite libcxx2 --machine apple-m5-clang21 |                         \
+        while read commit; do                                                                                   \
+            ${MONOREPO_DIR}/libcxx/utils/ci/lnt/run-benchmarks                                                  \
+                --test-suite-commit 0eefb2682bf8c04954c46e91916b5164d8424702                                    \
+                --git-repo ${MONOREPO_DIR}                                                                      \
+                --lnt-url http://lnt.llvm.org                                                                   \
+                --test-suite libcxx2                                                                            \
+                --machine apple-m5-clang21                                                                      \
+                --compiler $(brew --prefix)/opt/llvm/bin/clang++                                                \
+                --benchmark-commit ${commit};                                                                   \
+        done
+    sleep 60 # To avoid busy looping in case something goes really wrong
+done
diff --git a/libcxx/utils/ci/lnt/runners/apple-m5-xcode26 b/libcxx/utils/ci/lnt/runners/apple-m5-xcode26
new file mode 100755
index 0000000000000..98c664e0c9b43
--- /dev/null
+++ b/libcxx/utils/ci/lnt/runners/apple-m5-xcode26
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+
+#
+# Run on macOS against Xcode-provided Clang
+#
+
+if [ -z "${1}" ] || [ ! -d "${1}" ]; then
+    echo "usage: ${0} <path-to-llvm-monorepo>"
+    echo "error: Please provide a valid path to the LLVM monorepo."
+    exit 1
+fi
+
+MONOREPO_DIR=$(cd "${1}" && pwd)
+
+while true; do
+    ${MONOREPO_DIR}/libcxx/utils/ci/lnt/commit-watch --git-repo ${MONOREPO_DIR}                                 \
+        --lnt-url http://lnt.llvm.org --test-suite libcxx2 --machine apple-m5-xcode26 |                         \
+        while read commit; do                                                                                   \
+            ${MONOREPO_DIR}/libcxx/utils/ci/lnt/run-benchmarks                                                  \
+                --test-suite-commit 0eefb2682bf8c04954c46e91916b5164d8424702                                    \
+                --git-repo ${MONOREPO_DIR}                                                                      \
+                --lnt-url http://lnt.llvm.org                                                                   \
+                --test-suite libcxx2                                                                            \
+                --machine apple-m5-xcode26                                                                      \
+                --compiler clang++                                                                              \
+                --benchmark-commit ${commit};                                                                   \
+        done
+    sleep 60 # To avoid busy looping in case something goes really wrong
+done



More information about the libcxx-commits mailing list