The changes here introduce VPConstant specialization for VPValues. When constructing VPlan for a candidate loop in the native path, we now create a VPConstant when the corresponding underlying value is a constant.
This change allows us to share the same set of VPConstants in different VPlans constructed for a candidate loop. The sub-class can also be used to infer a VPValue uniformity in VPlan based divergence analysis. These changes will be posted in subsequent follow up patches.
clang-tidy: error: unknown type name 'VPBlockBase' [clang-diagnostic-error]
not useful