Dear guys, 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:
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: L0: v0 = 0 goto L2: L2: v2 = phi(v0, ??) print v2 How can I update the phi-function v2 = phi(v0, v1)? I need to know from which control flow edge the parameter v0 comes, so that I can add a copy like this: L2: v2 = v0 print v2 However, I do not know how to find from which edge v0 comes. Is there any example of code in your repository in which basic blocks are removed? Or, otherwise, is it possible to find out the correct parameter of a phi-function that is associated with a CFG edge? Thank you very much, Henrique. _______________________________________________ dev-tech-js-engine-internals mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

