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