[swift-evolution] ABI of throwing

Brent Royal-Gordon brent at architechies.com
Tue Aug 9 02:27:21 CDT 2016

> On Aug 7, 2016, at 9:36 PM, Chris Lattner via swift-evolution <swift-evolution at swift.org> wrote:
>>  However, as linked above, someone did for Microsoft platforms (for Microsoft-platform-style errors) and found that there is an impact. 
> C++ and Swift are completely different languages in this respect, so the analysis doesn’t translate over.

I believe the language in question was a native-compiled C# variant, not C++.

However, I suspect the numbers from Midori's experiment may not hold up in Swift. Midori used a generational mark-and-sweep garbage collector, so it didn't need to write implicit `finally` blocks to release objects owned by stack frames. Swift would. That could easily eat up the promised 7% code size savings, and the reduced ability to jump past frames could similarly damage the speed improvements.

I'm not saying I have the numbers to prove that it does; I don't. But given our different constraints, there are good reasons to doubt we'd see the same results.

Brent Royal-Gordon

More information about the swift-evolution mailing list