atomic update of profile counters (issue7000044)

Andrew Pinski pinskia@gmail.com
Wed Nov 20 07:20:00 GMT 2013


On Tue, Nov 19, 2013 at 5:02 PM, Rong Xu <xur@google.com> wrote:
> Hi all,
>
> I merged this old patch with current trunk. I also make the following changes
> (1) not using weak references. Now every *profile_atomic() has it's
> own .o so that none of them will be in the final binary if
> -fprofile-generate-atomic is not specified.
> (2) more value profilers have the atomic version.
> (3) not link to libatomic. I used to link the libatomic in the
> presence of -fprofile-generate-atomic, per Andrew's suggestion. It
> used to work. But now if I can add -latomic in the SPEC, it cannot
> find the libatomic.so.1 (unless I specify the PATH). I did not find an
> easy way to statically link libatomic.a. Andrew: Do you have any
> suggestion? Or should we let the user link to libatomic.a if the
> builtins are not expanded?

It should work for an installed GCC.  For testing you might need
something that is included inside testsuite/lib/atomic-dg.exp which
sets the library path to include libatomic build directory.

I think now we require libatomic in more cases (C11 atomic support for
an example).

Thanks,
Andrew Pinski

>
> Is this OK for trunk?
>
> Thanks,
>
> -Rong
>
> On Mon, Jan 7, 2013 at 12:55 PM, Rong Xu <xur@google.com> wrote:
>> Function __gcov_indirect_call_profiler_atomic (which contains call to
>> the atomic function) is always emitted in libgcov.
>> Since we only link libatomic when -fprofile-gen-atomic is specified,
>> we have to make the atomic function weak -- otherwise, there is a
>> unsat for regular FDO gen build (of course, when the builtin is not
>> expanded).
>>
>> An alternative it to always link libatomic together with libgcov. Then
>> we don't need the weak stuff. I'm not sure when one is better.
>>
>> -Rong
>>
>> On Mon, Jan 7, 2013 at 12:36 PM, Richard Henderson <rth@redhat.com> wrote:
>>> On 01/03/2013 04:42 PM, Rong Xu wrote:
>>>> It links libatomic when -fprofile-gen-atomic is specified for FDO
>>>> instrumentation build. Here I assume libatomic is always installed.
>>>> Andrew: do you think if this is reasonable?
>>>>
>>>> It also disables the functionality if target does not support weak
>>>> (ie. TARGET_SUPPORTS_WEAK == 0).
>>>
>>> Since you're linking libatomic, you don't need weak references.
>>>
>>> I think its ok to assume libatomic is installed, given that the
>>> user has had to explicitly use the command-line option.
>>>
>>>
>>> r~



More information about the Gcc-patches mailing list