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
>>

Reply via email to