This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Aliasing: look through pointer's def stmt
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Marc Glisse <marc dot glisse at inria dot fr>
- Cc: Jeff Law <law at redhat dot com>,GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 04 Nov 2013 21:25:11 +0100
- Subject: Re: Aliasing: look through pointer's def stmt
- Authentication-results: sourceware.org; auth=none
- References: <alpine dot DEB dot 2 dot 02 dot 1310250707430 dot 14734 at stedding dot saclay dot inria dot fr> <526A0269 dot 8030407 at redhat dot com> <alpine dot DEB dot 2 dot 10 dot 1310250809590 dot 4165 at laptop-mg dot saclay dot inria dot fr> <CAFiYyc27=sN1itn+N09rpmm8tWGt-Khu7oASLd0ODsdZh=ofzw at mail dot gmail dot com> <CAFiYyc2EtayY0tiW1pz4t-zf0uVC24UcF5s7yaUrY3f7_jxoVg at mail dot gmail dot com> <alpine dot DEB dot 2 dot 10 dot 1310251123350 dot 8620 at laptop-mg dot saclay dot inria dot fr> <CAFiYyc2WmH4WNZ7h8-8iC_6mSO50PdLNLxNzQOYZrYEvn1oQkQ at mail dot gmail dot com> <alpine dot DEB dot 2 dot 02 dot 1310251852480 dot 9786 at stedding dot saclay dot inria dot fr> <alpine dot DEB dot 2 dot 10 dot 1310261838280 dot 15626 at laptop-mg dot saclay dot inria dot fr> <CAFiYyc3dZr1DrQV7X+6kN=eFFx7CKNhbHOdBgqt_bWLp0xe07w at mail dot gmail dot com> <alpine dot DEB dot 2 dot 02 dot 1310300102500 dot 21750 at stedding dot saclay dot inria dot fr> <CAFiYyc0=UP2RTdfoR9pDTSo4RnaLnXOQS8O0QP51gfKz4UmnvQ at mail dot gmail dot com> <alpine dot DEB dot 2 dot 02 dot 1310311752160 dot 5593 at stedding dot saclay dot inria dot fr> <CAFiYyc0NtPE8gd392K0ji8LHOWzBfcMoNgCGyzkTvAGYx6vHwg at mail dot gmail dot com> <alpine dot DEB dot 2 dot 10 dot 1311041715060 dot 7063 at stedding dot saclay dot inria dot fr>
Marc Glisse <marc.glisse@inria.fr> wrote:
>On Mon, 4 Nov 2013, Richard Biener wrote:
>
>> Well, host_integer_p (, 0) looks correct to me. But ...
>
>Ok, I'll put it back.
>
>>> Index: gcc/tree-ssa-alias.h
>>> ===================================================================
>>> --- gcc/tree-ssa-alias.h (revision 204267)
>>> +++ gcc/tree-ssa-alias.h (working copy)
>>> @@ -139,30 +139,30 @@ extern void pt_solution_set_var (struct
>>>
>>> extern void dump_pta_stats (FILE *);
>>>
>>> extern GTY(()) struct pt_solution ipa_escaped_pt;
>>>
>>> /* Return true, if the two ranges [POS1, SIZE1] and [POS2, SIZE2]
>>> overlap. SIZE1 and/or SIZE2 can be (unsigned)-1 in which case
>the
>>> range is open-ended. Otherwise return false. */
>>>
>>> static inline bool
>>> -ranges_overlap_p (unsigned HOST_WIDE_INT pos1,
>>> - unsigned HOST_WIDE_INT size1,
>>> - unsigned HOST_WIDE_INT pos2,
>>> - unsigned HOST_WIDE_INT size2)
>>> +ranges_overlap_p (HOST_WIDE_INT pos1,
>>> + HOST_WIDE_INT size1,
>>> + HOST_WIDE_INT pos2,
>>> + HOST_WIDE_INT size2)
>>
>> I think size[12] should still be unsigned (we don't allow negative
>> sizes but only the special value -1U which we special-case only to
>> avoid pos + size to wrap)
>
>But all we do with size[12] is compare it to -1 and perform arithmetic
>with pos[12]. At least for the second one, we need to cast size to a
>signed type so the comparisons make sense (unless we decide to use a
>double_int there). So I thought I would do the cast in the argument.
>Otherwise, I'll start the function with:
>HOST_WIDE_INT ssize1 = (HOST_WIDE_INT)size1;
>and replace size1 with ssize1 through the function.
>
>Is the reason of keeping size[12] unsigned for documentation? Or am I
>missing a reason why I may be breaking things?
It is mostly documentation indeed.
Richard.