Re: Trying to understand linearized output

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

 



On Sun, Mar 12, 2017 at 05:15:54PM +0000, Dibyendu Majumdar wrote:
> On 12 March 2017 at 17:10, Luc Van Oostenryck
> <luc.vanoostenryck@xxxxxxxxx> wrote:
> > On Sun, Mar 12, 2017 at 02:11:37PM +0000, Dibyendu Majumdar wrote:
> >> ...
> >>
> >> My question is:
> >>
> >> phisrc.64   %phi98(current) <- %r333
> >>
> >> The phi98 above is presumably referencing a pseudo which has number
> >> 98. But this is not part of this function, so I am confused. Does this
> >> look right?
> >
> > I didn't checked all the details by it looks right.
> >
> > The %phi98 is not referencing a pseudo which has the number 98.
> > It is a pseudo numbered 98 and which is of type PSEUDO_PHI.
> > Those kind of pseudos are exclusively created by 'phisrc' instructions
> > and used by 'phi' instructions.
> > Here this %phi98 is used by the phi instructions at block .L127
> >
> > These 'phi' instructions are the core of the SSA representation of
> > intermediate code. If needed Wikipedia gives a good introduction:
> >          https://en.wikipedia.org/wiki/Static_single_assignment_form
> 
> 
> Thanks. I am familiar with phi instructions in LLVM, but the phisrc
> instructions in Sparse are new to me.

Good. I wasn't sure.

Those phisrc are unimportant, you can consider them as a kind of 'move'
which is only but systematically used for each pseudo feeded to a phi
instruction. They ahev no special semantic, they just make some things
little bit easier for sparse.

Luc
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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