Mike, I think that those blocks are not common in JavaScript programs. We (me, Henrique and Igor Rafael) are working in a set optimizations and one of them is Constant Propagation, which can leads to situations in which you end up with unreachable code.
On Mon, Jul 16, 2012 at 7:37 PM, Nicolas B. Pierron < [email protected]> wrote: > Hi Henrique, > > I am happy to hear (read) that you are willing to play with IonMonkey. > > > On 07/16/2012 01:35 PM, Henrique Santos wrote: > >> I am trying to implement an optimization in IonMonkey that consists in >> removing unreachable basic blocks. However, I am having problems to >> implement it, because I do not know how to update the phi-functions once I >> remove a block. For instance, if I have this program: >> > > Just by curiosity, what is your final project ? I don't think IonMonkey is > producing headless basic block except for entry points. Removing dead > basic block is something that we will need when we would have optimizations > manipulating the graph. > > > L0: >> v0 = 0 >> goto L2 >> >> L1: >> v1 = 1 >> >> L2: >> v2 = phi(v0, v1) >> print v2 >> >> I want to eliminate L1, and then the program would be like: >> > > Take care, you will need to ensure that the block you are trying to remove > is not the OSR block created when we are compiling with canEnterAtBranch. > > -- > Nicolas B. Pierron > > ______________________________**_________________ > dev-tech-js-engine-internals mailing list > dev-tech-js-engine-internals@**lists.mozilla.org<[email protected]> > https://lists.mozilla.org/**listinfo/dev-tech-js-engine-**internals<https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals> > -- Péricles <http://dcc.ufmg.br/%7Epericlesrafael> _______________________________________________ dev-tech-js-engine-internals mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

