[swift-dev] Having 64-bit swift_retain/release ignore all negative pointer values

Alexis abeingessner at apple.com
Thu Oct 13 16:36:14 CDT 2016



> On Oct 13, 2016, at 5:14 PM, Joe Groff <jgroff at apple.com> wrote:
> 
> 
>> On Oct 13, 2016, at 2:04 PM, Alexis <abeingessner at apple.com> wrote:
>> 
>> Correct me if I’m wrong, but aren’t all kernel addresses negative on x64 and AArch64? Would this then mean any attempt to use Swift in kernel-space requires a distinct ABI?
> 
> That's correct, but we'd likely already have to have a separate "kernel" ABI due to our assumptions about spare bits in pointers. It also seems unlikely to me that kernel developers would want to use our refcounting scheme as is.

True, but the types being discussed here seem to mostly be language features that are implicitly falling back to reference counting when escape analysis fails. And specifically the tagging you’re proposing is for the cases where some special analysis passes and we can avoid the ref-counting machinery, right? Sounds like exactly the things they want. Although perhaps if they want to always avoid the ref-counting machinery, then we can actually have more aggressive pointer tagging tricks in the kernel ABI. 

Well, as long as we’re aware that this is more complexity we’re adopting, seems fine.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20161013/101959ff/attachment.html>


More information about the swift-dev mailing list