On Sun, Aug 6, 2017 at 4:26 PM, Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> wrote: > Since it seems to be some interest on the subject and > to avoid duplicated work, here is a rewrite of sparse's > construction of the SSA form. > > It's not using one of the classical algorithm but is > using something newer, simpler and often faster. > It's main advantage beyond the simplicity is that you don't > need to first build the whole CFG & linearized code to > to directly throw it away (or heavily transform it) as > it builds the SSA form directly during the linearization. OK, great. May I ask the question that, the SSA form you are building from this codes. Does it violate the SSA dominance property define as: ================================== Φ-Functions are placed in all basic blocks of the Dominance Frontier. 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. 2. If x is used in a non-Phi statement in N, then the definition of x dominates N ================================== In other word, does it produce the "usage before define" IR similar to this? and.32 %r3 <- %r4, $-65 or.32 %r4 <- %r3, $64 > It's not finished code but it's working well (and is > effectively a bit faster and use less memory). The correct behavior is the most important one. Then performance. > What's interesting for sparse now is that: > - the phi-noes are correctly placed In the dominance frontier, right? That is great. > - uninitialized variables can be handled much more easily. That I am very curios how it was done. See the above question. I might not have time to go through your code very quickly. I will do my best when I have some time. 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