Many of v8's individual benchmark tests spend a lot of time in function call overhead, including cti_op_call_JSFunction, cti_op_ret, and getCallData. It is the top issue on the Richards, DeltaBlue, and EarleyBoyer test cases.There is also some effect on Crypto and Raytrace. Shark profiles to come.
See bug 20813 for Shark profiles of individual v8 tests.
Note: this should probably be broken down into separate bugs for separate tasks.
Replacing ExecState with a call frame Register pointer is bug 21295.
Removing profiling hooks when not profiling is bug 21296.
Moving toThisObject() conversion to the callee is bug 21297.
Replacing the RegisterFile size and capacity information with Register pointers is bug 21317.
Avoiding restoring the caller's 'r' value in op_ret is bug 21319.
Removing the branch in op_ret for OptionalCalleeActivation and OptionalCalleeArguments is bug 21364.
Removing the OptionalCalleeActivation call frame slot is bug 21396.
Removing the branches for CodeBlock and CTI code in function call logic is bug 21583.
All dependencies closed, making fixed.