Commits

Nadav Rotem committed 18b826e6cf1
When we devirtualize apply instructions that access protocols we look for the init_existential instruction. However, in some cases the protocol is initialized using copy_addr. This patch adds support for analyzing the copy_addr in search for the init_existential instruction. The same rules must apply: both instructions must not be captured, etc. With this change we devirtualize 287 calls in stdlib. We are left with only 26 project_existential instructions in stdlib. I don't have a testcase outside the stdlib right now. Swift SVN r11897