[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cfe-dev
Subject:    Re: [cfe-dev] Adding support for multiple non-virtual inheritance for -cxx-abi microsoft
From:       John McCall <rjmccall () apple ! com>
Date:       2013-04-08 18:33:14
Message-ID: DF1EE834-0629-45EB-A023-9B2EAACB2811 () apple ! com
[Download RAW message or body]

On Apr 8, 2013, at 11:08 AM, Reid Kleckner <rnk@google.com> wrote:
> On Mon, Apr 8, 2013 at 2:02 PM, Timur Iskhodzhanov <timurrrr@google.com> =
wrote:
>> 2013/4/8 John McCall <rjmccall@apple.com>:
>>> I also find it curious that MSVC uses a thunk for member pointers, since
>>> the required this-adjustment is already plainly expressible in the memb=
er
>>> pointer value.
>> Me too actually.
>> Reid, wdyt?
> =

> I think it allows them to avoid the union between non-virtual methods
> and virtual methods.  Seems a bit cleaner and more obvious to me, but
> it has tradeoffs in terms of code size at the call site and the number
> of conditional vs. indirect branches that you have to do:
> indirect to thunk and indirect through vtable, vs conditional between
> two indirect calls

Oh, does MSVC not do the union thing?  They always make a thunk to do
the virtual call?

If so, this "thunk" is potentially quite a bit more than just a thunk =97 i=
t may
actually have ABI pointer-equality requirements on it for e.g. member
pointer equality tests.

John.
_______________________________________________
cfe-dev mailing list
cfe-dev@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic