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: Remove unused arguments of bulitin_unreachable


Hi,

On Thu, Dec 11, 2014 at 07:16:43PM +0100, Jan Hubicka wrote:
> > On Thu, Dec 11, 2014 at 06:06:55PM +0100, Jan Hubicka wrote:
> > > Hi,
> > > in firefox .optimized dumps one can see few places where __builtin_unreachable
> > > is called (as a result of devirtualization code proving the code path to be
> > > undefined).  There is usually some argument setup for the parameters of
> > > __builtin_unreachable that are dead.  This patch makes it somewhat better 
> > > so now we get:
> > >   <bb 30>:                                                                      
> > >   # prephitmp_222 = PHI <_52(27), pretmp_245(29)>                               
> > >   _57 = prephitmp_222 + 2;                                                      
> > >   pool_40(D)->ptr = _57;                                                        
> > >   __builtin_unreachable ();                                                     
> > > 
> > > Why DSE does not eliminate the stores prior noreturn const function?
> > > 
> > > Bootstrapped/regtested x86_64-linux, OK?
> > > 
> > > Honza
> > > 	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove dead parameters
> > > 	of BUILT_IN_UNREACHABLE
> > 
> > Shouldn't this be done when you actually change the call to
> > __builtin_unreachable ()?  I mean, __builtin_unreachable () has no
> > arguments, so leaving any arguments there is broken IL, even if you clean it
> > up during the next DCE.
> 
> Hmm, I tought there was some reason to not do so becuase of inplace folding and memory-SSA.
> I can give a try to update all the places we can put builtin_unreachable into IL.
> (I wonder if that also include standard constant propagation)

I think that's what we ought to do, see also PR 61591.

Martin


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