On 10/14/2013 05:17 AM, Jan de Mooij wrote:
Especially if Esprima has many short-running function calls, the 5x instead of 3x slowdown is not unexpected I think. It should be easy to temporarily disable the prologue/epilogue calls and see how much faster that makes us (search for debugMode_ in BaselineCompiler.cpp)
Okay, that sounds like a good thing to try out. I'll give it a shot.

I can certainly see how the separation of the bytecode instructions affects the quality of the generated code. However, Debugger can't see the stack; it can only see variables. And Debugger's single-stepping doesn't specify exactly how much code runs, only that the program makes "a small amount of progress" between steps. So there's probably no need to separate bytecode instructions that have no visible side effects from their successors.

It's true that someone might set a breakpoint between the bytecodes. But when the preceding bytecode has no visible side effects, we could slide that breakpoint back without anyone being able to tell we'd done so.

_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

Reply via email to