[profiler] Fix attribution for the top-most interpreted frame.
Before this change, we attributed samples for the top-most interpreter frame to the second-topmost frame if we were in a bytecode handler with elided frame. With this change we try to detect that we are in a handler without a frame. If we are, we do not drop the topmost frame. For example, consider the program function inner() { var s = 0; for (var i = 0; i < 100000; i++) { s += i * i; } return s; } function trivial() { return inner(); } for (var i = 0; i < 2000; i++) { trivial(); } Before this change, d8 --prof --ignition --nocrankshaft and linux-tick-processor would produce: [JavaScript]: ticks total nonlib name 4885 83.4% 83.5% Function: ~trivial a.js:15:17 759 13.0% 13.0% Function: ~inner a.js:7:15 After this change, we get [JavaScript]: ticks total nonlib name 5486 95.9% 96.2% Function: ~inner a.js:7:15 4 0.1% 0.1% Function: ~trivial a.js:15:17 Review-Url: https://codereview.chromium.org/2667253004 Cr-Original-Commit-Position: refs/heads/master@{#42894} Committed: https://chromium.googlesource.com/v8/v8/+/d07f6540c1f9628ed2ba1fa6507c90db07ccc5f5 Review-Url: https://codereview.chromium.org/2667253004 Cr-Commit-Position: refs/heads/master@{#42924}
Showing
Please
register
or
sign in
to comment