Thanks for the explanation, Sean!
 That really cleared things up for me.

 Regards,
 Henrique.

----- Original Message -----
From: Sean Stangl
Sent: 08/07/12 07:40 PM
To: Henrique Santos
Subject: Re: [JS-internals] Iteration in reverse postorder

 Hi Henrique, The behavior you're seeing is expected. Reverse Post-Order 
iteration is actually a very weak claim: its guarantee is only that when a 
block is being visited, all dominators of that block have already been visited. 
The CFG from that function has the following links between blocks: 0->1, 0->4 
1->2, 1->3 3->5 Each "->" in the above list can be read as "must precede" for 
purposes of RPO. So all of the following would be valid orderings in RPO: 
012345 012354 041325 014325 014352 And so on. Best, Sean ----- Original Message 
----- From: "Henrique Santos" <[email protected]> To: 
[email protected] Sent: Tuesday, August 7, 2012 
4:10:44 PM Subject: [JS-internals] Iteration in reverse postorder Hello, guys. 
I'm working on IonMonkey together with Pericles and Igor, and I would like to 
check with you if a behavior in the compiler might be a bug. I wrote a dead 
code elimination algorithm that uses IonMonkey's RPO iterator. In a block with 
an MTest i
 nstruction at the end, I expected the iterator to reach all blocks of one of 
its true or false subgraphs before moving on to the other one, but I've got a 
case where that doesn't happen. Is this behavior expected? I've attached to 
this email a test case that reproduces this. I've also pasted the code down 
below. If you generate the program's control flow graph, then you can see that 
the RPO iterator moves from block 3 to block 4 then to block 5, but 5 is the 
only successor to 3, and 4 is in a completely different subgraph than 3 and 5. 
A PDF file with the 'Renumber Blocks' graph is also attached to this email. 
Could this be a possible bug, or is this expected? // Code: function f(b) { if 
(b) { if (!b) return; } else return; }; f(true); Any help is highly 
appreciated. Regards, Henrique. _______________________________________________ 
dev-tech-js-engine-internals mailing list 
[email protected] 
https://lists.mozilla.org/listinfo/dev-tech-js-engine-i
 nternals _______________________________________________ 
dev-tech-js-engine-internals mailing list 
[email protected] 
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

Reply via email to