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

Reply via email to