}
else if (tclass == tcc_type)
{
- if (TYPE_NAME (node))
+ if ((flags & TDF_GIMPLE) && node == sizetype)
+ pp_string (pp, "__SIZETYPE__");
+ else if (TYPE_NAME (node))
{
if (TREE_CODE (TYPE_NAME (node)) == IDENTIFIER_NODE)
pp_tree_identifier (pp, TYPE_NAME (node));
}
else if (TREE_CODE (node) == VECTOR_TYPE)
{
- pp_string (pp, "vector");
- pp_left_paren (pp);
- pp_wide_integer (pp, TYPE_VECTOR_SUBPARTS (node));
- pp_string (pp, ") ");
- dump_generic_node (pp, TREE_TYPE (node), spc, flags, false);
+ if (flags & TDF_GIMPLE)
+ {
+ dump_generic_node (pp, TREE_TYPE (node), spc, flags, false);
+ pp_string (pp, " [[gnu::vector_size(");
+ pp_wide_integer
+ (pp, tree_to_poly_uint64 (TYPE_SIZE_UNIT (node)));
+ pp_string (pp, ")]]");
+ }
+ else
+ {
+ pp_string (pp, "vector");
+ pp_left_paren (pp);
+ pp_wide_integer (pp, TYPE_VECTOR_SUBPARTS (node));
+ pp_string (pp, ") ");
+ dump_generic_node (pp, TREE_TYPE (node), spc, flags, false);
+ }
}
else if (TREE_CODE (node) == INTEGER_TYPE)
{
&& !valid_mem_ref_p (TYPE_MODE (type), TYPE_ADDR_SPACE (type), addr))
return NULL_TREE;
- if (addr->step && integer_onep (addr->step))
- addr->step = NULL_TREE;
-
if (addr->offset)
addr->offset = fold_convert (alias_ptr_type, addr->offset);
else