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