bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gold/12919] icf fails to fold one of the component of std::sort


From: tmsriram at google dot com
Subject: [Bug gold/12919] icf fails to fold one of the component of std::sort
Date: Thu, 22 Sep 2011 17:48:57 +0000

http://sourceware.org/bugzilla/show_bug.cgi?id=12919

--- Comment #10 from Sriraman Tallam <tmsriram at google dot com> 2011-09-22 
17:48:57 UTC ---
On Thu, Sep 22, 2011 at 3:29 AM, vincenzo.innocente at cern dot ch
<address@hidden> wrote:
> http://sourceware.org/bugzilla/show_bug.cgi?id=12919
>
> --- Comment #9 from Vincenzo Innocente <vincenzo.innocente at cern dot ch> 
> 2011-09-22 10:29:29 UTC ---
> I tried to add __attribute__ ((visibility ("hidden"))) to __introsort_loop
> no folding either even if now the symbol is "t" not "W".

Isn't it the case that __introsort_loop has references to pre-emptible
functions like move_median*. So, it is important to make  the
referenced functions hidden than making introsort_loop itself hidden.
It does not matter that introsort_loop is hidden or not.

Now, it is the case that a hidden function in a shared object calls a
pre-emptible function, right? Which means, the behaviour of the hidden
function can still be changed by providing new definitions for the
pre-emptible functions.

>
>
> c++ -O2 -Wl,--icf=all,--print-icf-sections -shared -fPIC
> -fvisibility-inlines-hidden -ffunction-sections ICFproblem.cpp -o libbha.so
>
> nm -C libbha.so | grep intro
> 0000000000001fa0 t void 
> std::__introsort_loop<__gnu_cxx::__normal_iterator<A**,
> std::vector<A*, std::allocator<A*> > >, 
> long>(__gnu_cxx::__normal_iterator<A**,
> std::vector<A*, std::allocator<A*> > >, __gnu_cxx::__normal_iterator<A**,
> std::vector<A*, std::allocator<A*> > >, long)
> 0000000000002230 t void 
> std::__introsort_loop<__gnu_cxx::__normal_iterator<B**,
> std::vector<B*, std::allocator<B*> > >, 
> long>(__gnu_cxx::__normal_iterator<B**,
> std::vector<B*, std::allocator<B*> > >, __gnu_cxx::__normal_iterator<B**,
> std::vector<B*, std::allocator<B*> > >, long)
> 00000000000024c0 t void 
> std::__introsort_loop<__gnu_cxx::__normal_iterator<C**,
> std::vector<C*, std::allocator<C*> > >, 
> long>(__gnu_cxx::__normal_iterator<C**,
> std::vector<C*, std::allocator<C*> > >, __gnu_cxx::__normal_iterator<C**,
> std::vector<C*, std::allocator<C*> > >, long)
>
> --
> Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug.
> You are the assignee for the bug.
>

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]