Libswift is enabled

With libswift it is possible to add SIL optimization passes written in Swift. It allows to gradually migrate the SIL optimizer from C++ to Swift.

For details see libswift/README.md and the PR, which introduced the initial version.

libswift is now enabled in the CI, which means it's now possible to contribute to libswift.

If you have any questions, just let me know.

62 Likes

Wow, absolutely incredible!

Congratulations on shipping this, I'm sure the contribution rate and productivity on writing optimizations is going to increase dramatically now.

This is fascinating - would you consider having these optimization passes done as loadable modules?

Say something like swiftc -load-sil-pass=myPass.so

This would allow a pass to inspect the Swift code, and potentially extract interesting information out of it, or generate code out of it.

The first scenario would give us enough information to navigate the public API, like reflection, but without having to extend Swift or the Swift libraries.

The second scenario would be to generate some code on demand, that could complement the existing code. C# has a capability to do this:

Miguel

4 Likes