This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix noreturn related LTO ICE
On Tue, 1 Jun 2010, Jan Hubicka wrote:
> > > + FOR_EACH_IMM_USE_STMT (use_stmt, iter, op)
> > > + FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
> > > + SET_USE (use_p, error_mark_node);
> >
> > you want release_ssa_name (op) here.
> done.
> > > Index: tree-cfg.c
> > > ===================================================================
> > > --- tree-cfg.c (revision 160079)
> > > +++ tree-cfg.c (working copy)
> > > @@ -2987,7 +2987,10 @@ verify_gimple_call (gimple stmt)
> > > return true;
> > > }
> > >
> > > - if (gimple_call_lhs (stmt) && gimple_call_noreturn_p (stmt))
> > > + /* By type merging or during IPA passes we can mark call noreturn.
> > > + Before fixup_cfg is executed, ignore this check. */
> > > + if (gimple_call_lhs (stmt) && gimple_call_noreturn_p (stmt)
> > > + && cgraph_state != CGRAPH_STATE_IPA_SSA)
> >
> > Doesn't that mean that we never check this during early optimizations?
> > I do not think this is a good idea. Why not avoid verifier calls
> > during the intermediate broken state at all?
>
> Those calls are done by pass manager. Enabled implicitly here:
> if (cfun->curr_properties & PROP_ssa)
> flags |= TODO_verify_ssa;
>
> this leads to verify_ssa that in turn calls verify_stmts.
> I always found this wasteful since we do explicit TODO_verify_ssa after
> passes that affects the IL. So what about disabling this behaviour
> first and then I can do incremental patch?
Is it possible to disable the default verify-ssa just for IPA passes
and would that be enough?
Richard.