Re: [PATCH 08/11] extract add_return() from linearize_return()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Sep 06, 2018 at 02:46:28AM +0100, Ramsay Jones wrote:
> 
> 
> On 06/09/18 01:52, Luc Van Oostenryck wrote:
> > On Thu, Sep 06, 2018 at 01:00:11AM +0100, Ramsay Jones wrote:
> >> On 05/09/18 23:38, Luc Van Oostenryck wrote:
> >>> This will allow to reuse this code to generate valid IR
> >>> in the case of a missing return statement.
> >>>
> >>> +		add_return(ep, bb_return, expr->ctype, src);
> >>
> >> It does not matter here, but as a matter of interest, why pass
> >> the entrypoint here, rather than the active bb?
> > 
> > Indeed, ep in itself is not needed. I didn't noticed.
> > It's mostly a matter of consistency: functions that will add
> > an instruction generaly need the entrypoint because they may
> > change the active BB.
> >  
> >> Future plans?
> > 
> > Hehe :)
> 
> ;-) I was only enquiring about the add_return() function!
> (Any future plans to use anything other than ep->active).

I sort of supposed it was but it was more interesting so ;)

To answer your real question: no, not that I can imagine.
Unlike other parts, the linearization is essentially complete:
* C won't have new language constructions
* if new instructions will be added they won't impact linearization
  (I'm thinking about things like OP_ROL/OP_ROR or OP_BSWAP8/16/32).
  There is one expection though, it's for varags.
I can't see other uses for add_return().
I prefer to leave 'ep' as argument since, to me, seeing this as
the first argument means "this function need the current context/
will add instructions to the current BB", while seeing an explicit
BB means "this function will add instructions to an arbitrary BB".

-- Luc



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux