Lines Matching refs:aref
200 access_ref aref;
202 if (compute_objsize_r (src, stmt, false, 1, &aref, snlim, qry)
203 && aref.sizrng[1] < offrng[1])
204 offrng[1] = aref.sizrng[1];
234 access_ref aref;
236 if (compute_objsize_r (src, stmt, false, 1, &aref, snlim, qry))
237 offrng[1] = aref.sizrng[1] - 1;
259 access_ref aref;
261 if (compute_objsize_r (src, stmt, false, 1, &aref, snlim, qry)
262 && aref.sizrng[1] < offrng[1])
263 offrng[1] = aref.sizrng[1];
637 access_ref aref;
638 if (!compute_objsize_r (arg, stmt, false, ostype, &aref, snlim, &qry)
639 || aref.sizrng[0] < 0)
654 aref.get_ref (all_refs, &dummy_ref, ostype, &snlim, &qry);
658 qry.put_ref (arg, aref, ostype);
661 all_refs->safe_push (aref);
663 aref.deref += deref;
665 bool merged_parmarray = aref.parmarray;
673 /* If *THIS doesn't contain a meaningful result yet set it to AREF
676 *this = aref;
681 const bool arg_known_size = (aref.sizrng[0] != 0
682 || aref.sizrng[1] != maxobjsize);
684 sizrng[0] = aref.sizrng[0];
696 if (known_size && aref.sizrng[0] < minsize)
697 minsize = aref.sizrng[0];
699 /* Extend the size and offset of *THIS to account for AREF. The result
703 if (sizrng[1] < aref.sizrng[1])
707 *this = aref;
711 orng[0] = aref.offrng[0];
712 orng[1] = aref.offrng[1];
722 if (!aref.base0)
764 access_ref aref;
766 aref.merge_ref (all_refs, arg1, def_stmt, ostype, false,
770 aref.merge_ref (all_refs, arg2, def_stmt, ostype, false,
776 *pref = aref;
780 return aref.ref;
1021 const access_ref &aref = *this;
1022 if (!aref.ref)
1066 if (wi::fits_shwi_p (aref.offrng[0]))
1067 minoff = aref.offrng[0].to_shwi ();
1069 minoff = aref.offrng[0] < 0 ? diff_min : diff_max;
1071 if (wi::fits_shwi_p (aref.offrng[1]))
1072 maxoff = aref.offrng[1].to_shwi ();
1082 if (wi::fits_shwi_p (aref.sizrng[0])
1083 && wi::fits_shwi_p (aref.sizrng[1]))
1085 minsize = aref.sizrng[0].to_shwi ();
1086 maxsize = aref.sizrng[1].to_shwi ();
1099 && (maxoff == 0 || aref.sizrng[1] <= maxoff))
1578 const access_ref &aref = var_cache.access_refs[ari];
1579 if (!aref.ref)
1609 const access_ref &aref = var_cache.access_refs[ari];
1610 if (!aref.ref)
1628 aref.dump (dump_file);
1653 access_ref aref[2] = { *pref, *pref };
1655 if (!compute_objsize_r (arg1, stmt, false, ostype, &aref[0], snlim, qry))
1657 aref[0].base0 = false;
1658 aref[0].offrng[0] = aref[0].offrng[1] = 0;
1659 aref[0].add_max_offset ();
1660 aref[0].set_max_size_range ();
1664 if (!compute_objsize_r (arg2, stmt, false, ostype, &aref[1], snlim, qry))
1666 aref[1].base0 = false;
1667 aref[1].offrng[0] = aref[1].offrng[1] = 0;
1668 aref[1].add_max_offset ();
1669 aref[1].set_max_size_range ();
1672 if (!aref[0].ref && !aref[1].ref)
1677 if (aref[0].ref && aref[0].base0)
1679 if (aref[1].ref && aref[1].base0)
1689 if (aref[i0].size_remaining () < aref[i1].size_remaining ())
1690 *pref = aref[i1];
1692 *pref = aref[i0];
1694 if (aref[i0].ref != aref[i1].ref)
1705 *pref = aref[0];
1709 *pref = aref
1714 if ((code == MAX_EXPR && aref[i1].offrng[1] < aref[i0].offrng[0])
1715 || (code == MIN_EXPR && aref[i0].offrng[0] < aref[i1].offrng[1]))
1717 pref->offrng[0] = aref[i0].offrng[0];
1718 pref->offrng[1] = aref[i0].offrng[1];
1768 AREF. ADDR is true if PTR is the operand of ADDR_EXPR. Return true
1772 handle_array_ref (tree aref, gimple *stmt, bool addr, int ostype,
1776 gcc_assert (TREE_CODE (aref) == ARRAY_REF);
1778 tree arefop = TREE_OPERAND (aref, 0);
1789 tree off = pref->eval (TREE_OPERAND (aref, 1));
1800 tree lowbnd = array_ref_low_bound (aref);
1810 tree eltype = TREE_TYPE (aref);