On Mon, Mar 20, 2017 at 11:43:33PM +0000, Dibyendu Majumdar wrote: > On 18 March 2017 at 11:41, Dibyendu Majumdar <mobile@xxxxxxxxxxxxxxx> wrote: > > I am investigating a failure in one of the tests. The generated > > linearized code has instructions such as: > > > > .L363: > > br VOID, .L366, .L439 > > .L366: > > load.32 %r413 <- 44[%arg1] > > br %r413, .L368, .L369 > > .L368: > > load.64 %r415 <- 0[s7813er] > > call.32 %r416 <- printf, %r415, $2 > > br .L369 > > .L369: > > phisrc.32 %phi97(rc) <- $2 > > br .L439 > > .L439: > > phi.32 %r557 <- %phi95(rc), VOID, %phi97(rc), VOID, VOID, VOID > > > > The test program is here: > > > > https://github.com/dibyendumajumdar/dmr_c/blob/master/tests/set1/cq2.c > > It's quite old as there is several instance of very similar code that are quite OK and just this last one is wrong. I'll look at it tomorrow. > It seems that the issue is occurring in simplify_flow(). If I disable > the call to this, then the program compiles successfully and also > runs. None of my other tests fail with this step disabled. > > Any clues what might be going wrong? I suspect an issue with the tracking of pseudo usage. > Does disabling simplify_flow() have any other effect except for missed > optimizations? It should not. -- 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