v8/test/cctest
Sigurd Schneider d2729be4ae Revert "Optimize in operator"
This reverts commit 32fc0acfef.

Reason for revert:

https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Linux%2064/30270

layout test breakage:

https://test-results.appspot.com/data/layout_results/V8-Blink_Linux_64/30270/webkit_layout_tests%20%28with%20patch%29/layout-test-results/results.html

There is a dead node arriving in representation selection, which might indicate that the problem is not in this CL, but that this CL stirs up the node soup in such a way that dead code elimination gets confused.

Original change's description:
> Optimize `in` operator
> 
> This change implements optimizations for the `in` operator for packed array
> elements and object properties. It adds a new feedback slot kind and an IC
> path similar to KeyedLoadIC for handling the lookups. TurboFan uses the
> feedback to optimize based on the maps and keys.
> 
> For more details see:
> https://docs.google.com/document/d/1tIfzywY8AeNVcy_sen-5Xev21MeZwjcU8QhSdzHvXig
> 
> This can provide 10x performance improvements of on loops of the form:
> 
>     for (let i = 0; i < ary.length; ++i) {
>       if (i in ary) {
>         ...
>       }
>     }
> 
> 
> Bug: v8:8733
> Change-Id: I766bf865a547a059e5bce5399bb6112e5d9a85c8
> Reviewed-on: https://chromium-review.googlesource.com/c/1432598
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Matt Gardner <magardn@microsoft.com>
> Cr-Commit-Position: refs/heads/master@{#59843}

TBR=ulan@chromium.org,rmcilroy@chromium.org,jkummerow@chromium.org,jarin@chromium.org,ishell@chromium.org,bmeurer@chromium.org,verwaest@chromium.org,magardn@microsoft.com

Change-Id: Ib2db974e5bed4c4a2b6b450f796bdc4b0b8fd562
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8733
Reviewed-on: https://chromium-review.googlesource.com/c/1488761
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59857}
2019-02-26 10:40:26 +00:00
..
compiler [ptr-compr][x64] Change compression scheme to zero upper 32-bits 2019-02-15 15:12:19 +00:00
heap [heap] Relax accessing markbits in ranges. 2019-02-25 15:28:41 +00:00
interpreter Revert "Optimize in operator" 2019-02-26 10:40:26 +00:00
libplatform [tracing] Fix races in TracingController implementation 2019-02-21 08:34:16 +00:00
libsampler [cpu-profiler] Only record SIGPROF-based samples for samplers that request samples 2019-02-13 09:29:38 +00:00
parsing Fix & reland "[utf8] Rewrite NewStringFromUtf8 using Utf8::ValueOfIncremental" 2019-02-06 13:11:11 +00:00
torque [torque-ls] Implement basic Json parser for the language server 2019-02-26 07:38:03 +00:00
wasm [wasm] Reserve upto maximum for a shared WebAssembly.Memory 2019-02-23 01:59:12 +00:00
assembler-helper-arm.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
assembler-helper-arm.h [ubsan] Port Object to the new design 2018-12-26 20:54:07 +00:00
BUILD.gn [torque-ls] Implement basic Json parser for the language server 2019-02-26 07:38:03 +00:00
cctest.cc [api] Accept Extensions via unique_ptr 2019-02-01 07:15:18 +00:00
cctest.h Reland "[test] Add testing facility for SerializerForBackgroundCompilation" 2019-01-29 13:59:42 +00:00
cctest.status [cpu-profiler] Enable CpuProfileDeepStack test 2019-02-25 14:31:37 +00:00
DEPS [torque]: Add the ability to test Torque functionality with cctest 2018-05-13 10:58:56 +00:00
expression-type-collector-macros.h [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
gay-fixed.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-fixed.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-precision.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-precision.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-shortest.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-shortest.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
log-eq-of-logging-and-traversal.js [log] Improve log parsing 2018-06-20 13:40:22 +00:00
OWNERS Add myself to src/libsampler/OWNERS test/cctest/OWNERS 2019-02-14 17:14:27 +00:00
print-extension.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
print-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
profiler-extension.cc Reland "[Compile] Ensure we don't access the native context during bytecode finalization." 2018-10-26 22:33:56 +00:00
profiler-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
scope-test-helper.h [parser] Various Scope and Context speedups 2019-01-28 13:06:03 +00:00
setup-isolate-for-tests.cc [interpreter] Always put bytecode handlers in builtins table 2018-09-20 09:58:15 +00:00
setup-isolate-for-tests.h [interpreter] Always put bytecode handlers in builtins table 2018-09-20 09:58:15 +00:00
test-access-checks.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
test-accessor-assembler.cc [ubsan] Port Map to the new design 2018-11-13 06:59:12 +00:00
test-accessors.cc [ubsan] Port Code to the new design 2018-11-12 18:47:04 +00:00
test-allocation.cc Clean up VirtualMemory allocation 2018-09-17 10:16:38 +00:00
test-api-accessors.cc [cleanup] Replace 0 and NULL with nullptr for test files. 2018-09-14 12:56:00 +00:00
test-api-interceptors.cc Revert "Optimize in operator" 2019-02-26 10:40:26 +00:00
test-api.cc [wasm] fix wasm atomic wait callback test on BE 2019-02-22 16:02:26 +00:00
test-api.h [ubsan] Replace a few more Object** with alternatives 2018-12-17 14:17:22 +00:00
test-array-list.cc [explicit isolates] Remove GetIsolate from objects.cc 2018-07-13 12:42:14 +00:00
test-assembler-arm64.cc [cleanup][arm64] Replace kPointerSize usages in arm64 ... 2019-02-19 11:02:56 +00:00
test-assembler-arm.cc Cleanup unused dead labels and make Label dtor only available in DEBUG. 2019-02-05 16:26:29 +00:00
test-assembler-ia32.cc [cleanup][ia32] Fix kPointerSize in ia32 builtins 2019-02-15 07:43:09 +00:00
test-assembler-mips64.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
test-assembler-mips.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
test-assembler-ppc.cc Cleanup unused dead labels and make Label dtor only available in DEBUG. 2019-02-05 16:26:29 +00:00
test-assembler-s390.cc PPC/s390: [test] Refactor AllocateAssemblerBuffer 2019-01-17 17:37:32 +00:00
test-assembler-x64.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
test-atomicops.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-bignum-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-bignum.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-bit-vector.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-circular-queue.cc [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
test-code-layout.cc [ppc] Emit the constant pool after handler table generation 2019-02-01 15:19:42 +00:00
test-code-stub-assembler.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-compiler.cc [turbofan] Skip arguments adaptor when target cannot observe arguments. 2019-02-25 12:47:36 +00:00
test-constantpool.cc [assembler] Move ConstantPools out of src/assembler.h 2018-10-19 11:38:39 +00:00
test-conversions.cc [objects.h splitting] Move HeapNumber to heap-number.h 2018-12-17 17:58:09 +00:00
test-cpu-profiler.cc [test] Explicitly set --turbo-inlining in a cctest 2019-02-20 16:38:10 +00:00
test-date.cc [Intl] Move cachedOrNewService to C++ w/o caching 2018-11-02 07:08:26 +00:00
test-debug.cc [cleanup] Fix kPointerSize in tests 2019-02-14 15:29:52 +00:00
test-decls.cc [api] Mark SetHiddenPrototype as DEPRECATED 2019-02-08 14:49:30 +00:00
test-deoptimization.cc [deprecation] Deprecate ToBoolean(Local<Context>) 2018-09-24 12:02:09 +00:00
test-dictionary.cc Switch RehashBasedOnMap to use ReadOnlyRoots 2019-02-25 12:28:26 +00:00
test-disasm-arm64.cc Explicitly store the code layout in CodeDesc 2019-01-30 13:17:38 +00:00
test-disasm-arm.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
test-disasm-ia32.cc [logger] Untangle log.h includes 2019-01-22 10:56:52 +00:00
test-disasm-mips64.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
test-disasm-mips.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
test-disasm-ppc.cc PPC/s390: [assembler] Remove legacy constructor 2019-01-17 17:11:57 +00:00
test-disasm-s390.cc PPC/s390: [assembler] Remove legacy constructor 2019-01-17 17:11:57 +00:00
test-disasm-x64.cc [test][x64] Reenable some DisasmX64 test lines. 2019-01-28 15:15:10 +00:00
test-diy-fp.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-double.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-elements-kind.cc [objects] Adjust overly aggressive over-allocation. 2019-02-19 06:54:51 +00:00
test-extra.js [js] Remove CORE JS Natives (prologue.js), port extra utils to C++/Torque 2019-01-07 11:57:46 +00:00
test-factory.cc Move CodeDesc to dedicated file 2019-01-30 14:08:59 +00:00
test-fast-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-feedback-vector.cc [ic] Remove FeedbackNexus::StateFromFeedback() in favor of ic_state() 2019-02-13 14:52:48 +00:00
test-feedback-vector.h [objects] Merge SFI outer_scope_info and feedback_metadata 2018-04-06 15:06:04 +00:00
test-field-type-tracking.cc Constant field tracking for arrays. 2019-02-06 14:44:43 +00:00
test-fixed-dtoa.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-flags.cc [nojit] Add a few flag implications based on --jitless 2019-01-15 11:20:19 +00:00
test-func-name-inference.cc [Cleanup] String::GetChars() should take a DisallowHeapAllocation ref. 2018-12-04 16:07:46 +00:00
test-fuzz-arm64.cc Reland "Add Windows ARM64 ABI support to V8" 2018-10-24 19:46:36 +00:00
test-global-handles.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-global-object.cc [iwyu] api.h iwyu 2018-07-20 11:49:02 +00:00
test-hashcode.cc Optionally use halfsiphash for integer hashing. 2019-01-09 15:20:51 +00:00
test-hashmap.cc [ubsan] Fix various cases of undefined behavior 2019-01-10 13:52:04 +00:00
test-heap-profiler.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-icache.cc [cleanup] Fix kPointerSize in tests 2019-02-14 15:29:52 +00:00
test-identity-map.cc [objects.h splitting] Move HeapNumber to heap-number.h 2018-12-17 17:58:09 +00:00
test-inobject-slack-tracking.cc [objects] Adjust overly aggressive over-allocation. 2019-02-19 06:54:51 +00:00
test-inspector.cc [cleanup] Refactor inspector to use default members. 2018-09-18 09:13:59 +00:00
test-intl.cc Defer inferring language mode as far as possible 2019-01-25 11:53:19 +00:00
test-javascript-arm64.cc [deprecation] Deprecate ToBoolean(Local<Context>) 2018-09-24 12:02:09 +00:00
test-js-arm64-variables.cc [jumbo] arm64 cctest fixes 2017-09-30 17:17:23 +00:00
test-js-weak-refs.cc [js weak refs] Expand WeakCell::WeakCellVerify + minor fix 2019-01-31 16:50:20 +00:00
test-liveedit.cc [cleanup] Replace calls to deprecated String::Concat and ToInt32 from tests. 2018-07-24 17:30:14 +00:00
test-lockers.cc [api] Accept Extensions via unique_ptr 2019-02-01 07:15:18 +00:00
test-log-stack-tracer.cc [logger] Start cleaning up Logger class 2019-01-21 11:53:32 +00:00
test-log.cc [arm] Add missing RELATIVE_CODE_TARGET iteration 2019-01-23 10:45:50 +00:00
test-macro-assembler-arm.cc [cleanup] Remove obsolete representations. 2019-02-21 06:07:06 +00:00
test-macro-assembler-mips64.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
test-macro-assembler-mips.cc MIPS32: Fix failing build 2019-01-17 16:54:49 +00:00
test-macro-assembler-x64.cc [cleanup] Remove obsolete representations. 2019-02-21 06:07:06 +00:00
test-managed.cc Add size estimate to Managed<T> 2018-05-30 10:26:21 +00:00
test-mementos.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-modules.cc [api,modules] Allow GetModuleNamespace on unevaluated modules. 2018-01-08 09:01:25 +00:00
test-object.cc [parser] Various Scope and Context speedups 2019-01-28 13:06:03 +00:00
test-orderedhashtable.cc [dict] Add more useful methods 2019-01-07 19:39:34 +00:00
test-parsing.cc [class] Throw error when private name occurs in top level function 2019-02-20 16:16:30 +00:00
test-platform.cc s390: Edited Generate_CEntry to correctly return buffer when built with clang 2018-09-05 07:01:16 +00:00
test-poison-disasm-arm.cc [test] Add type confusion poisoning test for polymorhic access. 2018-10-10 17:57:57 +00:00
test-profile-generator.cc [profiler] Provide line-level info in streaming profiles 2019-02-11 18:11:12 +00:00
test-random-number-generator.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-regexp.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-representation.cc [cleanup] Remove obsolete representations. 2019-02-21 06:07:06 +00:00
test-roots.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-sampler-api.cc [cleanup] Refactor general tests to use default members. 2018-09-14 14:40:47 +00:00
test-serialize.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-smi-lexicographic-compare.cc [ubsan] Port Smi to the new design 2018-11-05 20:52:51 +00:00
test-strings.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-strtod.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-symbols.cc [cleanup] Remove Isolate parameter from object print 2018-07-12 11:31:57 +00:00
test-sync-primitives-arm64.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
test-sync-primitives-arm.cc [base] Introduce MutexGuard as typedef for LockGuard<Mutex> 2018-10-12 15:44:51 +00:00
test-thread-termination.cc [bigint] Add interrupt checks to slow operations 2019-01-31 20:10:36 +00:00
test-threads.cc [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
test-trace-event.cc v8: Prep for removing TRACE_EVENT_SCOPED_CONTEXT. 2019-02-21 14:59:43 +00:00
test-traced-value.cc [tracing] Escape UTF8 strings in JSON compliant form. 2018-10-31 17:46:52 +00:00
test-transitions.cc [cleanup] Move some stuff out of objects-inl.h 2019-02-09 00:34:12 +00:00
test-transitions.h [ubsan] Port Map to the new design 2018-11-13 06:59:12 +00:00
test-typedarrays.cc Remove always-true --harmony-bigint runtime flag 2018-10-01 11:31:13 +00:00
test-types.cc Add target for common test headers 2019-02-12 09:30:01 +00:00
test-unbound-queue.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-unboxed-doubles.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-unscopables-hidden-prototype.cc [api] Mark SetHiddenPrototype as DEPRECATED 2019-02-08 14:49:30 +00:00
test-unwinder.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-usecounters.cc [counters] remove "override mistake" use counters 2019-01-18 19:27:29 +00:00
test-utils-arm64.cc [iwyu] Ensure that macro assembler includes happen correctly 2018-11-16 15:52:56 +00:00
test-utils-arm64.h [iwyu] Ensure that macro assembler includes happen correctly 2018-11-16 15:52:56 +00:00
test-utils.cc [cleanup] Split off api-inl.h from api.h to make latter self contained 2018-07-23 16:03:49 +00:00
test-version.cc [build] Introduce an embedder version string 2017-10-05 07:17:45 +00:00
test-weakmaps.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-weaksets.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
testcfg.py Revert "Preparing v8 to use with python3 /test" 2019-02-20 10:20:59 +00:00
trace-extension.cc [ubsan] Port Smi to the new design 2018-11-05 20:52:51 +00:00
trace-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
unicode-helpers.cc Fix & reland "[utf8] Rewrite NewStringFromUtf8 using Utf8::ValueOfIncremental" 2019-02-06 13:11:11 +00:00
unicode-helpers.h [Parser] Add support for Zone allocated ConsumedPreParsingScopeData. 2018-09-07 10:28:40 +00:00