This name is more consistent with the convention used throughout the
runtime: use underscores to separate the preconditions of partial
functions from the rest of their names.
Swift SVN r23505
When there's static knowledge that no spare bits are to be set, it's
faster to use that knowledge. We need a proper builtin to let us drop
the reinterpretCasts.
Swift SVN r23465
Naturally, the fast path for things like Array<Int> has to be that no
masking is required to get at the buffer. Therefore, the state with no
spare bits set needs to be reserved for native objects. After the
change, an ObjC non-tagged pointer is stored with all spare bits set, and
native objects are stored with 0..<N bits set, where N is the number of
spare bits. ObjC tagged pointers are still stored verbatim.
Swift SVN r23430
Stop trafficking in optionals and using checked arithmetic; the
optimizer doesn't like that. Also drop a needless cast, fix up some
names, and accept a native 2nd argument. Only classes imported from
ObjC actually have non-native refcounting, and we don't really care
about enforcing that for the 2nd argument. It's just expected to be a
possibly-non-native class.
Swift SVN r23396
We're going to use it for Array internals. When we do, it should be
expected to cause a performance hit on arrays of value types until
rdar://18125016 is handled.
Swift SVN r22784