v8/tools
Matheus Marchini ada64b58bf interpreter: make interpreted frames distinguishable in the native stack
Before Turbofan/Ignition it was possible to use external profilers to
sample running V8/Node.js processes and generate reports/FlameGraphs
from that. It's still possible to do so, but non-optimized JavaScript
functions appear in the stack as InterpreterEntryTrampoline. This commit
adds a runtime flag which makes interpreted frames visible on the
process' native stack as distinguishable functions, making the sampled
data gathered by external profilers such as Linux perf and DTrace more
useful.

R=bmeurer@google.com, franzih@google.com, jarin@google.com, yangguo@google.com

Bug: v8:7155
Change-Id: I3dc8876aa3cd9f1b9766624842a7cc354ccca415
Reviewed-on: https://chromium-review.googlesource.com/959081
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52533}
2018-04-10 19:33:55 +00:00
..
blink_tests [Interpreter] Remove failure expectation for observer-expectations blink test. 2016-06-27 16:10:20 +00:00
cfi [CFI] Add chromium cfi-icall blacklist entries 2018-04-06 08:12:53 +00:00
clusterfuzz [foozzie] Make correctness runs deterministic 2018-04-06 12:16:36 +00:00
dev [gm.py] Use autoninja instead of ninja 2018-01-19 19:31:58 +00:00
gcmole Reland "[build] Remove legacy isolate configurations" 2018-03-28 12:36:55 +00:00
generate_shim_headers
heap-stats [debug] use flag to decide whether CallHandlerInfo has side effect 2018-04-03 17:14:26 +00:00
ignition [Interpreter] Replace --ignition flag with a --stress-fullcodegen 2017-07-13 13:05:00 +00:00
jsfunfuzz Reland "[build] Remove legacy isolate configurations" 2018-03-28 12:36:55 +00:00
link_clicker.extension [tools] Add link_click chrome extension 2017-05-09 15:25:21 +00:00
mb Generalize default Win10 dimensions. 2018-04-09 18:53:52 +00:00
memory [build] Fix win-asan compilation 2017-10-16 08:37:15 +00:00
msan [gn] Add missing dep and blacklist for msan 2016-07-29 09:01:24 +00:00
ninja
node Update tools/node/fetch_deps to new googletest location. 2018-04-06 13:23:20 +00:00
perf [tools] Refactor patch/no-patch terminology in run_perf.py 2017-11-22 07:19:50 +00:00
profview [profview] Use identity operator 2017-11-08 09:11:33 +00:00
profviz [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00
release [release] Switch auto-roller to gclient setdep 2018-04-05 10:37:19 +00:00
sanitizers Revert "[heap] Add TSAN suppression for lock-order inversion in Scavenger" 2017-10-25 10:18:49 +00:00
sodium
testrunner Reland "[build] Remove legacy isolate configurations" 2018-03-28 12:36:55 +00:00
toolchain [build] Add support for the other MIPS architectures 2018-03-19 10:43:07 +00:00
turbolizer [cleanup] Remove unused monkey patches 2018-02-23 15:13:57 +00:00
ubsan [build] Fix ubsan compilation 2017-07-19 14:08:39 +00:00
unittests [test] Abort testing immediately on interrupt and sigterm 2018-02-20 18:02:25 +00:00
v8.xcodeproj
valgrind/asan [build] Add testrunner data deps 2018-03-26 12:17:08 +00:00
vim
visual_studio
wasm [wasm] Update spec tests 2018-01-25 09:28:58 +00:00
adb-d8.py [tools] Various small adb-d8.py enhancements 2017-08-24 14:20:55 +00:00
android-build.sh
android-ll-prof.sh
android-run.py Bug fix: android-run.py 2016-07-18 09:45:23 +00:00
android-sync.sh [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00
arguments.js [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00
bash-completion.sh [tools] Fix tools/bash-completion.sh for bool flags and harmony features 2015-12-10 10:01:39 +00:00
bigint-tester.py [bigint] Remove BigInt.parseInt 2018-01-26 02:51:58 +00:00
BUILD.gn Reland "[build] Remove legacy isolate configurations" 2018-03-28 12:36:55 +00:00
callstats.html [tools] Update tools/callstats.* with the new background GC group. 2017-12-04 15:46:28 +00:00
callstats.py [tools] Update tools/callstats.* with the new background GC group. 2017-12-04 15:46:28 +00:00
check-inline-includes.sh [iwyu] Extend inline include checking to tests. 2017-09-08 09:31:32 +00:00
check-static-initializers.sh
check-unused-bailouts.sh [tools] Speed-up check-unused-bailouts.sh 2017-08-02 11:11:19 +00:00
codemap.js [profiler] Graphical front-end for tick processor. 2017-03-04 13:04:58 +00:00
compare-table-gen.js
concatenate-files.py Fix common misspellings 2017-08-02 09:35:28 +00:00
consarray.js
cpu.sh [tools] Allow specifying cores for cpu.sh script. 2015-11-18 10:53:30 +00:00
cross_build_gcc.sh
csvparser.js [log] Escape newline with \n 2017-11-03 16:41:39 +00:00
DEPS
detect-builtins.js [tools] Fix detect-builtins.js 2016-06-09 10:17:32 +00:00
disasm.py [grokdump] Include -z flag to make objdump disassemble all-zero sections 2017-04-21 13:35:37 +00:00
draw_instruction_graph.sh
dump-cpp.py [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00
dumpcpp-driver.js [prof] Add slide offset in dumpcpp script 2016-05-30 08:56:59 +00:00
dumpcpp.js [prof] Add slide offset in dumpcpp script 2016-05-30 08:56:59 +00:00
eval_gc_nvp.py [tools] Compute percentiles for GC NVP 2016-04-08 12:05:59 +00:00
eval_gc_time.sh [Heap] Remove code flushing. 2017-05-22 09:34:43 +00:00
find_depot_tools.py
find-commit-for-patch.py
freebsd-tick-processor
fuzz-harness.sh [compiler] Make --debug-code the default in debug builds. 2016-12-02 11:36:55 +00:00
gc_nvp_common.py Clean up mark-compact phases and GC counter names. 2015-12-11 11:26:21 +00:00
gc-nvp-to-csv.py [tools] Add gc-nvp-to-csv.py script. 2015-06-19 10:40:47 +00:00
gc-nvp-trace-processor.py [tools] Add gc-nvp-to-csv.py script. 2015-06-19 10:40:47 +00:00
gdb-v8-support.py [tools] Add redirect gdb helper 2017-11-24 16:55:16 +00:00
gdbinit Fix jlh gdb macro. 2017-12-06 19:42:23 +00:00
gen-inlining-tests.py [turbofan] Remove --turbo shorthand for --turbo-filter. 2017-06-23 11:19:19 +00:00
gen-postmortem-metadata.py [objects] Rename SFI compiler_hints to flags 2018-03-27 13:15:26 +00:00
generate-builtins-tests.py
generate-ten-powers.scm
get_landmines.py [build] Prepare removal of gyp-defines from landmine 2018-02-16 23:28:14 +00:00
grokdump.py Fix grokdump.py wrt KNOWN_MAPS format. 2018-03-28 10:00:25 +00:00
ic-explorer.html [tools] Fix IC-Explorer drilldown and format file 2017-10-30 11:17:43 +00:00
ic-processor [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00
ic-processor-driver.js [tools] Fix IC-Explorer drilldown and format file 2017-10-30 11:17:43 +00:00
ic-processor.js [ic] Introduce new IC for storing into array literals. 2018-03-02 21:12:57 +00:00
js2c.py Remove initial whitespace & empty lines to decrease JS files size 2017-12-19 00:04:19 +00:00
jsmin.py jsmin.py: Fix issue with escaping of back ticks 2015-06-24 22:29:46 +00:00
linux-tick-processor [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00
ll_prof.py Fix annotated disassembly in ll_prof.py 2016-04-06 12:38:44 +00:00
lldb_commands.py [tools] add lldbinit 2017-03-27 06:44:15 +00:00
lldbinit [debugging] Add helper to print transition trees 2017-07-06 10:44:01 +00:00
logreader.js [tools/logreader] Print overflow drops to stderr 2017-03-17 13:42:14 +00:00
mac-nm [profiler] Graphical front-end for tick processor. 2017-03-04 13:04:58 +00:00
mac-tick-processor
Makefile.tags [Makefile] Move tags generation to standalone Makefile 2018-01-26 12:03:32 +00:00
map-processor [tools] All new shiny maptracer.html 2017-12-18 12:48:00 +00:00
map-processor-driver.js [tools] All new shiny maptracer.html 2017-12-18 12:48:00 +00:00
map-processor.html [tools] All new shiny maptracer.html 2017-12-18 12:48:00 +00:00
map-processor.js [tools] All new shiny maptracer.html 2017-12-18 12:48:00 +00:00
mips_toolchain.tar.gz.sha1 [build] Enable downloading mips toolchain via runhooks 2018-01-31 14:38:43 +00:00
objdump-v8 [disasm] Make jump target printing perf friendly 2017-03-20 14:47:04 +00:00
OWNERS
parse-processor [tools] New parse processor tool 2017-12-20 13:07:17 +00:00
parse-processor-driver.js [tools] New parse processor tool 2017-12-20 13:07:17 +00:00
parse-processor.html [tools] New parse processor tool 2017-12-20 13:07:17 +00:00
parse-processor.js [tools] New parse processor tool 2017-12-20 13:07:17 +00:00
parser-shell.cc Remove support for unused compile options. 2018-02-21 09:51:31 +00:00
perf-compare.py Reland "Reland "[test] Creating command before execution phase."" 2017-12-04 13:40:29 +00:00
perf-to-html.py Reland "Reland "[test] Creating command before execution phase."" 2017-12-04 13:40:29 +00:00
plot-timer-events [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00
predictable_wrapper.py [test] Increase timeout for tests run by predictable_wrapper.py. 2018-03-14 09:09:22 +00:00
presubmit.py [esnext] Implement Array.prototype.{flatten,flatMap} 🥙 2018-03-15 17:26:12 +00:00
profile_view.js
profile.js [profiler] Add script name to v8.log with --log-source-code. 2017-08-10 04:43:43 +00:00
run_perf.py Reland "[build] Make separate snapshot for trusted variant" 2018-03-20 10:59:24 +00:00
run-llprof.sh
run-num-fuzzer.py [test] Implement gc fuzzer with test processors 2018-01-19 16:58:49 +00:00
run-perf.sh [tools] run-perf: ensure command line arguments are prepended 2016-10-05 15:15:38 +00:00
run-tests.py TestRunner initial refactor 2017-10-13 08:52:28 +00:00
run.py
shell-utils.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
SourceMap.js
splaytree.js
stats-viewer.py Fix common misspellings 2017-08-02 09:35:28 +00:00
tick-processor.html [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00
tickprocessor-driver.js [tools] Add options to separate more entries in tickprocessor 2017-04-11 10:23:02 +00:00
tickprocessor.js [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00
trace-maps-processor.py
try_perf.py Trigger v8_linux64_perf_try on swarming 2018-02-15 01:09:34 +00:00
turbolizer-perf.py [turbolizer] Fixed naming of turbolizer perf script. 2016-07-28 12:38:00 +00:00
v8heapconst.py interpreter: make interpreted frames distinguishable in the native stack 2018-04-10 19:33:55 +00:00
whitespace.txt [tools] Whitespace CL 2018-04-03 14:24:26 +00:00
windows-tick-processor.bat [tools] Move common arguments processing into separate file 2017-10-24 00:25:04 +00:00