r194288 - If a linkonce_odr dtor/ctor is identical to another one, just rauw.

Eric Christopher echristo at gmail.com
Tue Nov 12 10:36:33 PST 2013


>
> So... what's the benefit of this optimization compared to letting the
> backend inline the known-trivial dtors? Then we'd get the inlining debug
> info for free in (1) (and the non-polymorphic cases of (2)) rather than
> having to implement a special-case inlining in Clang. Does this fire in
> other cases where LLVM cannot do this? Is there measurable overhead in
> emitting trivial derived dtors that simply call their base dtor?
>

Piping in a little bit, this also seems to be causing the same
warnings with gold as the previous patch. I'm looking to get a small
testcase but...

-eric

>
>
>
> On Mon, Nov 11, 2013 at 8:42 PM, Rafael EspĂ­ndola
> <rafael.espindola at gmail.com> wrote:
>>
>> On 11 November 2013 23:35, David Blaikie <dblaikie at gmail.com> wrote:
>> > This optimization fires if the derived dtor has no work to do (and thus
>> > without the optimization Clang emits a derived dtor that simply contains
>> > a
>> > call to the base dtor?)?
>> >
>> > The usual "What does GCC do?" might be helpful - do they ever do this?
>> > Do
>> > they do it only > -O0?
>>
>> They never emit an alias from derived to base (even with local
>> classes). With optimizations you get a direct call, but I am not sure
>> exactly which optimization is doing it.
>>
>> Cheers,
>> Rafael
>
>




More information about the cfe-commits mailing list