v8/tools
Benedikt Meurer 3f22832be7 [builtins] Port Map and Set iterators to CodeStubAssembler.
This is the next step towards faster Map and Set iteration. It
introduces the appropriate instance types for Map and Set
iterators (following the pattern for Array iterators) and migrates
the following builtins to the CodeStubAssembler:

  - Set.prototype.entries
  - Set.prototype.values
  - Map.prototype.entries
  - Map.prototype.keys
  - Map.prototype.values
  - %SetIteratorPrototype%.next
  - %MapIteratorPrototype%.next

This already provides a significant performance boost for regular
for-of iteration of Sets and Maps, by a factor of 5-10 depending
on the input. The final step will be to inline some fast-paths
into TurboFan.

Drive-by-fix: Remove obsolete %IsJSSetIterator and %IsJSMapIterator
intrinsics and runtime functions.

Bug: v8:6571, chromium:740122
Change-Id: Iad7a7dec643d8f8b5799327f89a351108ae856bf
Reviewed-on: https://chromium-review.googlesource.com/563399
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46492}
2017-07-08 18:46:59 +00:00
..
blink_tests [Interpreter] Remove failure expectation for observer-expectations blink test. 2016-06-27 16:10:20 +00:00
cfi Port cfi blacklist from chromium. 2015-09-15 08:45:51 +00:00
dev [gm] Detect goma usage from args.gn 2017-06-30 14:12:04 +00:00
foozzie [foozzie] Mock out typed array set function to suppress range error 2017-06-02 13:57:55 +00:00
gcmole [intl] Reorganize code 2017-04-24 13:54:15 +00:00
generate_shim_headers
ignition Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
jsfunfuzz [compiler] Make --debug-code the default in debug builds. 2016-12-02 11:36:55 +00:00
link_clicker.extension [tools] Add link_click chrome extension 2017-05-09 15:25:21 +00:00
luci-go Roll v8 isolate binaries to match the chromium versions. 2017-06-21 12:15:36 +00:00
mb v8: Remove dependency on xdisplaycheck 2016-12-02 16:54:59 +00:00
memory [test] Remove obsolete lsan suppressions 2017-06-23 14:18:05 +00:00
msan [gn] Add missing dep and blacklist for msan 2016-07-29 09:01:24 +00:00
ninja [ycm] The YouCompleteMe configuration is not VIM specific. 2015-02-12 07:21:13 +00:00
perf [benchmarks] Add R script for statistical tests on benchmark results 2016-02-05 12:29:58 +00:00
profview [profview] Add runtime-entry top-down tree. 2017-04-11 11:33:47 +00:00
profviz [ic] Drop TimerEventScopes from *IC_Miss runtime functions 2016-11-10 13:10:25 +00:00
release [release] Make roll-branch CLs private 2017-07-06 11:19:13 +00:00
sanitizers [test] Add build_dir option to sancov formatter 2017-06-27 14:19:28 +00:00
sodium
testrunner [test] Remove obsolete lsan suppressions 2017-06-23 14:18:05 +00:00
turbolizer [turbofan] Remove --turbo shorthand for --turbo-filter. 2017-06-23 11:19:19 +00:00
unittests [test] Implement results processor for perf runner. 2017-02-16 15:43:19 +00:00
v8.xcodeproj
vim [ycm] The YouCompleteMe configuration is not VIM specific. 2015-02-12 07:21:13 +00:00
visual_studio
wasm [wasm] Remove the wasm-asmjs fuzzer 2017-06-21 10:59:35 +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 Bug fix: A bug in android-sync tool 2016-01-28 11:06:27 +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
BUILD.gn [gn] Fix gn targets for tools 2016-06-06 14:25:30 +00:00
callstats.html Fix static initializer in ic.cc 2017-04-10 17:45:35 +00:00
callstats.py [RuntimeCallStats] Exclude Adwords and Speedometer from Total calculation. 2017-03-04 10:16:49 +00:00
check-inline-includes.sh Remove inline header includes from non-inline headers (1). 2015-08-12 07:32:54 +00:00
check-static-initializers.gyp [gn] Move build to gypfiles 2016-04-29 10:11:11 +00:00
check-static-initializers.isolate [swarming] Isolate static initializer check. 2016-01-08 12:58:30 +00:00
check-static-initializers.sh
check-unused-bailouts.sh Remove unused bailout reasons. 2015-07-13 13:34:12 +00:00
codemap.js [profiler] Graphical front-end for tick processor. 2017-03-04 13:04:58 +00:00
compare-table-gen.js Add more exhaustive tests for Math.min and Math.max. 2015-04-10 12:35:16 +00:00
concatenate-files.py
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
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 [prof] Add slide offset in dumpcpp script 2016-05-30 08:56:59 +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 Prototype for a client-side performance trybot script. 2014-11-18 14:40:00 +00:00
find-commit-for-patch.py Add tools/find-commit-for-patch.py 2014-12-16 14:25:00 +00:00
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
gcov.sh [tools] Simple turn-key utility to locally collect code coverage. 2017-06-21 23:45:20 +00:00
gdb-v8-support.py gdb-v8-support.py: Fix old style print statement 2016-07-03 07:11:47 +00:00
gdbinit [debugging] Add helper to print transition trees 2017-07-06 10:44:01 +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 [elements] Rename FAST elements kinds 2017-06-30 13:31:44 +00:00
generate-builtins-tests.py Add a script that can generate simple test cases for user-exposed JS builtins 2014-09-11 09:58:58 +00:00
generate-ten-powers.scm
grokdump.py [tools] Fix frame marker printing on x64 in grokdump.py 2017-05-03 12:44:27 +00:00
gyp_flag_compare.py [gn] Let gyp/gn comparison be more verbose on error 2016-07-12 11:18:40 +00:00
ic-explorer.html [fullcodegen] Deprecate usage of patching BinaryOpICStub. 2017-06-22 09:29:20 +00:00
ic-processor Reimplement TraceIC using the logger 2017-02-20 09:50:40 +00:00
ic-processor-driver.js Reimplement TraceIC using the logger 2017-02-20 09:50:40 +00:00
ic-processor.js [fullcodegen] Deprecate usage of patching BinaryOpICStub. 2017-06-22 09:29:20 +00:00
isolate_driver.py [swarming] Port updated version of isolate_driver.py 2016-07-06 14:21:12 +00:00
js2c.py [cleanup] Prune dead macros from src/js/macros.py 2017-06-20 18:44:22 +00:00
jsmin.py jsmin.py: Fix issue with escaping of back ticks 2015-06-24 22:29:46 +00:00
linux-tick-processor
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
mingw-generate-makefiles.sh [build] Move gyp folder 2016-04-27 12:37:35 +00:00
objdump-v8 [disasm] Make jump target printing perf friendly 2017-03-20 14:47:04 +00:00
OWNERS Add initial set of sub directory OWNERS file 2015-04-02 08:46:24 +00:00
parser-shell.cc Make isolate explicit param of parsing:: functions 2017-03-28 08:20:56 +00:00
parser-shell.gyp Reland of land "Turn libbase into a component" (patchset #1 id:1 of https://codereview.chromium.org/2396933002/ ) 2016-10-07 07:56:52 +00:00
perf-compare.py [tools] perf-compare.py is now able to combine multiple json results into one column. 2017-03-24 10:38:28 +00:00
perf-to-html.py [tools] Handle benchmark runs reporting more than one result. 2016-05-02 14:25:00 +00:00
plot-timer-events Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
presubmit.py [turbofan] Remove --turbo shorthand for --turbo-filter. 2017-06-23 11:19:19 +00:00
process-heap-prof.py
profile_view.js
profile.js [Ic-Processor] Let us know if an IC is in opt. or unopt. code. 2017-04-25 12:01:18 +00:00
run_perf.py [tests] Allow filtering of benchmarks in run_perf.py. 2017-04-27 08:24:36 +00:00
run-deopt-fuzzer.gyp [gn] Move build to gypfiles 2016-04-29 10:11:11 +00:00
run-deopt-fuzzer.isolate [Swarming] Isolate deopt fuzzer. 2016-02-18 10:48:21 +00:00
run-deopt-fuzzer.py [compiler] Make --debug-code the default in debug builds. 2016-12-02 11:36:55 +00:00
run-llprof.sh Fix tools/run-llprof.sh to work with newer perf. 2014-10-09 06:01:41 +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 [test] Make auto-detect of test options more robust 2017-07-03 12:39:29 +00:00
run-valgrind.gyp [gn] Move build to gypfiles 2016-04-29 10:11:11 +00:00
run-valgrind.isolate [Swarming] Isolate valgrind runner. 2016-02-15 12:47:54 +00:00
run-valgrind.py [test] Clean up valgrind runner. 2016-01-14 10:42:32 +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
test-server.py
tick-processor.html [tools] Show more entries in the ticks-processor 2017-03-10 10:34:11 +00:00
tickprocessor-driver.js [tools] Add options to separate more entries in tickprocessor 2017-04-11 10:23:02 +00:00
tickprocessor.js [tickprocessor] fix ASLR slide use and nm on Mac 2017-06-23 04:23:26 +00:00
trace-maps-processor.py Add FLAG_trace_maps 2014-11-07 16:03:44 +00:00
try_perf.py [test] Add flag for concurrent-marking trybot to try_perf 2017-06-26 07:33:48 +00:00
turbolizer-perf.py [turbolizer] Fixed naming of turbolizer perf script. 2016-07-28 12:38:00 +00:00
v8-rolls.sh
v8heapconst.py [builtins] Port Map and Set iterators to CodeStubAssembler. 2017-07-08 18:46:59 +00:00
verify_source_deps.py [tools] backport_node.py increments V8 version in target. 2017-04-27 14:50:10 +00:00
whitespace.txt Whitespace change for account setup 2017-07-06 08:44:17 +00:00
windows-tick-processor.bat