conway

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

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