On 09/14/2016 11:55 PM, Richard Biener wrote:
On September 14, 2016 11:36:16 PM GMT+02:00, Jan Hubicka <hubi...@ucw.cz> 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 ();
+ tree lhs = PHI_RESULT (phi);
+ value_range vr_result = VR_INITIALIZER;
+ if (! has_unvisived_preds
&& stmt_interesting_for_vrp (phi)
+ && stmt_visit_phi_node_in_dom_p (phi))
+ extract_range_from_phi_node (phi, &vr_result, true);
+ else
+ set_value_range_to_varying (&vr_result);
+ update_value_range (lhs, &vr_result);
+ }
due to a bug in IRA you need to make sure to un-set BB_VISITED after
early-vrp is finished again.
How IRA bugs affects early passes?
IRA bogously relies on BB_VISITED being cleared at pass start.
Seems like IRA ought to be fixed to clear BB_VISITED on every block as
part of its initialization.
Jeff