Wednesday, October 17 • 10:30am - 11:00am
Coroutine Representations and ABIs in LLVM

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Coroutines can serve as the basis for implementing many powerful language features. In this talk, we will discuss coroutines holistically and explore requirements and trade-offs at different stages in their translation. For this purpose, we will introduce several prospective language features in the Swift programming language and discuss how the differences between them affect how they should best be represented and optimized in both Swift's high-level SIL intermediate representation and in LLVM's lower-level IR. We will also contrast Swift's requirements with those imposed by the draft C++ coroutines TS and explain how the differences between languages lead to differences in the LLVM representation. Finally, we will discuss various final ABIs for lowering coroutines and talk about their capabilities and trade-offs.


Wednesday October 17, 2018 10:30am - 11:00am PDT
1 - General Session (Rm LL20ABC)