From: Dhruv Chawla <[email protected]>

This is a partial fix for PR124075 which forces perf record to write the
profile out to perf.data. This is required because I noticed on both
aarch64 and x86 that it was writing out the profile to stdout at times,
which would cause profile information to be dropped. This did not fail
in the various create_fdas_for_* targets because they would only try and
access the perf profiles if they existed at their paths.

Further work for this patch is to plumb the PERF_DATA make variable into
the perf record invocation, but that is a stage 1 thing.

Autoprofilebootstrapped and regtested on aarch64-linux-gnu.

Signed-off-by: Dhruv Chawla <[email protected]>

gcc/ChangeLog:
        PR gcov-profile/124075
        * config/aarch64/gcc-auto-profile: Add "-o perf.data" to perf
        record invocation.
        * config/i386/gcc-auto-profile: Likewise.
---
 gcc/config/aarch64/gcc-auto-profile | 4 ++--
 gcc/config/i386/gcc-auto-profile    | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/gcc/config/aarch64/gcc-auto-profile 
b/gcc/config/aarch64/gcc-auto-profile
index fdf06dfeed0..b235e966048 100755
--- a/gcc/config/aarch64/gcc-auto-profile
+++ b/gcc/config/aarch64/gcc-auto-profile
@@ -43,11 +43,11 @@ if [ "$use_brbe" = true ] ; then
     echo >&2 "Warning: branch profiling may not be functional in VMs"
   fi
   set -x
-  perf record --inherit -j any,$FLAGS "$@"
+  perf record --inherit -o perf.data -j any,$FLAGS "$@"
   set +x
 else
   echo >&2 "Warning: branch profiling may not be functional without BRBE"
   set -x
-  perf record --inherit "$@"
+  perf record --inherit -o perf.data "$@"
   set +x
 fi
diff --git a/gcc/config/i386/gcc-auto-profile b/gcc/config/i386/gcc-auto-profile
index 5cd4077826b..c7772a2800f 100755
--- a/gcc/config/i386/gcc-auto-profile
+++ b/gcc/config/i386/gcc-auto-profile
@@ -117,13 +117,13 @@ echo >&2 "AMD CPU without support for ex_ret_brn_tkn 
event"
         fi ;;
 esac
 set -x
-if ! perf record --inherit -e $E -b "$@" ; then
+if ! perf record --inherit -o perf.data -e $E -b "$@" ; then
   # PEBS may not actually be working even if the processor supports it
   # (e.g., in a virtual machine). Trying to run without /p.
   set +x
   echo >&2 "Retrying without /p."
   E="$(echo "${E}" | sed -e \'s/\/p/\//\ -e s/:p//)"
   set -x
-  exec perf record --inherit -e $E -b "$@"
+  exec perf record --inherit -o perf.data -e $E -b "$@"
  set +x
 fi
-- 
2.43.0

Reply via email to