This is a first step towards generating an initial VPlan up-front using
VPInstructions. No decisions are taken at this point. Starting from this
VPlan, we transform VPInstructions into various recipes if possible,
e.g. by widening them. For now, this still exclusively uses the
underlying instructions and the existing cost model.
Breaking things up further, i.e. lower to specialized recipes without
the legacy cost model, is part of the next steps.
This patch also moves the code to weed out dead instruction into a
transform on the initial VPlan. Similarly, sinking instructions can also
be done up-front, before we widen the VPInstructions. This is also a
follow-up, together with moving more of the existing small patch-ups we
do after generating the VPlans.