Re: Question about Sparse Linear form and pseudos

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

 



On Sun, Aug 20, 2017 at 12:12 PM, Dibyendu Majumdar
<mobile@xxxxxxxxxxxxxxx> wrote:
> Okay the linear output above seems SSA if we consider how it is shown
> in the output. But in the code, access to 0[a] occurs via a pseudo -
> of type PSEUDO_SYM. We see multiple stores happening to this pseudo.
> So the question is each access generated through a different instance
> of a pseudo? I see that in the code if a symbol already has a pseudo

After promote the memory into pseudo, yes. each store is consider
a new "define" from the SSA point of  view. So it is a new pseudo,
or new number of the variable in some SSA book.

> then it is reused. So presumably then PSEUDO_SYMs are not SSA, but
> PSEUDO_REGs are?

PSEUDO_SYMS are static, you can think them as symbol address.
It never change. There for it does not need phi node to qualify as SSA.


> So then is it more accurate to say that PSEUDO_SYM and possibly
> PSEUDO_ARG too - represent memory access, and are just a proxy for
> stack allocated memory?

I am not sure I understand you. PSEUDO_SYM is the address of the symbol.
Load/Store is using this address to perform memory access.
After convert the memory content into pseudo, that new pseudo represent
the memory storage need to be SSA.

PSEUDO_ARG is just a pseudo receiving the function call arguments.
It will not change either. Any time some one assign a value to the arguments,
it will generate new instance of the pseudo.

Spare IR does not care if the argument is passing from stack or not.

Chris
--
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