> On Nov 28, 2016, at 3:35 PM, Jonathan Schleifer <[email protected]> 
> wrote:
> 
> I read through both links, but is not clear to me what this provides over the 
> combination of, say, ObjFW + Clang or GNUstep + Clang.

Ditto.

I looked at the linked blog post on inlining message-sends*, which ends with 
"It is possible to reduce the inlining overhead in x86_64 to 32 bytes.” Oof. 
That’s a lot — half a typical CPU cache line.  While you may save clock cycles 
by inlining, you may lose them again through poor instruction-cache locality.

Also, the calling convention** passes parameters (usually) as a pointer to an 
implicitly-defined C struct. This will slow down accessing the parameters 
inside the callee because it now has to indirect through that pointer. It also 
means parameters are  forced to be passed through RAM rather than CPU 
registers, which disables a pretty major optimization in register-rich CPUs.

Overall, I think you’re going to need to show some benchmarks (non-trivial 
ones) to prove that this is actually fast.

—Jens

* 
https://www.mulle-kybernetik.com/weblog/2015/mulle_objc_inlined_messaging.html 
<https://www.mulle-kybernetik.com/weblog/2015/mulle_objc_inlined_messaging.html>
** 
https://www.mulle-kybernetik.com/weblog/2015/mulle_objc_meta_call_convention.html
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Objc-language mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/objc-language/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to