On Fri, Dec 04, 2015 at 09:15:25AM +0100, Richard Biener wrote:
> > +    modified one, up to and including last_bb, to be executed even if
> > +    they would not be in the original program.  If the value ranges of
> > +    assignment lhs' in those bbs were dependent on the conditions
> > +    guarding those basic blocks which now can change, the VRs might
> > +    be incorrect.  As no_side_effect_bb should ensure those SSA_NAMEs
> > +    are only used within the same bb, it should be not a big deal if
> > +    we just reset all the VRs in those bbs.  See PR68671.  */
> > +      for (bb = last_bb, idx = 0; idx < max_idx; bb = single_pred (bb), 
> > idx++)
> > +   {
> > +     gimple_stmt_iterator gsi;
> > +     for (gsi = gsi_last_bb (bb); !gsi_end_p (gsi); gsi_prev (&gsi))
> > +       {
> > +         gimple *g = gsi_stmt (gsi);
> > +         if (!is_gimple_assign (g))
> > +           continue;
> > +         tree lhs = gimple_assign_lhs (g);
> > +         if (TREE_CODE (lhs) != SSA_NAME)
> > +           continue;
> > +         if (INTEGRAL_TYPE_P (TREE_TYPE (lhs)))
> > +           SSA_NAME_RANGE_INFO (lhs) = NULL;
> 
> Please use
> 
>      reset_flow_sensitive_info (lhs);

So maybe better then replace the whole inner loop with
        reset_flow_sensitive_info_in_bb (bb);
?

        Jakub

Reply via email to