v8/tools
Andreas Haas eb129a5cf1 Reland "[wasm] Lazy compilation after deserialization"
The original CL introduced a test that does not work when it is executed
concurrently on multiple isolates. This CL skips this test
configuration.

Original change's description:
> [wasm] Lazy compilation after deserialization
>
> The serialization format contains one boolean flag per function which
> specifies whether the function code exists in the serialized module or
> not. With this CL, this boolean flag is extended to a three-value flag
> which indicates whether the function exists, and if not, whether the
> function was executed before serialization. This information can then be
> used upon deserialization to compile only those functions that were
> executed before serialization.
>
> Design doc: https://docs.google.com/document/d/1U3uqq4njqLqFhr1G2sU_bmpQxY-3bvfG55udSb-DvA4/edit?usp=sharing
>
> Bug: v8:12281

Change-Id: I36ce90b37736172aa01c47ab04e154ec8ea2d8aa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3380590
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78564}
2022-01-11 13:13:56 +00:00
..
bazel [bazel] Add optional deps for prebuilt bazel for bots 2021-06-22 08:42:15 +00:00
cfi [cfi] Use inclusive terminology 2020-07-28 05:57:41 +00:00
clusterfuzz [foozzie] Ensure sparkplug is off for baseline comparison 2021-11-12 10:54:05 +00:00
cppgc Reland "Reland "Reland "cppgc: Enable checks for assignments in prefinalizers""" 2021-09-29 16:02:17 +00:00
debug_helper V8 Sandbox rebranding 2021-12-15 17:09:36 +00:00
dev Fix update-compile-commands.py 2021-11-02 14:29:14 +00:00
gcmole [tools] Update gcmole 2021-10-28 07:53:44 +00:00
generate_shim_headers Add dependency to ICU 4.6 2013-07-01 08:32:41 +00:00
heap-layout [tool] fix typo in heap-layout and system-analyzer 2022-01-11 13:06:21 +00:00
heap-stats [refactor] Rename StackFrameInfo to CallSiteInfo. 2021-12-14 10:03:25 +00:00
ignition Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
js [tool] heap layout trace file visualization tool 2021-12-22 02:07:35 +00:00
jsfunfuzz [test] update the jsfunfuzz archive in Google Storage 2018-12-18 15:00:35 +00:00
link_clicker.extension [tools] Add link_click chrome extension 2017-05-09 15:25:21 +00:00
mb Remove --isolated from mb.py 2021-12-02 08:31:19 +00:00
memory [tools] Clean up insensitive terms 2020-12-01 20:02:48 +00:00
msan Rename msan blacklist.txt to ignorelist.txt 2021-05-27 08:24:50 +00:00
perf [tools] Refactor patch/no-patch terminology in run_perf.py 2017-11-22 07:19:50 +00:00
profview [tools] Profiler builtins and sparkplug fixes 2021-04-21 11:44:31 +00:00
release [tools] Fix list_depreceated.py 2021-10-26 12:07:01 +00:00
sanitizers [respect] Stop using "blacklist" in several python tools 2020-07-10 19:11:36 +00:00
snapshot Fix a Python3 compatibility issue in asm_to_inline_asm.py. 2020-08-03 22:21:55 +00:00
system-analyzer [tool] fix typo in heap-layout and system-analyzer 2022-01-11 13:06:21 +00:00
testrunner Reland "[wasm] Lazy compilation after deserialization" 2022-01-11 13:13:56 +00:00
toolchain [build] Add support for the other MIPS architectures 2018-03-19 10:43:07 +00:00
torque [torque] Invert the default for @generateCppClass 2021-07-21 15:21:00 +00:00
tracing/proto-converter [tools] Refactor, use built-in Array.flat() instead of custom flatten method 2021-05-31 07:46:15 +00:00
turbolizer [turbolizer] Solve off-by-one source position error for non-Wasm 2021-07-09 09:07:54 +00:00
ubsan [respect] Rename UBSAN's blacklists to ignorelists 2021-04-28 07:55:39 +00:00
unittests V8 Sandbox rebranding 2021-12-15 17:09:36 +00:00
v8.xcodeproj Add support for building Xcode project files from GYP files 2011-06-09 09:07:17 +00:00
v8windbg Remove absolute paths in ninja files for v8windbg gn file 2021-12-13 16:22:54 +00:00
valgrind/asan [build] Add testrunner data deps 2018-03-26 12:17:08 +00:00
vim [vim] Update vim scripts 2021-04-01 16:14:04 +00:00
visual_studio Remove the Visual Studio project files 2011-05-02 13:43:13 +00:00
wasm [wasm] Add wasm wpt tests to the V8 tests 2021-09-14 19:10:27 +00:00
wasm-compilation-hints [wasm] Update OWNERS 2020-01-08 14:56:06 +00:00
zone-stats [zone-stats] Show all zones in a filter 2020-09-09 16:16:11 +00:00
__init__.py [test] make python recognize tools and tools/unittests as packages 2018-12-17 12:12:43 +00:00
adb-d8.py Remove JS natives support, step 3 2019-10-22 07:48:05 +00:00
android-build.sh Rewrite Makefile rules for Android to allow parallel execution 2012-07-27 11:14:44 +00:00
android-ll-prof.sh Change default ARCH version in android low-level profiler script to 4.6 2012-10-08 11:11:30 +00:00
android-run.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
android-sync.sh [mjsunit][tools] Sync module files for tests 2020-10-07 12:45:19 +00:00
arguments.mjs [tools] Cleanup Arguments processing in tools 2021-06-01 09:43:46 +00:00
avg.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
bash-completion.sh [bash-completion] Support some gm.py completion 2021-03-24 16:24:25 +00:00
bigint-tester.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
BUILD.gn [tools] Add v8windbg, a WinDbg extension for V8 2020-02-18 19:16:18 +00:00
callstats_groups.py [web snapshot] web snapshot <3 RuntimeCallStats 2021-05-19 12:16:28 +00:00
callstats-from-telemetry.sh [Tools] Improve callstats.html .txt file handling 2021-01-28 10:37:09 +00:00
callstats.html [web snapshot] web snapshot <3 RuntimeCallStats 2021-05-19 12:16:28 +00:00
callstats.py [callstats] relocate the vpython imports 2020-02-27 14:45:56 +00:00
callstats.py.vpython [tools] Fix platform specification for scipi 2018-08-17 18:49:49 +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 Bump expected static initializers count from 2 to 3 2021-02-12 09:47:44 +00:00
check-unused-bailouts.sh [tools] Speed-up check-unused-bailouts.sh 2017-08-02 11:11:19 +00:00
check-unused-symbols.sh [cleanup] Remove unused heap-symbols and add tool. 2018-11-08 17:57:05 +00:00
codemap.mjs [tools][system-analyzer] Support profiling ticks 2021-05-31 13:09:16 +00:00
collect_deprecation_stats.sh [objects] Deprecate GetIsolate/Heap behind a flag 2018-06-01 15:19:21 +00:00
compare_torque_output.py [torque] Add support for torque output comparison 2020-01-21 14:39:04 +00:00
compare-table-gen.js Add more exhaustive tests for Math.min and Math.max. 2015-04-10 12:35:16 +00:00
consarray.mjs [tools] Migrate more tools to ES6 classes 2021-01-11 16:40:39 +00:00
cpu.sh [tools] Allow specifying cores for cpu.sh script. 2015-11-18 10:53:30 +00:00
cross_build_gcc.sh Fix tools/cross_build_gcc.sh. 2014-02-20 16:37:40 +00:00
csvparser.mjs [tools] Add api events timeline-track to system-analyzer 2020-12-05 10:49:42 +00:00
DEPS Add DEPS files and run checkdeps in presubmit check 2014-06-03 13:39:42 +00:00
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 Rename A64 port to ARM64 port 2014-03-21 09:28:26 +00:00
dump-cpp.py [tools] Convert JS-tools to ES6 modules 2020-09-28 14:40:18 +00:00
dumpcpp-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
dumpcpp.mjs Reland "[mjsunit][tools][d8] Full roundtrip tickprocessor test" 2021-06-02 07:02:48 +00:00
eval_gc_nvp.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
eval_gc_time.sh Remove all leftovers of store buffer 2021-11-10 09:29:41 +00:00
find_depot_tools.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
find-builtin [tools] Add a tool for finding builtins 2021-04-07 12:51:38 +00:00
find-commit-for-patch.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
freebsd-tick-processor * Fix build errors on FreeBSD 8.2 2011-03-16 11:15:43 +00:00
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 Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
gc-nvp-trace-processor.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
gdb-v8-support.py [tools] Fix gdb redirect helper in gdb-v8-support.py 2021-10-21 12:27:45 +00:00
gdbinit [gdbinit] Also look for OS::DebugBreak frames 2022-01-04 15:51:18 +00:00
gen-inlining-tests.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
gen-keywords-gen-h.py Fix gen-keywords-gen-h.py 2022-01-03 16:38:27 +00:00
gen-postmortem-metadata.py [objects] Make PropertyKind an enum class to fix -Wshadow 2021-11-15 19:05:14 +00:00
gen-v8-gn.py [Py3] fix py3 issue in tools 2021-01-25 15:33:53 +00:00
generate-builtins-tests.py [respect] Stop using "blacklist" in several python tools 2020-07-10 19:11:36 +00:00
generate-header-include-checks.py Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
generate-runtime-call-stats.py [tools] Fix retention of json files in RCS script 2020-03-26 12:07:56 +00:00
generate-ten-powers.scm Fast double-to-ascii conversion. 2010-03-11 14:49:35 +00:00
get_landmines.py [landmines] Force clean build to fix Misc V8 Linux gcc 2019-06-06 21:52:11 +00:00
grokdump.py [objects] Delete double field unboxing 2021-02-11 17:24:15 +00:00
ic-processor [tools] Convert JS-tools to ES6 modules 2020-09-28 14:40:18 +00:00
ic-processor-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
index.html [tool] heap layout trace file visualization tool 2021-12-22 02:07:35 +00:00
linux-tick-processor [tools] Port more tools to ES6 classes 2020-11-04 14:45:41 +00:00
ll_prof.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
lldb_commands.py [tools] Set up source map for lldb 2021-07-01 18:04:17 +00:00
locs.py [tools] Use ThreadPoolExecutor with reasonable job count default 2019-04-08 10:41:46 +00:00
logreader.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +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
objdump-v8 [disasm] Make jump target printing perf friendly 2017-03-20 14:47:04 +00:00
OWNERS [owners] Includes infra team as tools owners 2021-11-25 07:55:08 +00:00
package-lock.json [tools] Add README.md file and package.json for local development 2021-07-05 16:43:28 +00:00
package.json [tools] Add README.md file and package.json for local development 2021-07-05 16:43:28 +00:00
parse-processor [tools] Convert JS-tools to ES6 modules 2020-09-28 14:40:18 +00:00
parse-processor-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
parse-processor.html [tools] Prepare parse-processor for baseline compiler 2021-02-22 10:51:00 +00:00
parse-processor.mjs [tools] Cleanup Arguments processing in tools 2021-06-01 09:43:46 +00:00
perf-compare.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
predictable_wrapper.py [Py3] Get python scripts in tools closer to Py3 2020-06-29 16:55:16 +00:00
PRESUBMIT.py [presubmit] Clean up insensitive terms 2020-07-27 18:05:48 +00:00
process-wasm-compilation-times.py [wasm] Internal representation for function references 2021-11-24 13:07:28 +00:00
profile_view.js Tick processor: improved [Summary] section 2014-08-04 08:31:49 +00:00
profile_view.mjs [tools] Modernize tools .mjs files 2020-11-10 12:32:26 +00:00
profile.mjs [tools] Various system-analyzer fixes 2021-11-30 15:16:21 +00:00
README.md [tools] Add README.md file and package.json for local development 2021-07-05 16:43:28 +00:00
regexp-sequences.py Preparing v8 to use with python3 2019-10-18 13:10:56 +00:00
run_perf.py [tools] Print CWD change in debug log 2021-09-21 12:51:06 +00:00
run-clang-tidy.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
run-llprof.sh Fix tools/run-llprof.sh to work with newer perf. 2014-10-09 06:01:41 +00:00
run-num-fuzzer.py [Py3] Get python scripts in tools closer to Py3 2020-06-29 16:55:16 +00:00
run-perf.sh [cleanup] Replace underscore by minus in d8 flags 2019-04-03 12:32:08 +00:00
run-tests.py [Py3] Get python scripts in tools closer to Py3 2020-06-29 16:55:16 +00:00
run-wasm-api-tests.py [wasm-c-api] Roll 7865f7d: Expose possible traps during Instance::make 2019-08-23 09:46:29 +00:00
run.py Show failure codes in run.py 2020-06-17 17:16:22 +00:00
shell-utils.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
sourcemap.mjs [system-analyzer] Add source map support 2021-06-22 14:11:03 +00:00
splaytree.mjs [tools] Migrate more tools to ES6 classes 2021-01-11 16:40:39 +00:00
stats-viewer.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
test262-results-parser.js test262 roll 2018-08-28 21:18:23 +00:00
tick-processor.html Reland "[mjsunit][tools][d8] Full roundtrip tickprocessor test" 2021-06-02 07:02:48 +00:00
tickprocessor-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
tickprocessor.mjs [tools][system-analyzer] Add FeedbackVector support 2021-10-27 09:40:41 +00:00
try_perf.py [v8_perf] remove deprecated builder options from v8 perf trybot 2021-12-02 11:02:32 +00:00
turbolizer-perf.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
update-object-macros-undef.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
v8_presubmit.py [tool] heap layout trace file visualization tool 2021-12-22 02:07:35 +00:00
v8heapconst.py [inspector] Capture stack trace only once for JSError objects. 2022-01-10 14:55:18 +00:00
whitespace.txt Revert "Whitespace change to test alerts" 2021-11-02 12:51:13 +00:00
windbg.js [heap] Add base class for LargeObjectSpaces 2019-10-25 09:22:57 +00:00
windows-tick-processor.bat [tools] Use .mjs in windows-tick-processor.bat 2021-01-07 09:00:23 +00:00
wpr.wprp Step 1 (of 3-ish): Basic ETW Instrumentation in V8 2021-01-05 20:11:03 +00:00

TOOLS

This directory contains debugging and investigation tools for V8.

The contents are regularly mirrored to http://v8.dev/tools.

Local Development

For local development you have to start a local webserver under http://localhost:8000:

  cd tools/;
  npm install;
  ws;

Local Symbol Server

The system-analyzer can symbolize profiles for local binaries by running a local symbol server

  cd tools/;
  ws --stack system-analyzer/lws-middleware.js lws-static cors;

Note that the local symbol server will run nm and objdump and has access to your files.