This refactoring is motivated by target change https://reviews.llvm.org/D71047. See parent/child dependencies for full list.
Currently 'createVectorizedLoopSkeleton' keeps track of new generated blocks using local variables and reassigns them to corresponding class fields at the end. That makes a bit harder to understand code structure. This patch uses class fields directly and extra locals got removed.
Should the "local" Bypass also be removed/replaced, in this and following emit*() methods?
(May have been better if these emit*() methods originally returned the new preheader they create, so their callers would do LoopVectorPreHeader = emit*(Lp, LoopVectorPreHeader), emphasizing the chaining.)