conway

conway.git
git clone git://git.lenczewski.org/conway.git
Log | Files | Refs | README

build_sample_pgo.sh (787B)


      1 #!/bin/sh
      2 
      3 CC="${CC:-clang}"
      4 
      5 WARNINGS="-Wall -Wextra -Wno-format-pedantic -Wno-unused-parameter"
      6 CFLAGS="-std=c11 -O3"
      7 
      8 PGOFLAGS="-g3 -gline-tables-only -fdebug-info-for-profiling -funique-internal-linkage-names"
      9 PROFGEN="$(which llvm-profgen-19)"
     10 
     11 set -ex
     12 
     13 mkdir -p bin
     14 
     15 $CC -o bin/conway-inst conway.c $WARNINGS $CFLAGS $PGOFLAGS
     16 
     17 perf record -o bin/pgo.profraw -b -e BR_INST_RETIRED.NEAR_TAKEN:uppp taskset -c 0 ./bin/conway-inst
     18 $PROFGEN --binary=./bin/conway-inst --perfdata=bin/pgo.profraw --output=bin/pgo.profdata
     19 
     20 $CC -o bin/conway-nopgo conway.c $WARNINGS $CFLAGS
     21 
     22 for i in $(seq 1 5); do
     23 	taskset -c 0 ./bin/conway-nopgo
     24 done
     25 
     26 $CC -o bin/conway-pgo conway.c $WARNINGS $CFLAGS -fprofile-sample-use=bin/pgo.profdata
     27 
     28 for i in $(seq 1 5); do
     29 	taskset -c 0 ./bin/conway-pgo
     30 done