Commits

Arnold Schwaighofer committed 83cf4f34051
Add a pass to specialize array code based on array semantic array.props calls We know that a native swift array that does not need an element type check is not going to change to an nsarray, or to an array that needs an element type check. This allows us to specialize array code. The array semantic calls 'array.props.isCocoa/needsElementTypeCheck' returns said array properties for a read. func f(a : A[AClass]) { for i in 0..a.count { let b = a.props.isCocoa() .. += _getElement(a, i, b) } } ==> func f(a : A[AClass]) { let b2 = a.props.isCocoa() if (!b2) { for i in 0..a.count { .. += _getElement(a, i, false) } } else { for i in 0..a.count { let b = a.props.isCocoa .. += _getElement(a, i, b) } } } The stdlib will be changed to use array.props calls in a future commit. rdar://17955309 Swift SVN r23689