build_instr_pgo.sh (708B)
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 -fcs-profile-generate -funique-internal-linkage-names" 9 10 set -ex 11 12 mkdir -p bin 13 14 $CC -o bin/conway-inst conway.c $WARNINGS $CFLAGS $PGOFLAGS 15 16 for i in $(seq 1 5); do 17 LLVM_PROFILE_FILE="bin/conway-%p.profraw" taskset -c 0 ./bin/conway-inst 18 done 19 20 llvm-profdata merge -output=bin/pgo.profdata bin/conway-*.profraw 21 22 $CC -o bin/conway-nopgo conway.c $WARNINGS $CFLAGS 23 24 for i in $(seq 1 5); do 25 taskset -c 0 ./bin/conway-nopgo 26 done 27 28 $CC -o bin/conway-pgo conway.c $WARNINGS $CFLAGS -fprofile-instr-use=bin/pgo.profdata 29 30 for i in $(seq 1 5); do 31 taskset -c 0 ./bin/conway-pgo 32 done