I just got crazy idea, since we really don't like CONSTRUCTOR that much
and we already know the lengths of Vectors, we can have a VECTOR_EXPR
which we could then use instead of CONSTRUCTORs.
This would also save some memory as then we don't need a real
VEC(constructor_elt) but more like what TREE_VEC is.
So we have:
struct tree_vector GTY(())
{
struct tree_common common;
tree ((length ("TYPE_VECTOR_SUBPARTS (TREE_TYPE ((tree)&%h))")))
elements[1];
};
This will be the structure for both VECTOR_CST and VECTOR_EXPR.
What do people think about this idea?
Thanks,
Andrew Pinski