Re: [RFC][IPA-VRP] Early VRP Implementation

2016-09-19 Thread kugan
Hi Richard, Thanks for the review. On 19/09/16 22:56, Richard Biener wrote: On Sun, Sep 18, 2016 at 10:50 PM, kugan wrote: Hi Richard, On 16/09/16 20:21, Richard Biener wrote: On Fri, Sep 16, 2016 at 7:59 AM, kugan wrote: Hi Richard, Thanks for the review. On 14/09/16 22:04, Richard

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-09-19 Thread Richard Biener
On Sun, Sep 18, 2016 at 10:50 PM, kugan wrote: > Hi Richard, > > > > On 16/09/16 20:21, Richard Biener wrote: >> >> On Fri, Sep 16, 2016 at 7:59 AM, kugan >> wrote: >>> >>> Hi Richard, >>> >>> Thanks for the review. >>> >>> On 14/09/16 22:04, Richard Biener wrote: On Tue, Aug 23, 2

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-09-18 Thread kugan
Hi Richard, On 16/09/16 20:21, Richard Biener wrote: On Fri, Sep 16, 2016 at 7:59 AM, kugan wrote: Hi Richard, Thanks for the review. On 14/09/16 22:04, Richard Biener wrote: On Tue, Aug 23, 2016 at 4:11 AM, Kugan Vivekanandarajah wrote: Hi, On 19 August 2016 at 21:41, Richard Biener

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-09-16 Thread Richard Biener
On Fri, Sep 16, 2016 at 7:59 AM, kugan wrote: > Hi Richard, > > Thanks for the review. > > On 14/09/16 22:04, Richard Biener wrote: >> >> On Tue, Aug 23, 2016 at 4:11 AM, Kugan Vivekanandarajah >> wrote: >>> >>> Hi, >>> >>> On 19 August 2016 at 21:41, Richard Biener >>> wrote: On Tue,

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-09-16 Thread Richard Biener
On Thu, Sep 15, 2016 at 4:45 PM, Jeff Law wrote: > On 09/14/2016 11:55 PM, Richard Biener wrote: >> >> On September 14, 2016 11:36:16 PM GMT+02:00, Jan Hubicka >> wrote: + /* Visit PHI stmts and discover any new VRs possible. */ + gimple_stmt_iterator gsi; + for (gphi_iter

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-09-15 Thread kugan
Hi Richard, Thanks for the review. On 14/09/16 22:04, Richard Biener wrote: On Tue, Aug 23, 2016 at 4:11 AM, Kugan Vivekanandarajah wrote: Hi, On 19 August 2016 at 21:41, Richard Biener wrote: On Tue, Aug 16, 2016 at 9:45 AM, kugan wrote: Hi Richard, I am now having -ftree-evrp which

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-09-15 Thread Jeff Law
On 09/14/2016 11:55 PM, Richard Biener wrote: On September 14, 2016 11:36:16 PM GMT+02:00, Jan Hubicka wrote: + /* Visit PHI stmts and discover any new VRs possible. */ + gimple_stmt_iterator gsi; + for (gphi_iterator gpi = gsi_start_phis (bb); + !gsi_end_p (gpi); gsi_next (&gpi)) +

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-09-14 Thread Richard Biener
On September 14, 2016 11:36:16 PM GMT+02:00, Jan Hubicka wrote: >> + /* Visit PHI stmts and discover any new VRs possible. */ >> + gimple_stmt_iterator gsi; >> + for (gphi_iterator gpi = gsi_start_phis (bb); >> + !gsi_end_p (gpi); gsi_next (&gpi)) >> +{ >> + gphi *phi = gpi.phi

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-09-14 Thread Jan Hubicka
> + /* Visit PHI stmts and discover any new VRs possible. */ > + gimple_stmt_iterator gsi; > + for (gphi_iterator gpi = gsi_start_phis (bb); > + !gsi_end_p (gpi); gsi_next (&gpi)) > +{ > + gphi *phi = gpi.phi (); > + tree lhs = PHI_RESULT (phi); > + value_range vr_resul

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-09-14 Thread Richard Biener
On Tue, Aug 23, 2016 at 4:11 AM, Kugan Vivekanandarajah wrote: > Hi, > > On 19 August 2016 at 21:41, Richard Biener wrote: >> On Tue, Aug 16, 2016 at 9:45 AM, kugan >> wrote: >>> Hi Richard, >>> >>> On 12/08/16 20:43, Richard Biener wrote: On Wed, Aug 3, 2016 at 3:17 AM, kugan wr

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-09-02 Thread Kugan Vivekanandarajah
Ping ? Thanks, Kugan On 23 August 2016 at 12:11, Kugan Vivekanandarajah wrote: > Hi, > > On 19 August 2016 at 21:41, Richard Biener wrote: >> On Tue, Aug 16, 2016 at 9:45 AM, kugan >> wrote: >>> Hi Richard, >>> >>> On 12/08/16 20:43, Richard Biener wrote: On Wed, Aug 3, 2016 at 3:17

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-08-22 Thread Kugan Vivekanandarajah
Hi, On 19 August 2016 at 21:41, Richard Biener wrote: > On Tue, Aug 16, 2016 at 9:45 AM, kugan > wrote: >> Hi Richard, >> >> On 12/08/16 20:43, Richard Biener wrote: >>> >>> On Wed, Aug 3, 2016 at 3:17 AM, kugan >>> wrote: >> >> >> [SNIP] >> >>> >>> diff --git a/gcc/common.opt b/gcc/common.opt

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-08-19 Thread Richard Biener
On Tue, Aug 16, 2016 at 9:45 AM, kugan wrote: > Hi Richard, > > On 12/08/16 20:43, Richard Biener wrote: >> >> On Wed, Aug 3, 2016 at 3:17 AM, kugan >> wrote: > > > [SNIP] > >> >> diff --git a/gcc/common.opt b/gcc/common.opt >> index 8a292ed..7028cd4 100644 >> --- a/gcc/common.opt >> +++ b/gcc/co

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-08-16 Thread kugan
Hi Richard, On 12/08/16 20:43, Richard Biener wrote: On Wed, Aug 3, 2016 at 3:17 AM, kugan wrote: [SNIP] diff --git a/gcc/common.opt b/gcc/common.opt index 8a292ed..7028cd4 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -2482,6 +2482,10 @@ ftree-vrp Common Report Var(flag_tree_vrp) I

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-08-12 Thread Richard Biener
On Wed, Aug 3, 2016 at 3:17 AM, kugan wrote: > Hi Richard, > > Thanks for the review. > > On 28/07/16 21:34, Richard Biener wrote: >> >> On Thu, Jul 28, 2016 at 9:35 AM, kugan >> wrote: >>> >>> Hi Richard, >>> >>> Thanks for the review. It seems that in your pop_value_range yo

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-08-02 Thread kugan
Hi Richard, Thanks for the review. On 28/07/16 21:34, Richard Biener wrote: On Thu, Jul 28, 2016 at 9:35 AM, kugan wrote: Hi Richard, Thanks for the review. It seems that in your pop_value_range you assume you only pop one range per BB - while that's likely true at the moment it will be a

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-07-28 Thread Richard Biener
On Thu, Jul 28, 2016 at 9:35 AM, kugan wrote: > Hi Richard, > > Thanks for the review. >> >> >> It seems that in your pop_value_range you assume you only pop one >> range per BB - while that's likely true at the moment it will be a >> limitation >> in the future. You want to pop ranges until you

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-07-28 Thread kugan
Hi Richard, Thanks for the review. It seems that in your pop_value_range you assume you only pop one range per BB - while that's likely true at the moment it will be a limitation in the future. You want to pop ranges until you hit the NULL marker in after_dom_children and unconditionally push

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-07-26 Thread Richard Biener
On Tue, Jul 26, 2016 at 2:27 PM, kugan wrote: > > > Hi Riachard, > > Thanks for the review. Here is an updated patch with comments below. > >> +/* Restore/Pop all the old VRs maintained in the cond_stack. */ >> + >> +void evrp_dom_walker::finalize_dom_walker () >> +{ >> + while (!cond_stack.is_e

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-07-26 Thread kugan
Hi Riachard, Thanks for the review. Here is an updated patch with comments below. +/* Restore/Pop all the old VRs maintained in the cond_stack. */ + +void evrp_dom_walker::finalize_dom_walker () +{ + while (!cond_stack.is_empty ()) +{ + tree var = cond_stack.last ().second; +

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-07-25 Thread Richard Biener
On Fri, Jul 22, 2016 at 2:10 PM, kugan wrote: > Hi Richard, > > Thanks for the review. > > On 18/07/16 21:51, Richard Biener wrote: >> >> On Fri, Jul 15, 2016 at 9:33 AM, kugan >> wrote: >>> >>> Hi Andrew, >>> >>> On 15/07/16 17:28, Andrew Pinski wrote: On Fri, Jul 15, 2016 at 12:0

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-07-22 Thread kugan
Hi Richard, Thanks for the review. On 18/07/16 21:51, Richard Biener wrote: On Fri, Jul 15, 2016 at 9:33 AM, kugan wrote: Hi Andrew, On 15/07/16 17:28, Andrew Pinski wrote: On Fri, Jul 15, 2016 at 12:08 AM, kugan wrote: Hi Andrew, Why separate out early VRP from tree-vrp? Just a litt

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-07-19 Thread Jeff Law
On 07/19/2016 12:35 PM, Richard Biener wrote: I wouldn't mind seeing tree-vrp broken down a little -- it's quite large 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

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-07-19 Thread Richard Biener
On July 19, 2016 6:19:23 PM GMT+02:00, Jeff Law wrote: >On 07/14/2016 10:52 PM, Andrew Pinski wrote: >> On Thu, Jul 14, 2016 at 9:45 PM, kugan >> wrote: >>> >>> Hi, >>> >>> >>> >>> This patch adds a very simple early vrp implementation. This visits >the >>> basic blocks in the dominance order and

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-07-19 Thread Jeff Law
On 07/14/2016 10:52 PM, Andrew Pinski wrote: On Thu, Jul 14, 2016 at 9:45 PM, kugan wrote: Hi, This patch adds a very simple early vrp implementation. This visits the basic blocks in the dominance order and set the Value Ranges (VR) for SSA_NAMEs in the scope. Use this VR to discover more

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-07-18 Thread Richard Biener
On Fri, Jul 15, 2016 at 9:33 AM, kugan wrote: > Hi Andrew, > > On 15/07/16 17:28, Andrew Pinski wrote: >> >> On Fri, Jul 15, 2016 at 12:08 AM, kugan >> wrote: >>> >>> Hi Andrew, >>> Why separate out early VRP from tree-vrp? Just a little curious. >>> >>> >>> >>> It is based on the discussio

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-07-15 Thread kugan
Hi Andrew, On 15/07/16 17:28, Andrew Pinski wrote: On Fri, Jul 15, 2016 at 12:08 AM, kugan wrote: Hi Andrew, Why separate out early VRP from tree-vrp? Just a little curious. It is based on the discussion in https://gcc.gnu.org/ml/gcc/2016-01/msg00069.html. In summary, conclusion (based o

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-07-15 Thread Andrew Pinski
On Fri, Jul 15, 2016 at 12:08 AM, kugan wrote: > Hi Andrew, > >> Why separate out early VRP from tree-vrp? Just a little curious. > > > It is based on the discussion in > https://gcc.gnu.org/ml/gcc/2016-01/msg00069.html. > In summary, conclusion (based on my understanding) was to implement a > si

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-07-15 Thread kugan
Hi Andrew, Why separate out early VRP from tree-vrp? Just a little curious. It is based on the discussion in https://gcc.gnu.org/ml/gcc/2016-01/msg00069.html. In summary, conclusion (based on my understanding) was to implement a simplified VRP algorithm that doesn't require ASSERT_EXPR inse

Re: [RFC][IPA-VRP] Early VRP Implementation

2016-07-14 Thread Andrew Pinski
On Thu, Jul 14, 2016 at 9:45 PM, kugan wrote: > > Hi, > > > > This patch adds a very simple early vrp implementation. This visits the > basic blocks in the dominance order and set the Value Ranges (VR) for > > SSA_NAMEs in the scope. Use this VR to discover more VRs. Restore the old VR > once the

[RFC][IPA-VRP] Early VRP Implementation

2016-07-14 Thread kugan
Hi, This patch adds a very simple early vrp implementation. This visits the basic blocks in the dominance order and set the Value Ranges (VR) for SSA_NAMEs in the scope. Use this VR to discover more VRs. Restore the old VR once the scope is exit. Thanks, Kugan gcc/ChangeLog: 2