> On Apr 25, 2017, at 11:18 AM, Jordan Rose <jordan_r...@apple.com> wrote:
> 
> I believe these are interposition points for things like dtrace, and also 
> useful for Roman's experiments with nonatomic retain counting. Roman, do you 
> know?

I had a chat with Slava yesterday and explained it to him. 

But basically, these are for the special calling convention to be used for 
invocation of often used runtime entry points (e.g. reference counting 
functions like swift_retain). This calling convention is not enabled by default 
yet. But the idea is that it provides more callee-saved registers thus giving 
the caller more registers that can be used without spilling them around the 
calls of such a runtime entry. And wrappers are required because otherwise dyld 
(the dynamic linker) in certain situations clobbers some of these callee-saved 
registers.

-Roman

> 
> (JoeG would know too but he's on vacation.)
> 
> Jordan
> 
> 
>> On Apr 24, 2017, at 17:15, Slava Pestov via swift-dev <swift-dev@swift.org> 
>> wrote:
>> 
>> Hi all,
>> 
>> Now that we’re using swiftcc, does IRGen still need to emit the swift_rt_* 
>> wrappers around runtime calls? They look like no-ops at this point since the 
>> runtime entry points themselves should be swiftcc with the callee save 
>> variant?
>> 
>> Slava
>> _______________________________________________
>> swift-dev mailing list
>> swift-dev@swift.org
>> https://lists.swift.org/mailman/listinfo/swift-dev
> 

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to