v8/src/compiler
Mike Stanton 014c977f98 [TurboFan] concurrent support to inline anonymous callback closures
TurboFan can normally inline an arrow function closure callback like:

[1, 2, 3].map(x => x * x);

The serializer has information to support this in the form of
FunctionBlueprint Hints, though it's not exploiting them. This CL
remedies that.

Bug: v8:7790
Change-Id: I8fc10f04ffc9bd2ea03cd761e8a5a41258000c76
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1863939
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64409}
2019-10-21 10:06:29 +00:00
..
backend PPC/s390: [wasm-simd] Implement v8x16.swizzle for arm 2019-10-18 23:39:36 +00:00
access-builder.cc Reland "[runtime] Remove extension slots from context objects" 2019-10-18 13:04:55 +00:00
access-builder.h Reland "[runtime] Remove extension slots from context objects" 2019-10-18 13:04:55 +00:00
access-info.cc [torque] Generate instance types 2019-10-11 22:37:22 +00:00
access-info.h Update DescriptorArray and Map to use InternalIndex 2019-10-11 14:40:43 +00:00
add-type-assertions-reducer.cc [turbofan] Add optional runtime checks for range types 2019-07-12 08:32:59 +00:00
add-type-assertions-reducer.h [turbofan] Add optional runtime checks for range types 2019-07-12 08:32:59 +00:00
all-nodes.cc
all-nodes.h
allocation-builder-inl.h [turbofan] Remove JSGraph::Constant for Handles 2019-08-28 15:36:59 +00:00
allocation-builder.h [turbofan] Remove JSGraph::Constant for Handles 2019-08-28 15:36:59 +00:00
basic-block-instrumentor.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
basic-block-instrumentor.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
branch-elimination.cc [compiler]Use Phi in Branch if control flow is known 2019-08-28 19:12:03 +00:00
branch-elimination.h [compiler]Use Phi in Branch if control flow is known 2019-08-28 19:12:03 +00:00
bytecode-analysis.cc [turbofan] Pass a read-only value by const-reference rather than pointer 2019-07-29 10:41:42 +00:00
bytecode-analysis.h [turbofan] Move bytecode analysis to the serializer 2019-07-15 12:41:57 +00:00
bytecode-graph-builder.cc [TurboFan] Prefer ProcessedFeedback over raw serialized Vector reads 2019-09-27 12:12:01 +00:00
bytecode-graph-builder.h Reland "[turbofan] Prepare for moving part of CreateGraph into the background" 2019-09-04 09:35:13 +00:00
bytecode-liveness-map.cc
bytecode-liveness-map.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
c-linkage.cc [build] Define V8_TARGET_OS_ and consider it in x64 codegen 2019-09-19 13:38:56 +00:00
checkpoint-elimination.cc
checkpoint-elimination.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
code-assembler.cc PPC: allow for calling CFunctions without function descriptors on AIX. 2019-10-17 15:54:59 +00:00
code-assembler.h PPC: allow for calling CFunctions without function descriptors on AIX. 2019-10-17 15:54:59 +00:00
common-node-cache.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
common-node-cache.h
common-operator-reducer.cc [turbofan] fix bug in CommonOperatorReducer::ReduceReturn 2019-06-25 11:00:01 +00:00
common-operator-reducer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
common-operator.cc Reland "[turbofan] Further brokerize BytecodeGraphBuilder" 2019-08-26 08:58:44 +00:00
common-operator.h Reland "[turbofan] Further brokerize BytecodeGraphBuilder" 2019-08-26 08:58:44 +00:00
compilation-dependencies.cc Update DescriptorArray and Map to use InternalIndex 2019-10-11 14:40:43 +00:00
compilation-dependencies.h Update DescriptorArray and Map to use InternalIndex 2019-10-11 14:40:43 +00:00
compilation-dependency.h [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +00:00
compiler-source-position-table.cc
compiler-source-position-table.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
constant-folding-reducer.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
constant-folding-reducer.h [turbofan] Rename "js_heap_broker" to "broker". 2018-10-15 08:17:17 +00:00
control-equivalence.cc
control-equivalence.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
control-flow-optimizer.cc [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long 2019-07-17 07:00:00 +00:00
control-flow-optimizer.h [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long 2019-07-17 07:00:00 +00:00
csa-load-elimination.cc Remove AbortJS opcode and builtin 2019-07-11 09:15:09 +00:00
csa-load-elimination.h [csa] Track stores and perform simple alias analysis in CSA Load Elimination 2019-06-18 08:46:55 +00:00
dead-code-elimination.cc Reland "[turbofan] re-wire Unreachable to the graph end at EffectPhi's" 2019-05-14 13:17:11 +00:00
dead-code-elimination.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
decompression-elimination.cc [ptr-compr] Remove overzealous operand check of Compress node 2019-10-11 13:59:15 +00:00
decompression-elimination.h [ptr-compr] Generate TaggedEqual as Word32Equal of compressed values 2019-09-26 14:56:32 +00:00
decompression-optimizer.cc [ptr-compr] Implement the DecompressionOptimizer Reducer and its phase 2019-10-17 16:02:58 +00:00
decompression-optimizer.h [ptr-compr] Implement the DecompressionOptimizer Reducer and its phase 2019-10-17 16:02:58 +00:00
DEPS [compiler] Add include guard for code-assembler.h 2019-03-18 12:40:02 +00:00
diamond.h [turbofan] Avoid some non-const reference arguments 2019-07-15 10:25:22 +00:00
effect-control-linearizer.cc [ic] KeyedLoadIC: Optimize string keys as ArrayIndex 2019-10-16 13:55:55 +00:00
effect-control-linearizer.h [ptr-compr][cleanup] Removing the optimized map checks 2019-05-28 09:39:23 +00:00
escape-analysis-reducer.cc [turbofan] Reintroduce LoadStackArgument simplified operator 2019-09-24 16:42:38 +00:00
escape-analysis-reducer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
escape-analysis.cc [turbofan] Fully brokerize JSInlining and EscapeAnalysis 2019-08-30 08:26:37 +00:00
escape-analysis.h [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long 2019-07-17 07:00:00 +00:00
feedback-source.cc Reland "[turbofan] Further brokerize BytecodeGraphBuilder" 2019-08-26 08:58:44 +00:00
feedback-source.h Reland "[turbofan] Further brokerize BytecodeGraphBuilder" 2019-08-26 08:58:44 +00:00
frame-states.cc Reland "Update GetIterator bytecode to load and call object[Symbol.iterator]" 2019-09-06 13:44:12 +00:00
frame-states.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
frame.cc [cleanup] Fix kPointerSize usages in src/compiler/ 2018-12-19 14:56:40 +00:00
frame.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
functional-list.h [turbofan] Switch serializer hints to FunctionalSet 2019-09-17 10:23:03 +00:00
graph-assembler.cc [ptr-compr][cleanup] Remove branchy decompression implementation 2019-10-04 11:57:17 +00:00
graph-assembler.h [turbofan] Rename BitcastTaggedSignedToWord to BitcastTaggedToWordForTagAndSmiBits 2019-09-11 13:46:54 +00:00
graph-reducer.cc [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long 2019-07-17 07:00:00 +00:00
graph-reducer.h [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long 2019-07-17 07:00:00 +00:00
graph-trimmer.cc
graph-trimmer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
graph-visualizer.cc Clean up deferred handle scopes 2019-09-17 11:45:55 +00:00
graph-visualizer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
graph.cc [turbofan] Protect against overflow of node id and input index field 2019-09-19 16:02:36 +00:00
graph.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
heap-refs.h Reland^2 "[runtime] Move Context::native_context to the map" 2019-10-17 17:33:08 +00:00
int64-lowering.cc [wasm-simd] Implement i64x2 splat extract replace for ia32 2019-10-16 22:48:58 +00:00
int64-lowering.h [iwyu] Add missing includes of <memory> for std::unique_ptr 2019-09-13 17:13:36 +00:00
js-call-reducer.cc Update DescriptorArray and Map to use InternalIndex 2019-10-11 14:40:43 +00:00
js-call-reducer.h Reland "[turbofan] Further brokerize BytecodeGraphBuilder" 2019-08-26 08:58:44 +00:00
js-context-specialization.cc [turbofan] Brokerize JSContextSpecialization 2019-09-12 12:32:44 +00:00
js-context-specialization.h Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
js-create-lowering.cc Reland "[runtime] Remove extension slots from context objects" 2019-10-18 13:04:55 +00:00
js-create-lowering.h [TurboFan] Prefer ProcessedFeedback over raw serialized Vector reads 2019-09-27 12:12:01 +00:00
js-generic-lowering.cc [TurboFan] Prefer ProcessedFeedback over raw serialized Vector reads 2019-09-27 12:12:01 +00:00
js-generic-lowering.h [turbofan] Brokerize JSGenericLowering 2019-08-21 16:06:49 +00:00
js-graph.cc [turbofan] Remove JSGraph::Constant for Handles 2019-08-28 15:36:59 +00:00
js-graph.h [turbofan] Remove JSGraph::Constant for Handles 2019-08-28 15:36:59 +00:00
js-heap-broker.cc Reland^2 "[runtime] Move Context::native_context to the map" 2019-10-17 17:33:08 +00:00
js-heap-broker.h [turbofan] Analysis of the broker Refs distribution 2019-10-14 08:10:05 +00:00
js-heap-copy-reducer.cc [TurboFan] Prefer ProcessedFeedback over raw serialized Vector reads 2019-09-27 12:12:01 +00:00
js-heap-copy-reducer.h
js-inlining-heuristic.cc [turbofan] Remove misleading broker message 2019-10-18 12:12:03 +00:00
js-inlining-heuristic.h [turbofan] Various cleanups/fixes in inlining heuristics 2019-07-05 12:59:11 +00:00
js-inlining.cc [turbofan] Improve broker tracing wrt. function inlining 2019-09-26 19:11:47 +00:00
js-inlining.h [turbofan] Eliminate more non-const reference arguments 2019-07-26 09:33:08 +00:00
js-intrinsic-lowering.cc Reland "[turbofan] Further brokerize BytecodeGraphBuilder" 2019-08-26 08:58:44 +00:00
js-intrinsic-lowering.h [turbofan] Remove a heap access from JSIntrinsicLowering 2019-08-21 15:31:44 +00:00
js-native-context-specialization.cc Reland^2 "[runtime] Move Context::native_context to the map" 2019-10-17 17:33:08 +00:00
js-native-context-specialization.h Reland^2 "[runtime] Move Context::native_context to the map" 2019-10-17 17:33:08 +00:00
js-operator.cc [TurboFan] Prefer ProcessedFeedback over raw serialized Vector reads 2019-09-27 12:12:01 +00:00
js-operator.h [TurboFan] Prefer ProcessedFeedback over raw serialized Vector reads 2019-09-27 12:12:01 +00:00
js-type-hint-lowering.cc Reland "Update GetIterator bytecode to load and call object[Symbol.iterator]" 2019-09-06 13:44:12 +00:00
js-type-hint-lowering.h Reland "Update GetIterator bytecode to load and call object[Symbol.iterator]" 2019-09-06 13:44:12 +00:00
js-typed-lowering.cc [protectors] Cleanup protector statics on isolate 2019-10-01 16:06:00 +00:00
js-typed-lowering.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
linkage.cc [turbofan][cleanup] Fix LinkageLocation equality 2019-08-21 16:05:10 +00:00
linkage.h PPC: allow for calling CFunctions without function descriptors on AIX. 2019-10-17 15:54:59 +00:00
load-elimination.cc [turbofan] disable load-elimination overlapping fields check in release mode 2019-09-16 14:01:24 +00:00
load-elimination.h [turbofan] Relax double const store invariant in load elim. for literals 2019-08-23 17:10:48 +00:00
loop-analysis.cc [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long 2019-07-17 07:00:00 +00:00
loop-analysis.h [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long 2019-07-17 07:00:00 +00:00
loop-peeling.cc
loop-peeling.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
loop-variable-optimizer.cc
loop-variable-optimizer.h
machine-graph-verifier.cc [torque] allow untagged builtin parameters 2019-10-07 22:32:44 +00:00
machine-graph-verifier.h
machine-graph.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
machine-graph.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
machine-operator-reducer.cc [turbofan] Rename BitcastTaggedSignedToWord to BitcastTaggedToWordForTagAndSmiBits 2019-09-11 13:46:54 +00:00
machine-operator-reducer.h [ptr-compr][turbofan] Bitcasting between Word32 and CompressedSigned 2019-08-13 14:23:47 +00:00
machine-operator.cc Reland "[wasm-simd] Implement F64x2ConvertI64x2 for x64" 2019-10-17 23:22:47 +00:00
machine-operator.h Reland "[wasm-simd] Implement F64x2ConvertI64x2 for x64" 2019-10-17 23:22:47 +00:00
map-inference.cc Reland "[turbofan] Further brokerize BytecodeGraphBuilder" 2019-08-26 08:58:44 +00:00
map-inference.h Reland "[turbofan] Further brokerize BytecodeGraphBuilder" 2019-08-26 08:58:44 +00:00
memory-lowering.cc [TurboProp] Split out MemoryLowering from MemoryOptimizer 2019-09-25 11:16:03 +00:00
memory-lowering.h [TurboProp] Split out MemoryLowering from MemoryOptimizer 2019-09-25 11:16:03 +00:00
memory-optimizer.cc [TurboProp] Split out MemoryLowering from MemoryOptimizer 2019-09-25 11:16:03 +00:00
memory-optimizer.h [TurboProp] Split out MemoryLowering from MemoryOptimizer 2019-09-25 11:16:03 +00:00
node-aux-data.h [compiler][cleanup] Using 'using' instead of 'typedef' 2019-03-29 13:03:30 +00:00
node-cache.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
node-cache.h [compiler][cleanup] Using 'using' instead of 'typedef' 2019-03-29 13:03:30 +00:00
node-marker.cc
node-marker.h
node-matchers.cc
node-matchers.h [ptr-compr][turbofan][x64] Improve comparisons with compressed heap objects 2019-10-07 14:02:22 +00:00
node-origin-table.cc
node-origin-table.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
node-properties.cc [turbofan] Fully brokerize JSInlining and EscapeAnalysis 2019-08-30 08:26:37 +00:00
node-properties.h [turbofan] Warn about InferReceiverMaps 2019-07-01 18:05:23 +00:00
node.cc [turbofan] Protect against overflow of node id and input index field 2019-09-19 16:02:36 +00:00
node.h [turbofan] Improve a comment 2019-09-23 15:17:21 +00:00
opcodes.cc [ubsan][compiler] Avoid out-of-range casts to IrOpcode::Value 2019-01-25 20:55:25 +00:00
opcodes.h Reland "[wasm-simd] Implement F64x2ConvertI64x2 for x64" 2019-10-17 23:22:47 +00:00
operation-typer.cc [ic] KeyedLoadIC: Optimize string keys as ArrayIndex 2019-10-16 13:55:55 +00:00
operation-typer.h [turbofan] Non-speculative BigInt operators 2019-07-15 08:27:47 +00:00
operator-properties.cc [TurboFan] Prefer ProcessedFeedback over raw serialized Vector reads 2019-09-27 12:12:01 +00:00
operator-properties.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
operator.cc
operator.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
osr.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
osr.h
OWNERS Add jgruber@chromium.org as a compiler owner. 2019-09-26 09:54:37 +00:00
per-isolate-compiler-cache.h [turbofan] Clean up heap broker initialization 2019-08-30 10:19:20 +00:00
persistent-map.h
pipeline-statistics.cc [cleanup] Avoid {Object::operator->} 2019-05-23 07:52:07 +00:00
pipeline-statistics.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
pipeline.cc [ptr-compr] Implement the DecompressionOptimizer Reducer and its phase 2019-10-17 16:02:58 +00:00
pipeline.h [iwyu] Add missing includes of <memory> for std::unique_ptr 2019-09-13 17:13:36 +00:00
processed-feedback.h [TurboFan] Prefer ProcessedFeedback over raw serialized Vector reads 2019-09-27 12:12:01 +00:00
property-access-builder.cc Reland "[turbofan] Further brokerize BytecodeGraphBuilder" 2019-08-26 08:58:44 +00:00
property-access-builder.h Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
raw-machine-assembler.cc PPC: allow for calling CFunctions without function descriptors on AIX. 2019-10-17 15:54:59 +00:00
raw-machine-assembler.h PPC: allow for calling CFunctions without function descriptors on AIX. 2019-10-17 15:54:59 +00:00
redundancy-elimination.cc [ic] KeyedLoadIC: Optimize string keys as ArrayIndex 2019-10-16 13:55:55 +00:00
redundancy-elimination.h
refs-map.cc
refs-map.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
representation-change.cc [ic] KeyedLoadIC: Optimize string keys as ArrayIndex 2019-10-16 13:55:55 +00:00
representation-change.h [ic] KeyedLoadIC: Optimize string keys as ArrayIndex 2019-10-16 13:55:55 +00:00
schedule.cc [turbofan] Simplify handling of calls with saved registers. 2019-08-01 08:59:15 +00:00
schedule.h [csa] block cloning to optimize branch on phi 2019-07-30 10:30:29 +00:00
scheduler.cc [base] Implement {Reversed} using {rbegin} and {rend} 2019-09-12 08:38:59 +00:00
scheduler.h [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long 2019-07-17 07:00:00 +00:00
select-lowering.cc [TurboProp] Use GraphAssembler for all Select and Effect-Control lowerings. 2019-10-01 19:57:14 +00:00
select-lowering.h [TurboProp] Use GraphAssembler for all Select and Effect-Control lowerings. 2019-10-01 19:57:14 +00:00
serializer-for-background-compilation.cc [TurboFan] concurrent support to inline anonymous callback closures 2019-10-21 10:06:29 +00:00
serializer-for-background-compilation.h [Turbofan] Wiser zone allocation for child serializers 2019-09-18 14:53:54 +00:00
simd-scalar-lowering.cc [wasm-simd] Implement v8x16.swizzle for x64 2019-10-09 19:37:52 +00:00
simd-scalar-lowering.h [wasm simd] Implement F64x2Splat on x64 2019-07-01 18:08:39 +00:00
simplified-lowering.cc [ic] KeyedLoadIC: Optimize string keys as ArrayIndex 2019-10-16 13:55:55 +00:00
simplified-lowering.h [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long 2019-07-17 07:00:00 +00:00
simplified-operator-reducer.cc [ic] KeyedLoadIC: Optimize string keys as ArrayIndex 2019-10-16 13:55:55 +00:00
simplified-operator-reducer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
simplified-operator.cc [ic] KeyedLoadIC: Optimize string keys as ArrayIndex 2019-10-16 13:55:55 +00:00
simplified-operator.h [ic] KeyedLoadIC: Optimize string keys as ArrayIndex 2019-10-16 13:55:55 +00:00
state-values-utils.cc [turbofan] Make a non-const reference argument const 2019-07-15 09:33:07 +00:00
state-values-utils.h [turbofan] Make a non-const reference argument const 2019-07-15 09:33:07 +00:00
store-store-elimination.cc [compiler] Use PersistentMap in store-store elimination 2019-09-17 07:22:10 +00:00
store-store-elimination.h [compiler] Remove implementation details from store-store header 2019-09-05 07:59:20 +00:00
type-cache.cc v8: Fix -Wextra-semi warnings, enable warning. 2019-02-13 14:11:28 +00:00
type-cache.h [ic] KeyedLoadIC: Optimize string keys as ArrayIndex 2019-10-16 13:55:55 +00:00
type-narrowing-reducer.cc [cleanup] Remove unnecessary include 2019-02-26 15:54:51 +00:00
type-narrowing-reducer.h [turbofan] Rename "js_heap_broker" to "broker". 2018-10-15 08:17:17 +00:00
typed-optimization.cc [turbofan] Disable TypedOptimization for loop-related Phi nodes 2019-07-03 15:29:01 +00:00
typed-optimization.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
typer.cc Reland^2 "[runtime] Move Context::native_context to the map" 2019-10-17 17:33:08 +00:00
typer.h [turbofan] introduce a deterministic tick measurement and assert optimization doesn't take too long 2019-07-17 07:00:00 +00:00
types.cc [torque] Generate instance types 2019-10-11 22:37:22 +00:00
types.h [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +00:00
value-numbering-reducer.cc
value-numbering-reducer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
verifier.cc [ic] KeyedLoadIC: Optimize string keys as ArrayIndex 2019-10-16 13:55:55 +00:00
verifier.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
wasm-compiler.cc Reland "[wasm-simd] Implement F64x2ConvertI64x2 for x64" 2019-10-17 23:22:47 +00:00
wasm-compiler.h [wasm] Remove deprecated {WasmGraphBuilder::Buffer}. 2019-10-15 09:33:53 +00:00
write-barrier-kind.h Reland: [csa] verify skipped write-barriers in MemoryOptimizer 2019-05-15 11:46:30 +00:00
zone-stats.cc
zone-stats.h [Turbofan] Wiser zone allocation for child serializers 2019-09-18 14:53:54 +00:00