v8/test
Adam Klein ededfcd212 Skip hole initialization of lexical variables when possible
This patch expands scope analysis to skip hole initialization
when it can be determined statically that no hole checks will
be generated at runtime.

Two conditions must be met to safely eliminate hole initialization:
  - There must not exist a VariableProxy referencing this Variable
    whose HoleCheckMode is kRequired
  - The Variable must be stack allocated; any other allocation implies
    that it may be accessed from not-yet-analyzed scopes (other modules,
    inner functions, or eval code) and that code may require
    hole checks.

The new logic required removing debug code in full-codegen which is
now incorrect in some cases.

Also fixed Variable's bitfield helpers to take no more space than needed.

Bug: chromium:651637
Change-Id: Ie5ac326af4e05b7a5c3c37cd4d0afba6a51a504d
Reviewed-on: https://chromium-review.googlesource.com/494006
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45170}
2017-05-08 19:28:30 +00:00
..
benchmarks Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
cctest Skip hole initialization of lexical variables when possible 2017-05-08 19:28:30 +00:00
common [wasm] Fix memory management for Result types 2017-05-08 14:26:57 +00:00
debugger Revert "Introducing an event loop mechanism for d8." 2017-05-08 17:47:27 +00:00
fuzzer [cleanup][wasm][fuzzer] Share code among the different fuzzers. 2017-05-08 09:58:26 +00:00
inspector [js] Avoid %_ClassOf for collection builtins. 2017-05-05 10:22:17 +00:00
intl Handle private / grandfathered tags gracefully for case-conversion 2017-05-04 22:40:42 +00:00
js-perf-test [js-perf-tests] Fix PropertyQueries test for fast-delete 2017-05-05 15:57:36 +00:00
memory
message [asm.js] Fix validation failure in module variable import. 2017-05-05 11:39:06 +00:00
mjsunit Revert "Introducing an event loop mechanism for d8." 2017-05-08 17:47:27 +00:00
mkgrokdump Introduce mkgrokdump to update tools/v8heapconst.py. 2017-04-20 06:15:02 +00:00
mozilla [asm.js] Widen test coverage to cctest and friends. 2017-03-28 08:00:40 +00:00
preparser
promises-aplus
test262 resolvedTimezone for Etc/UTC should be UTC per Ecma 402 2017-05-04 21:17:39 +00:00
unittests [wasm] Fix memory management for Result types 2017-05-08 14:26:57 +00:00
wasm-spec-tests [test] Skip slow tests 2017-04-28 07:38:13 +00:00
webkit [asm.js] Widen test coverage to message tests. 2017-03-29 08:42:32 +00:00
bot_default.gyp [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
bot_default.isolate [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
BUILD.gn [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
default.gyp [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
default.isolate [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
optimize_for_size.gyp
optimize_for_size.isolate [debugger] basic test infrastructure for new debugger test api. 2016-10-21 06:38:05 +00:00
perf.gyp
perf.isolate Remove SIMD.js from V8. 2017-02-14 06:57:25 +00:00