Lines Matching refs:shape
52 /* Used to cache the results of simplifiable_subregs. SHAPE is the input
59 subreg_shape shape;
1171 h.add_hwi (value->shape.unique_id ());
1179 return value->shape == *compare;
1183 : shape (shape_in)
1189 described by SHAPE. */
1192 simplifiable_subregs (const subreg_shape &shape)
1198 h.add_hwi (shape.unique_id ());
1201 ->find_slot_with_hash (&shape, h.end (), INSERT));
1205 simplifiable_subreg *info = new simplifiable_subreg (shape);
1207 if (targetm.hard_regno_mode_ok (i, shape.inner_mode)
1208 && simplify_subreg_regno (i, shape.inner_mode, shape.offset,
1209 shape.outer_mode) >= 0)
1242 subreg_shape shape (shape_of_subreg (subreg));
1245 /* The number of independently-accessible SHAPE.outer_mode values
1246 in SHAPE.inner_mode is GET_MODE_SIZE (SHAPE.inner_mode) / SIZE.
1252 SHAPE.inner_mode value in an adjacent SIZE-byte chunk can be formed.
1263 poly_uint64 size = ordered_max (REGMODE_NATURAL_SIZE (shape.inner_mode),
1264 GET_MODE_SIZE (shape.outer_mode));
1265 gcc_checking_assert (known_lt (size, GET_MODE_SIZE (shape.inner_mode)));
1266 if (known_ge (shape.offset, size))
1267 shape.offset -= size;
1269 shape.offset += size;
1273 *valid_mode_changes[regno] &= simplifiable_subregs (shape);
1278 *valid_mode_changes[regno] = simplifiable_subregs (shape);