Commits

John McCall committed f40e9ef0aec
Rewrite switch dispatch emission. Specialization now recurses on only that prefix of the current matrix which shares a specialization form (essentially, a pattern kind) with the head row. This is inferior to the previous algorithm in a number of ways: we may require more switches to perform a single dispatch, and we may introduce more redundant variables in the leaves. However, it also means that we will have fully specialized a row along exactly one path in the decision tree, which makes it much easier to work with dispatches that introduce new cleanups. This change also changes switch-dispatch to use the new dynamic-cast instructions. Incidentally fixes rdar://16401831. Swift SVN r19336