Commits

Arnold Schwaighofer committed 1ee1b40dae6
LLVMARCOpts: We can move retains across an objc_retain. Teach LLVMARCOpts about swift_unknownRetain and that we can move retains accross objc_retains. This recovers the performance we lost (see rdar below) due to making retain sinking more aggressive. ClassArrayGetter```````,``581.00````,``488.00````,``92.00```,````````18.9% Rectangles`````````````,``618.00````,``552.00````,``71.00```,````````13.0% rdar://18337069 Swift SVN r21999