Home | History | Annotate | Download | only in gcc

Lines Matching defs:s_info

1263 /* Mark byte POS bytes from the beginning of store S_INFO as unneeded.  */
1266 set_position_unneeded (store_info *s_info, int pos)
1268 if (__builtin_expect (s_info->is_large, false))
1270 if (bitmap_set_bit (s_info->positions_needed.large.bmap, pos))
1271 s_info->positions_needed.large.count++;
1274 s_info->positions_needed.small_bitmask
1278 /* Mark the whole store S_INFO as unneeded. */
1281 set_all_positions_unneeded (store_info *s_info)
1283 if (__builtin_expect (s_info->is_large, false))
1286 if (s_info->width.is_constant (&width))
1288 bitmap_set_range (s_info->positions_needed.large.bmap, 0, width);
1289 s_info->positions_needed.large.count = width;
1293 gcc_checking_assert (!s_info->positions_needed.large.bmap);
1294 s_info->positions_needed.large.count = 1;
1298 s_info->positions_needed.small_bitmask = HOST_WIDE_INT_0U;
1301 /* Return TRUE if any bytes from S_INFO store are needed. */
1304 any_positions_needed_p (store_info *s_info)
1306 if (__builtin_expect (s_info->is_large, false))
1309 if (s_info->width.is_constant (&width))
1311 gcc_checking_assert (s_info->positions_needed.large.bmap);
1312 return s_info->positions_needed.large.count < width;
1316 gcc_checking_assert (!s_info->positions_needed.large.bmap);
1317 return s_info->positions_needed.large.count == 0;
1321 return (s_info->positions_needed.small_bitmask != HOST_WIDE_INT_0U);
1324 /* Return TRUE if all bytes START through START+WIDTH-1 from S_INFO
1328 all_positions_needed_p (store_info *s_info, poly_int64 start,
1331 gcc_assert (s_info->rhs);
1332 if (!s_info->width.is_constant ())
1334 gcc_assert (s_info->is_large
1335 && !s_info->positions_needed.large.bmap);
1336 return s_info->positions_needed.large.count == 0;
1347 if (__builtin_expect (s_info->is_large, false))
1350 if (bitmap_bit_p (s_info->positions_needed.large.bmap, i))
1362 return (s_info->positions_needed.small_bitmask & mask) == mask;
1554 class store_info *s_info = ptr->store_rec;
1560 while (!s_info->is_set)
1561 s_info = s_info->next;
1563 if (s_info->group_id == group_id && s_info->cse_base == base)
1569 INSN_UID (ptr->insn), s_info->group_id);
1570 print_range (dump_file, s_info->offset, s_info->width);
1577 if (s_info->const_rhs
1580 s_info->offset, s_info->width)
1581 && all_positions_needed_p (s_info, offset - s_info->offset,
1585 && mems_same_for_tbaa_p (s_info->mem, mem))
1589 if (GET_MODE (s_info->mem) == BLKmode
1590 && s_info->const_rhs == const_rhs)
1593 else if (s_info->const_rhs == const0_rtx
1600 val = get_stored_val (s_info, GET_MODE (mem), offset, width,
1612 if (known_subrange_p (s_info->offset, s_info->width, offset, width))
1613 /* The new store touches every byte that S_INFO does. */
1614 set_all_positions_unneeded (s_info);
1615 else if ((offset - s_info->offset).is_constant (&begin_unneeded)
1616 && s_info->width.is_constant (&const_s_width)
1623 set_position_unneeded (s_info, i);
1627 /* We don't know which parts of S_INFO are needed and
1629 s_info->rhs = NULL;
1630 s_info->const_rhs = NULL;
1633 else if (s_info->rhs)
1638 if (canon_output_dependence (s_info->mem, true,
1642 s_info->rhs = NULL;
1643 s_info->const_rhs = NULL;
1649 if (any_positions_needed_p (s_info))
2843 store_info *s_info = ptr->store_rec;
2844 while (s_info && !s_info->is_set)
2845 s_info = s_info->next;
2846 if (s_info
2847 && s_info->redundant_reason
2848 && s_info->redundant_reason->insn
2857 INSN_UID (s_info->redundant_reason->insn));
2864 store_info *s_info;
2867 for (s_info = ptr->store_rec; s_info; s_info = s_info->next)
2868 if (s_info->is_large)
2870 BITMAP_FREE (s_info->positions_needed.large.bmap);
2871 s_info->is_large = false;
3633 store_info *s_info = insn_info->store_rec;
3635 while (s_info && !s_info->is_set)
3636 s_info = s_info->next;
3637 if (s_info
3638 && s_info->redundant_reason
3639 && s_info->redundant_reason->insn
3640 && INSN_P (s_info->redundant_reason->insn))
3642 rtx_insn *rinsn = s_info->redundant_reason->insn;