This is the mail archive of the
mailing list for the GCC project.
Re: [RFC][IPA-VRP] Early VRP Implementation
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Jeff Law <law at redhat dot com>,Andrew Pinski <pinskia at gmail dot com>,kugan <kugan dot vivekanandarajah at linaro dot org>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>,Jan Hubicka <hubicka at ucw dot cz>,Martin Jambor <mjambor at suse dot cz>
- Date: Tue, 19 Jul 2016 20:35:03 +0200
- Subject: Re: [RFC][IPA-VRP] Early VRP Implementation
- Authentication-results: sourceware.org; auth=none
- References: <firstname.lastname@example.org> <57886A71.email@example.com> <CA+=Sn1mYiB-xs=1H0rR_FxyUP0AaXS410C=+jyGu7MHDgsVOjg@mail.gmail.com> <firstname.lastname@example.org>
On July 19, 2016 6:19:23 PM GMT+02:00, Jeff Law <email@example.com> wrote:
>On 07/14/2016 10:52 PM, Andrew Pinski wrote:
>> On Thu, Jul 14, 2016 at 9:45 PM, kugan
>> <firstname.lastname@example.org> wrote:
>>> This patch adds a very simple early vrp implementation. This visits
>>> basic blocks in the dominance order and set the Value Ranges (VR)
>>> SSA_NAMEs in the scope. Use this VR to discover more VRs. Restore
>the old VR
>>> once the scope is exit.
>> Why separate out early VRP from tree-vrp? Just a little curious.
>I wouldn't mind seeing tree-vrp broken down a little -- it's quite
>and there's at least 4 distinct things going on in that file.
>1. ASSERT_EXPR handling.
>2. Arithmetic on ranges
>3. Propagation engine setup, callbacks, etc
>4. Range management
>There may be others, but it seems at least some of that ought to be
Possibly, but not necessarily because of the proposed pass.
I'd like to see lattices and lattice entries becoming classes and the arithmetic on it being templated on it.
I do have some preliminary patches implementing a aggressive on-drmand VRP for the use in niter analysis and the
Lattice is what makes sharing code difficult (it's a hash-map instead of an array there).