That's correct. For trunk, gcov_version is 0x1. We defined this as a flag so that you can actually change it via --gcov_version=0x1 instead of changing the code.
Dehao On Tue, Apr 21, 2015 at 1:47 PM, Sebastian Pop <seb...@gmail.com> wrote: > We also needed to adjust the gcov_version in autofdo/gcov.cc to read > 0x1 for dev branches of gcc (instead of the current 0x3430372a for > some released version of GCC): > > -DEFINE_uint64(gcov_version, 0x3430372a, > +DEFINE_uint64(gcov_version, 0x1, > > Sebastian > > On Tue, Apr 21, 2015 at 3:33 PM, Aditya K <hiradi...@msn.com> wrote: >> After patching linux perf. This script collects creates a coverage file >> (e.g., for linpack) which can be used for fdo. >> >> >> gcov=linpack-x86.gcov >> MAKE='make' >> >> >> # x86 >> x86() { >> CC=/usr/bin/gcc >> CXX=/usr/bin/g++ >> >> export CFLAGS="-Ofast -g3 -static" >> export CPPFLAGS=$CFLAGS >> >> $MAKE -C $SRC/SingleSource/Benchmarks/Linpack clean >> >> $MAKE -C $SRC/SingleSource/Benchmarks/Linpack -k TEST=simple >> TARGET_LLVMGCC=$CC TARGET_CXX=$CXX LLI_OPTFLAGS= TARGET_CC=$CC >> TARGET_LLVMGXX=$CXX CC_UNDER_TEST_IS_GCC=1 TARGET_FLAGS= >> USE_REFERENCE_OUTPUT=1 CC_UNDER_TEST_TARGET_IS_AARCH64=1 OPTFLAGS= >> LLC_OPTFLAGS= ENABLE_OPTIMIZED=1 ARCH=x86_64 ENABLE_HASHED_PROGRAM_OUTPUT=1 >> DISABLE_JIT=1 >> >> perfdata=autofdo-linpack/perf-x86.data >> >> perf record -b -e branch-instructions -o $perfdata >> $SRC/SingleSource/Benchmarks/Linpack/Output/linpack-pc.simple >> >> autofdo/usr/bin/create_gcov >> --binary=$SRC/SingleSource/Benchmarks/Linpack/Output/linpack-pc.simple >> --profile=$perfdata --gcov=$gcov >> >> } >> >> >> hth, >> -Aditya >> >> ---------------------------------------- >>> From: a...@firstfloor.org >>> To: i.palac...@samsung.com >>> CC: dnovi...@google.com; gcc@gcc.gnu.org; davi...@google.com; >>> hubi...@ucw.cz; seb...@gmail.com; de...@google.com; v.bari...@samsung.com >>> Subject: Re: AutoFDO profile toolchain is open-sourced >>> Date: Tue, 21 Apr 2015 07:25:10 -0700 >>> >>> Ilya Palachev <i.palac...@samsung.com> writes: >>>> >>>> But why create_gcov does not inform about that (no branch events were >>>> found)? It creates empty gcov file and says nothing :( >>>> >>>> Moreover, in the mentioned README it is said that perf should also be >>>> executed with option -e BR_INST_RETIRED:TAKEN. >>> >>> Standard perf doesn't have a full event list >>> This assumes a perf patched with the libpfm patch. >>> >>> Also I suspect it really wants to use PEBS events, so pp should be added. >>> >>> Alternatively you can use ocperf (from >>> http://github.com/andikleen/pmu-tools) which is just a wrapper: >>> >>> ocperf.py record -e br_inst_retired.near_taken:pp -b ... >>> >>> or specify the event manually (depending on your CPU, like) >>> >>> perf record -e >>> cpu/event=0xc4,umask=0x20,name=br_inst_retired_near_taken,period=400009/pp >>> -b ... >>> >>> BTW the biggest problem with autofdo currently is that it is >>> quite bitrotten and supports only several years old perf. >>> So all of this above will only work with old distributions, >>> unless you compile an old perf utility first. >>> >>> -Andi >>> >>> -- >>> a...@linux.intel.com -- Speaking for myself only >>