Re: [RFC] sparse SSA construction

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

 



On Tue, Aug 15, 2017 at 6:44 PM, Dibyendu Majumdar
<mobile@xxxxxxxxxxxxxxx> wrote:
> Hi,
>
> I think it would be good to perform a detailed comparison / assessment
> of where the problem lies currently versus the new solution. I get the
> impression that the current problem is not well explained or
> understood.

I haven't look into the weather the new implementation does every thing
right yet. I can explain pretty well how the current implementation of SSA
is wrong. In short it is violating the SSA dominance property.
More specifically.
1) We have the "usage before define". The crazy programmer bug is
    trigger by this. Hopefully remove the single store short cut is going
    to help. My impression is that there is still more offender of "usage
    before define".

2) We don't place phi node at dominance frontier of the pseudo definition.

3) Uninitialized variable need to be treated as having implicate defined value
    of "uninitialzed" at entry point.

> Here are two known issues at present. You can see the old linearized
> output and the new linearized output - both produced with
> simplifications switched off.
>
> C code:
> https://github.com/dibyendumajumdar/dmr_c/blob/newssa/tests/bugs/simplifybug.c
>
> Old linearized output:
> https://github.com/dibyendumajumdar/dmr_c/blob/newssa/tests/bugs/simplifybug_old.lin
>
> New linearized output:
> https://github.com/dibyendumajumdar/dmr_c/blob/newssa/tests/bugs/simplifybug_new.lin

I haven't have time to take a closer look of the output.
The above 3 points should cover what is dong wrong with our SSA form.
That 3 points is also easier to reason than staring at the low level byte codes.

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