Commits

Mark Lacey committed ffa4e22da24
Another improvement to 'class func' devirtualization. Directly devirtualize cases where we can prove the method being invoked is 'final'. Previously we were able to do direct devirtualization (as opposed to speculative) only when we could prove we knew the dynamic type (e.g. through seeing a metatype instruction). The code removed from isKnownFinal here was a vestige of previous mechanical refactoring which made apparent the fact that this case was not previously being handled. There were some cases where the speculative devirtualzation code was also able to prove there was only one alternative, but we really want cases like this handled through direct devirtualization. It's possible that the speculative devirtualization code that was catching some cases like this is no longer useful and could be removed. Swift SVN r26221