Skip to content

Conversation

@boomanaiden154
Copy link
Contributor

We currently only save the .ninja_log from the last ninja invocation because ninja overwrites any existing .ninja_log file. This prevents us from easily doing performance introspection of earlier ninja invocations (which take the bulk of the time) using the .ninja_log file.

We currently only save the .ninja_log from the last ninja invocation
because ninja overwrites any existing .ninja_log file. This prevents us
from easily doing performance introspection of earlier ninja invocations
(which take the bulk of the time) using the .ninja_log file.
@boomanaiden154 boomanaiden154 requested a review from cmtice October 15, 2025 01:35
@llvmbot llvmbot added the infrastructure Bugs about LLVM infrastructure label Oct 15, 2025
@llvmbot
Copy link
Member

llvmbot commented Oct 15, 2025

@llvm/pr-subscribers-infrastructure

Author: Aiden Grossman (boomanaiden154)

Changes

We currently only save the .ninja_log from the last ninja invocation because ninja overwrites any existing .ninja_log file. This prevents us from easily doing performance introspection of earlier ninja invocations (which take the bulk of the time) using the .ninja_log file.


Full diff: https://github.com/llvm/llvm-project/pull/163485.diff

3 Files Affected:

  • (modified) .ci/monolithic-linux.sh (+4)
  • (modified) .ci/monolithic-windows.sh (+2)
  • (modified) .ci/utils.sh (+1-1)
diff --git a/.ci/monolithic-linux.sh b/.ci/monolithic-linux.sh
index c8f331204bd49..6460d9bf44e1b 100755
--- a/.ci/monolithic-linux.sh
+++ b/.ci/monolithic-linux.sh
@@ -66,11 +66,13 @@ start-group "ninja"
 
 # Targets are not escaped as they are passed as separate arguments.
 ninja -C "${BUILD_DIR}" -k 0 ${targets} |& tee ninja.log
+cp .ninja_log ninja.ninja_log
 
 if [[ "${runtime_targets}" != "" ]]; then
   start-group "ninja Runtimes"
 
   ninja -C "${BUILD_DIR}" ${runtime_targets} |& tee ninja_runtimes.log
+  cp .ninja_log ninja_runtimes.ninja_log
 fi
 
 # Compiling runtimes with just-built Clang and running their tests
@@ -87,6 +89,7 @@ if [[ "${runtime_targets_needs_reconfig}" != "" ]]; then
 
   ninja -C "${BUILD_DIR}" ${runtime_targets_needs_reconfig} \
     |& tee ninja_runtimes_needs_reconfig1.log
+  cp .ninja_log ninja_runtimes_needs_reconig.ninja_log
 
   start-group "CMake Runtimes Clang Modules"
 
@@ -99,4 +102,5 @@ if [[ "${runtime_targets_needs_reconfig}" != "" ]]; then
 
   ninja -C "${BUILD_DIR}" ${runtime_targets_needs_reconfig} \
     |& tee ninja_runtimes_needs_reconfig2.log
+  cp .ninja_log ninja_runtimes_needs_reconfig2.ninja_log
 fi
diff --git a/.ci/monolithic-windows.sh b/.ci/monolithic-windows.sh
index f85d6e3d51b57..0f9783dc09d8f 100755
--- a/.ci/monolithic-windows.sh
+++ b/.ci/monolithic-windows.sh
@@ -55,9 +55,11 @@ start-group "ninja"
 
 # Targets are not escaped as they are passed as separate arguments.
 ninja -C "${BUILD_DIR}" -k 0 ${targets} |& tee ninja.log
+cp .ninja_log ninja.ninja_log
 
 if [[ "${runtime_targets}" != "" ]]; then
   start-group "ninja runtimes"
   
   ninja -C "${BUILD_DIR}" -k 0 ${runtimes_targets} |& tee ninja_runtimes.log
+  cp .ninja_log ninja_runtimes.ninja_log
 fi
diff --git a/.ci/utils.sh b/.ci/utils.sh
index 5d32968babb39..1ac3e53017966 100644
--- a/.ci/utils.sh
+++ b/.ci/utils.sh
@@ -26,7 +26,7 @@ function at-exit {
   mkdir -p artifacts
   sccache --show-stats
   sccache --show-stats >> artifacts/sccache_stats.txt
-  cp "${BUILD_DIR}"/.ninja_log artifacts/.ninja_log
+  cp "${BUILD_DIR}"/*.ninja_log artifacts/ || :
   cp "${MONOREPO_ROOT}"/*.log artifacts/ || :
   cp "${BUILD_DIR}"/test-results.*.xml artifacts/ || :
 

@boomanaiden154 boomanaiden154 merged commit a7cda50 into llvm:main Oct 16, 2025
11 checks passed
@boomanaiden154 boomanaiden154 deleted the save-ninja-logs-correctly branch October 16, 2025 15:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infrastructure Bugs about LLVM infrastructure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants