From 730f2f69ef64858bbb94a29a19d11f0f7f847754 Mon Sep 17 00:00:00 2001 From: Zanie Blue Date: Wed, 21 Oct 2026 18:19:29 +0000 Subject: [PATCH] Show LLVM profile statistics after PGO training --- Makefile.pre.in | 2 ++ configure | 4 ++++ configure.ac | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/Makefile.pre.in b/Makefile.pre.in index c49a16f1edc3be..e49c705c9d93db 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -50,6 +50,7 @@ GITBRANCH= @GITBRANCH@ PGO_PROF_GEN_FLAG=@PGO_PROF_GEN_FLAG@ PGO_PROF_USE_FLAG=@PGO_PROF_USE_FLAG@ LLVM_PROF_MERGER=@LLVM_PROF_MERGER@ +LLVM_PROF_SHOW=@LLVM_PROF_SHOW@ LLVM_PROF_FILE=@LLVM_PROF_FILE@ LLVM_PROF_ERR=@LLVM_PROF_ERR@ DTRACE= @DTRACE@ @@ -849,6 +850,7 @@ profile-run-stamp: @ # FIXME: can't run for a cross build $(LLVM_PROF_FILE) $(RUNSHARED) ./$(BUILDPYTHON) $(PROFILE_TASK) $(LLVM_PROF_MERGER) + $(LLVM_PROF_SHOW) # Remove profile generation binary since we are done with it. $(MAKE) clean-retain-profile # This is an expensive target to build and it does not have proper diff --git a/configure b/configure index 38fd8575530e8a..ca780200fdfe9d 100755 --- a/configure +++ b/configure @@ -937,6 +937,7 @@ LLVM_PROF_FOUND LLVM_PROFDATA LLVM_PROF_ERR LLVM_PROF_FILE +LLVM_PROF_SHOW LLVM_PROF_MERGER PGO_PROF_USE_FLAG PGO_PROF_GEN_FLAG @@ -9163,6 +9164,7 @@ fi + if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}llvm-profdata", so it can be a program name with args. set dummy ${ac_tool_prefix}llvm-profdata; ac_word=$2 @@ -9294,6 +9296,7 @@ printf "%s\n" "$as_me: llvm-profdata found via xcrun: ${LLVM_PROFDATA}" >&6;} fi fi LLVM_PROF_ERR=no +LLVM_PROF_SHOW=true case "$ac_cv_cc_name" in clang|icx) @@ -9302,6 +9305,7 @@ case "$ac_cv_cc_name" in PGO_PROF_USE_FLAG="-fprofile-instr-use=\"\$(shell pwd)/code.profclangd\"" LLVM_PROF_MERGER=" ${LLVM_PROFDATA} merge -output=\"\$(shell pwd)/code.profclangd\" \"\$(shell pwd)\"/*.profclangr " LLVM_PROF_FILE="LLVM_PROFILE_FILE=\"\$(shell pwd)/code-%p.profclangr\"" + LLVM_PROF_SHOW=" ${LLVM_PROFDATA} show --detailed-summary --topn=500 \"\$(shell pwd)/code.profclangd\" " if test $LLVM_PROF_FOUND = not-found then LLVM_PROF_ERR=yes diff --git a/configure.ac b/configure.ac index 777ced94454594..3e317ac1583088 100644 --- a/configure.ac +++ b/configure.ac @@ -2099,6 +2099,7 @@ fi AC_SUBST([PGO_PROF_GEN_FLAG]) AC_SUBST([PGO_PROF_USE_FLAG]) AC_SUBST([LLVM_PROF_MERGER]) +AC_SUBST([LLVM_PROF_SHOW]) AC_SUBST([LLVM_PROF_FILE]) AC_SUBST([LLVM_PROF_ERR]) AC_SUBST([LLVM_PROFDATA]) @@ -2123,6 +2124,7 @@ then fi fi LLVM_PROF_ERR=no +LLVM_PROF_SHOW=true case "$ac_cv_cc_name" in clang|icx) @@ -2135,6 +2137,10 @@ case "$ac_cv_cc_name" in \"\$(shell pwd)\"/*.profclangr ") LLVM_PROF_FILE="LLVM_PROFILE_FILE=\"\$(shell pwd)/code-%p.profclangr\"" + LLVM_PROF_SHOW=m4_normalize(" + ${LLVM_PROFDATA} show --detailed-summary --topn=500 + \"\$(shell pwd)/code.profclangd\" + ") if test $LLVM_PROF_FOUND = not-found then LLVM_PROF_ERR=yes