Commits

Mark Lacey committed 86a434ab4d1
Use dominance to remove redundant conditional branching. This updates the CFG optimization pass to use the dominator tree to eliminate redundant switch_enum instructions. It can be enhanced at a later time to handle other conditional branching instructions. Because jump threading can expose opportunitites for this, we run a pass of CFG simplifications prior to running this, and since this exposes more opportunities for those CFG simplifications, we run them again after. Despite this, there is no measurable compile-time impact building the stdlib with a release build of the compiler. This in concert with the two commits that precede it reduce the runtime of the string sort benchmark by 9%, RC4 by around 2-3%, and now the generated SIL for optionals look slightly more sane. Swift SVN r16510