#!/bin/sh
# profile workload for gcc profile feedback (autofdo) using Linux perf
# auto generated. to regenerate for new CPUs run
# contrib/gen_autofdo_event.py --shell --all in gcc source

# usages:
# gcc-auto-profile program             (profile program and children)
# gcc-auto-profile -a sleep X          (profile all for X secs, may need root)
# gcc-auto-profile -p PID sleep X      (profile PID)
# gcc-auto-profile --kernel -a sleep X (profile kernel)
# gcc-auto-profile --all -a sleep X    (profile kernel and user space)

# identify branches taken event for CPU
#

FLAGS=u

if [ "$1" = "--kernel" ] ; then
  FLAGS=k
  shift
fi
if [ "$1" = "--all" ] ; then
  FLAGS=uk
  shift
fi

if ! grep -q Intel /proc/cpuinfo ; then
  echo >&2 "Only Intel CPUs supported"
  exit 1
fi

if grep -q hypervisor /proc/cpuinfo ; then
  echo >&2 "Warning: branch profiling may not be functional in VMs"
fi

case `egrep -q "^cpu family\s*: 6" /proc/cpuinfo &&
  egrep "^model\s*:" /proc/cpuinfo | head -n1` in
model*:\ 55|\
model*:\ 77|\
model*:\ 76) E="cpu/event=0xC4,umask=0xFE/p$FLAGS" ;;
model*:\ 42|\
model*:\ 45|\
model*:\ 58|\
model*:\ 62|\
model*:\ 60|\
model*:\ 69|\
model*:\ 70|\
model*:\ 63|\
model*:\ 61|\
model*:\ 71|\
model*:\ 86|\
model*:\ 78|\
model*:\ 94) E="cpu/event=0xC4,umask=0x20/p$FLAGS" ;;
model*:\ 46|\
model*:\ 30|\
model*:\ 31|\
model*:\ 26|\
model*:\ 47|\
model*:\ 37|\
model*:\ 44) E="cpu/event=0x88,umask=0x40/p$FLAGS" ;;
model*:\ 28|\
model*:\ 38|\
model*:\ 39|\
model*:\ 54|\
model*:\ 53) E="cpu/event=0x88,umask=0x41/p$FLAGS" ;;
*)
echo >&2 "Unknown CPU. Run contrib/gen_autofdo_event.py --all --script to update script."
	exit 1 ;;
esac
exec perf record -e $E -b "$@"
