This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]