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