Lines Matching refs:aref
201 access_ref aref;
203 if (compute_objsize_r (src, stmt, false, 1, &aref, snlim, qry)
204 && aref.sizrng[1] < offrng[1])
205 offrng[1] = aref.sizrng[1];
235 access_ref aref;
237 if (compute_objsize_r (src, stmt, false, 1, &aref, snlim, qry))
238 offrng[1] = aref.sizrng[1] - 1;
260 access_ref aref;
262 if (compute_objsize_r (src, stmt, false, 1, &aref, snlim, qry)
263 && aref.sizrng[1] < offrng[1])
264 offrng[1] = aref.sizrng[1];
639 access_ref aref;
640 if (!compute_objsize_r (arg, stmt, false, ostype, &aref, snlim, &qry)
641 || aref.sizrng[0] < 0)
656 aref.get_ref (all_refs, &dummy_ref, ostype, &snlim, &qry);
660 qry.put_ref (arg, aref, ostype);
663 all_refs->safe_push (aref);
665 aref.deref += deref;
667 bool merged_parmarray = aref.parmarray;
675 /* If *THIS doesn't contain a meaningful result yet set it to AREF
678 *this = aref;
683 const bool arg_known_size = (aref.sizrng[0] != 0
684 || aref.sizrng[1] != maxobjsize);
686 sizrng[0] = aref.sizrng[0];
698 if (known_size && aref.sizrng[0] < minsize)
699 minsize = aref.sizrng[0];
701 /* Extend the size and offset of *THIS to account for AREF. The result
705 if (sizrng[1] < aref.sizrng[1])
709 *this = aref;
713 orng[0] = aref.offrng[0];
714 orng[1] = aref.offrng[1];
724 if (!aref.base0)
766 access_ref aref;
768 aref.merge_ref (all_refs, arg1, def_stmt, ostype, false,
772 aref.merge_ref (all_refs, arg2, def_stmt, ostype, false,
778 *pref = aref;
782 return aref.ref;
1023 const access_ref &aref = *this;
1024 if (!aref.ref)
1068 if (wi::fits_shwi_p (aref.offrng[0]))
1069 minoff = aref.offrng[0].to_shwi ();
1071 minoff = aref.offrng[0] < 0 ? diff_min : diff_max;
1073 if (wi::fits_shwi_p (aref.offrng[1]))
1074 maxoff = aref.offrng[1].to_shwi ();
1084 if (wi::fits_shwi_p (aref.sizrng[0])
1085 && wi::fits_shwi_p (aref.sizrng[1]))
1087 minsize = aref.sizrng[0].to_shwi ();
1088 maxsize = aref.sizrng[1].to_shwi ();
1101 && (maxoff == 0 || aref.sizrng[1] <= maxoff))
1589 const access_ref &aref = var_cache.access_refs[ari];
1590 if (!aref.ref)
1620 const access_ref &aref = var_cache.access_refs[ari];
1621 if (!aref.ref)
1639 aref.dump (dump_file);
1664 access_ref aref[2] = { *pref, *pref };
1666 if (!compute_objsize_r (arg1, stmt, false, ostype, &aref[0], snlim, qry))
1668 aref[0].base0 = false;
1669 aref[0].offrng[0] = aref[0].offrng[1] = 0;
1670 aref[0].add_max_offset ();
1671 aref[0].set_max_size_range ();
1675 if (!compute_objsize_r (arg2, stmt, false, ostype, &aref[1], snlim, qry))
1677 aref[1].base0 = false;
1678 aref[1].offrng[0] = aref[1].offrng[1] = 0;
1679 aref[1].add_max_offset ();
1680 aref[1].set_max_size_range ();
1683 if (!aref[0].ref && !aref[1].ref)
1688 if (aref[0].ref && aref[0].base0)
1690 if (aref[1].ref && aref[1].base0)
1700 if (aref[i0].size_remaining () < aref[i1].size_remaining ())
1701 *pref = aref[i1];
1703 *pref = aref[i0];
1705 if (aref[i0].ref != aref[i1].ref)
1716 *pref = aref[0];
1720 *pref = aref[1];
1725 if ((code == MAX_EXPR && aref[i1].offrng[1] < aref[i0].offrng[0])
1726 || (code == MIN_EXPR && aref[i0].offrng[0] < aref[i1].offrng[1]))
1728 pref->offrng[0] = aref[i0].offrng[0];
1729 pref->offrng[1] = aref[i0].offrng[1];
1779 AREF. ADDR is true if PTR is the operand of ADDR_EXPR. Return true
1783 handle_array_ref (tree aref, gimple *stmt, bool addr, int ostype,
1787 gcc_assert (TREE_CODE (aref) == ARRAY_REF);
1789 tree arefop = TREE_OPERAND (aref, 0);
1800 tree off = pref->eval (TREE_OPERAND (aref, 1));
1810 tree lowbnd = array_ref_low_bound (aref);
1826 tree eltype = TREE_TYPE (aref);