Re: Potential incorrect simplification

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

 



On Sun, Aug 6, 2017 at 10:24 AM, Christopher Li <sparse@xxxxxxxxxxx> wrote:
> The source code has some variable uninitialized is still valid
> C source code. In such condition the compiler produce transformation
> that break the dominance property of SSA is wrong IMHO.

Clarify, I mean the compiler is wrong. The source code has
uninitialized variable is still legal in the C stander.

>> The other way to see it is something like: "ok, this means that the
>> pseudo was not initialized" (and ignore the internal bug aspect) and
>
> No, in SSA world, there is no pseudo is not initialized. Please refer back

Let me rephrase, because I notice the I use the word "initialized" is not
precise here.

In SSA word, there is no pseudo is not *defined*.

Chris

> Dominance Property of SSA:
> 1. If x is used in a Phi-function in block N,
> then the definition of x dominates *every* <==== notice "every"
> predecessor of N.
>
> It has incoming edge to the phi node, it need to be defined.
> It means that you can't just do what ever you want with that
> edge. You can pick a what ever initial value for the uninitialized
> value, you can't just pretend that uninitialized edge does not exist
> and do whatever you want with it.
>
>> then process it as such (for example choose any value you like for it).
>> You can call this "a new/legal SSA form" if you like but it will only
>> confuse discussion and won't change it's nature.
>
> OK, points taken. Replace "illegal SSA from" with "SSA form that violate
> the SSA dominance property" so that we are clear what we are talking
> about here.
>
> 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