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