v8/src/builtins
Mike Stanton 61bb129f37 [CSA builtins] Fast case array iteration does unnecessary prototype walks
In ArrayBuiltinsAssembler::VisitAllFastElementsOneKind(), we enumerate
an arrays elements, carefully checking for the "hole" when required.
This code is only called for arrays whose prototype is the initial array
prototype. And the path is only available when the initial array
prototype is free of elements. Since that's the case, we only need to
verify that the initial array prototype remains free of elements during
an iteration with javascript callbacks. We don't need a body of code
that can walk the prototype chain looking for elements visible through
the "hole" value. In practice, this code was never run.

Change-Id: Iba5e275c559d495aa1cf6a4f29d66e2ce475c981
Reviewed-on: https://chromium-review.googlesource.com/1015023
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52660}
2018-04-18 07:49:25 +00:00
..
arm [wasm] Explicitly spill WasmInstanceObject in prologue. 2018-04-16 16:38:03 +00:00
arm64 [wasm] Explicitly spill WasmInstanceObject in prologue. 2018-04-16 16:38:03 +00:00
ia32 [wasm] Explicitly spill WasmInstanceObject in prologue. 2018-04-16 16:38:03 +00:00
mips [wasm] Explicitly spill WasmInstanceObject in prologue. 2018-04-16 16:38:03 +00:00
mips64 [wasm] Explicitly spill WasmInstanceObject in prologue. 2018-04-16 16:38:03 +00:00
ppc [wasm] Explicitly spill WasmInstanceObject in prologue. 2018-04-16 16:38:03 +00:00
s390 [wasm] Explicitly spill WasmInstanceObject in prologue. 2018-04-16 16:38:03 +00:00
x64 [wasm] Explicitly spill WasmInstanceObject in prologue. 2018-04-16 16:38:03 +00:00
array.tq Torque: Implement a DSL for CSA 2018-04-16 12:23:55 +00:00
base.tq Torque: Implement a DSL for CSA 2018-04-16 12:23:55 +00:00
builtins-api.cc Replace MUST_USE_RESULT by V8_WARN_UNUSED_RESULT 2018-04-09 18:37:02 +00:00
builtins-arguments-gen.cc [cleanup] Rename Word to Int32/IntPtr depending on context 2018-02-23 14:34:07 +00:00
builtins-arguments-gen.h add gn jumbo build support 2017-08-09 09:05:29 +00:00
builtins-array-gen.cc [CSA builtins] Fast case array iteration does unnecessary prototype walks 2018-04-18 07:49:25 +00:00
builtins-array-gen.h Torque: Implement a DSL for CSA 2018-04-16 12:23:55 +00:00
builtins-array.cc Check length in Array.prototype.concat. 2018-04-17 13:04:18 +00:00
builtins-arraybuffer.cc [runtime] Deduplicate the name between SFI and ScopeInfo 2018-03-16 16:49:42 +00:00
builtins-async-function-gen.cc [async-await] Turn await closures into intrinsics. 2018-02-20 06:39:01 +00:00
builtins-async-gen.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
builtins-async-gen.h [async-generators] Also avoid throwaway promise here. 2018-02-19 12:49:32 +00:00
builtins-async-generator-gen.cc [csa] Typify CSA::Select() and friends. 2018-03-27 15:44:22 +00:00
builtins-async-iterator-gen.cc [builtins] Refactor the promise resolution and rejection logic. 2018-02-13 04:18:12 +00:00
builtins-bigint.cc [builtins] Remove BigIntConstructor_ConstructStub builtin 2018-02-28 11:42:37 +00:00
builtins-boolean-gen.cc [builtins] Define interface descriptors for builtins with JSFunction linkage. 2017-03-20 12:21:30 +00:00
builtins-boolean.cc [builtins] Remove BooleanConstructor_ConstructStub builtin 2018-02-28 11:34:47 +00:00
builtins-call-gen.cc [es2015] Properly deal with fast-path results from IterableToList. 2018-03-13 07:23:57 +00:00
builtins-call-gen.h [runtime] Port SpreadCall code to CSA. 2017-06-20 11:44:02 +00:00
builtins-call.cc Reland "[builtins] Remove Builtins::Name() accessors" 2017-08-01 10:39:10 +00:00
builtins-callsite.cc [wasm] Move compilation methods to module-compiler.h 2017-09-28 13:14:26 +00:00
builtins-collections-gen.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
builtins-collections.cc [builtins] Unify the naming of the Map/Set prototype builtins. 2017-10-09 19:01:14 +00:00
builtins-console-gen.cc [iwyu] Split frame-constants.h out of frames.h to reduce transitive includes. 2017-08-03 10:12:12 +00:00
builtins-console.cc Reland^2: Remove SFI code field 2018-03-22 17:06:06 +00:00
builtins-constructor-gen.cc [objects] Rename SFI compiler_hints to flags 2018-03-27 13:15:26 +00:00
builtins-constructor-gen.h [builtins] Refactor the StringConstructor builtin 2018-03-01 15:02:44 +00:00
builtins-constructor.h Fix JSArray::kInitialMaxFastElementArray to make sense for 32-bit platforms. 2017-10-09 07:49:41 +00:00
builtins-conversion-gen.cc [csa] Typify CSA::Select() and friends. 2018-03-27 15:44:22 +00:00
builtins-dataview.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
builtins-date-gen.cc [cleanup] Remove builtin wrappers and use ThrowError helpers in CSA. 2018-02-07 16:26:27 +00:00
builtins-date.cc [builtins] Remove DateConstructor_ConstructStub builtin. 2018-02-28 12:44:07 +00:00
builtins-debug-gen.cc [debug] remove support for full-codegen. 2017-08-16 06:18:26 +00:00
builtins-definitions.h Torque: Implement a DSL for CSA 2018-04-16 12:23:55 +00:00
builtins-descriptors.h Replace Code::HANDLER by Code::BUILTIN or Code::STUB 2017-09-29 08:54:39 +00:00
builtins-error.cc [error] Add use counters for non-standard Error features 2017-11-03 18:32:02 +00:00
builtins-function-gen.cc [builtins] Fix fast path of Function.prototype.bind. 2018-04-03 17:49:05 +00:00
builtins-function.cc Remove unused runtime functions 2018-02-23 16:47:52 +00:00
builtins-generator-gen.cc [cleanup] Remove builtin wrappers and use ThrowError helpers in CSA. 2018-02-07 16:26:27 +00:00
builtins-global-gen.cc [CSA] Use IsHeapNumber helper in older CSA code 2017-06-16 12:06:18 +00:00
builtins-global.cc [refactor] Separate generated builtins and C++ builtins into separate files 2017-03-16 11:32:01 +00:00
builtins-handler-gen.cc [ic] Introduce new IC for storing into array literals. 2018-03-02 21:12:57 +00:00
builtins-ic-gen.cc [builtins] Remove unused LoadField builtin. 2018-04-11 13:57:16 +00:00
builtins-internal-gen.cc [csa][runtime] Introduce IsCustomElementsReceiverInstanceType() predicate and friends. 2018-04-12 12:14:55 +00:00
builtins-internal.cc [runtime] Create only one instance of %ThrowTypeError%. 2017-07-10 08:26:02 +00:00
builtins-interpreter-gen.cc [asm] Cleanup the various incarnations of PushThenCall/Construct 2018-03-21 12:30:37 +00:00
builtins-interpreter.cc [asm] Cleanup the various incarnations of PushThenCall/Construct 2018-03-21 12:30:37 +00:00
builtins-intl-gen.cc [csa] Switch {VariableList} to be a std::vector. 2017-11-30 15:53:17 +00:00
builtins-intl.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
builtins-intl.h [presubmit] Add include guard check 2018-02-02 16:59:32 +00:00
builtins-iterator-gen.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
builtins-iterator-gen.h [builtins] Implement Array.from in CodeStubAssembler 2018-02-09 14:01:06 +00:00
builtins-json.cc [iwyu] Remove unallowed include arguments.h -> objects-inl.h 2017-02-13 10:06:48 +00:00
builtins-math-gen.cc [cleanup] Rename Word to Int32/IntPtr depending on context 2018-02-23 14:34:07 +00:00
builtins-math-gen.h No longer desugar the exponentiation (**) operator. 2017-11-29 06:52:27 +00:00
builtins-math.cc [cleanup] Replace List with std::vector in runtime and builtins. 2017-08-25 08:14:23 +00:00
builtins-number-gen.cc [cleanup] Rename Word to Int32/IntPtr depending on context 2018-02-23 14:34:07 +00:00
builtins-number.cc [builtins] Increase precision limits for toFixed, etc 2017-07-20 13:05:35 +00:00
builtins-object-gen.cc [builtins] Implement fast path of Object.assign using CSA. 2018-04-16 02:06:46 +00:00
builtins-object.cc [builtins] Implement fast path of Object.assign using CSA. 2018-04-16 02:06:46 +00:00
builtins-promise-gen.cc [promises/deoptimizer] Support "catching" builtin continuations 2018-04-04 07:30:59 +00:00
builtins-promise-gen.h [builtins] Reduce resolve element closure overhead in Promise.all. 2018-03-22 10:55:20 +00:00
builtins-promise.cc [Promise] Move IsPromise to CPP 2017-07-17 19:55:28 +00:00
builtins-proxy-gen.cc [csa] Make use of CallBuiltin (rather than CallStub) in more places. 2018-03-05 14:34:21 +00:00
builtins-proxy-gen.h [builtins] Port Proxy.revocable() to CSA 2018-01-07 10:20:13 +00:00
builtins-reflect-gen.cc [es2015] Optimize Reflect.has builtin. 2017-10-16 17:27:41 +00:00
builtins-reflect.cc [bigint] Fix abstract equality with junk strings 2017-10-25 20:56:09 +00:00
builtins-regexp-gen.cc [builtins] Add fast paths to String.p.matchAll 2018-04-12 16:13:44 +00:00
builtins-regexp-gen.h [builtins] Add fast paths to String.p.matchAll 2018-04-12 16:13:44 +00:00
builtins-regexp.cc [refactor] Separate generated builtins and C++ builtins into separate files 2017-03-16 11:32:01 +00:00
builtins-sharedarraybuffer-gen.cc [cleanup] Rename Word to Int32/IntPtr depending on context 2018-02-23 14:34:07 +00:00
builtins-sharedarraybuffer.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
builtins-string-gen.cc [builtins] Add fast paths to String.p.matchAll 2018-04-12 16:13:44 +00:00
builtins-string-gen.h [esnext] Implement String.prototype.matchAll 2018-04-05 15:24:25 +00:00
builtins-string.cc Replace MUST_USE_RESULT by V8_WARN_UNUSED_RESULT 2018-04-09 18:37:02 +00:00
builtins-symbol-gen.cc Revert of [es2015] Precompute the descriptive string for symbols. (patchset #3 id:40001 of https://codereview.chromium.org/2900703002/ ) 2017-05-23 11:58:15 +00:00
builtins-symbol.cc [builtins] Remove SymbolConstructor_ConstructStub builtin 2018-02-28 13:49:37 +00:00
builtins-typedarray-gen.cc [typedarray] Fix ArrayBuffer creation for cross realm species 2018-04-12 08:33:43 +00:00
builtins-typedarray-gen.h [typedarray] Fix ArrayBuffer creation for cross realm species 2018-04-12 08:33:43 +00:00
builtins-typedarray.cc Reland "[bigint] Add BigInt64Array, BigUint64Array" 2018-02-19 10:23:18 +00:00
builtins-utils-gen.h [builtins] Perform stack check on entry of all TFJ builtins 2018-01-17 12:15:24 +00:00
builtins-utils.h Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
builtins-wasm-gen.cc [wasm] Remove patching of generated stack traces 2017-10-24 11:50:01 +00:00
builtins.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
builtins.h [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
constants-table-builder.cc Reland "[builtins] Load external references from the external-reference-table" 2018-03-22 12:14:30 +00:00
constants-table-builder.h Reland "[builtins] Load external references from the external-reference-table" 2018-03-22 12:14:30 +00:00
growable-fixed-array-gen.cc Add new CSA routines needed by Torque 2018-04-06 20:58:32 +00:00
growable-fixed-array-gen.h [csa] remove implicit conversions from TVariable to TNode 2018-02-09 16:42:33 +00:00
setup-builtins-internal.cc [wasm] Remove obsolete {Code::has_tagged_params} field. 2018-04-06 11:09:23 +00:00