On 10/17/2012 10:01 PM, Nicholas Nethercote wrote:
On Thu, Oct 18, 2012 at 1:29 PM, Brendan Eich<[email protected]> wrote:
$ ./Darwin_DBG.OBJ/js -f tests/shell.js -f tests/js1_8/shell.js -f
tests/js1_8/genexps/shell.js -f tests/js1_8/genexps/regress-380237-01.js -
BUGNUMBER: 380237
STATUS: Generator expressions - sudoku
4 8 3 |9 2 1 |6 5 7
9 6 7 |3 4 5 |8 2 1
2 5 1 |8 7 6 |4 9 3
------+------+------
5 4 8 |1 3 2 |9 7 6
7 2 9 |5 6 4 |1 3 8
1 3 6 |7 9 8 |2 4 5
------+------+------
3 7 2 |6 8 9 |5 1 4
8 1 4 |2 5 3 |7 6 9
6 9 5 |4 1 7 |3 8 2
tests/js1_8/genexps/regress-380237-01.js:131:0 InternalError: too much
recursion
Terrence and I have had problems with that one before. IIRC the test
has some bogosity about it, but I don't remember the details --
Terrence, do you?
The problem is that with IonMonkey we have moved a lot of things to inline
functions, and adding these functions seems to have increase the size of the
interpreter frame by “a lot”. This test case creating a lot of interpreter
frames to handle the generators and fail after 17 frames (to verify) of the
interpreter.
The problem is that gcc give-up on optimizing the interpreter variables and
seems to just append each local variable of each inline functions to the set
of existing local variable of the interpreter. I guess one option my be to
remove the “inline” keyword of jsinterpinline.h and see the impact on
performances, or find another way to handle errors in the interpreter such
as gcc does not give-up on optimizations.
--
Nicolas B. Pierron
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals