v8/src/compiler
Sathya Gunasekaran 1a1a9cca42 [ic] Do string to array index conversion in element loads only
Instead of changing all of TryToName to do the conversion to array
index, this patch narrows this fast path just to the element load IC
handler.

This patch also restores the HeapNumber conversion in TryToIntPtr and
in Turbofan inlining as per the original state of things.

Bug: v8:9449, chromium:1016738, chromium:1016709
Change-Id: Ibf3a2c38637fc36e0ee037dc740f273848d1e8a5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1902386
Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64896}
2019-11-11 21:02:49 +00:00
..
backend PPC/s390: [ptr-compr] Remove CompressedSigned MachineRepresentation 2019-11-11 16:04:13 +00:00
access-builder.cc [ptr-compr] Remove the DecompressionElimination Reducer 2019-11-07 11:42:45 +00:00
access-builder.h Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +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 [compiler] Fallback to slow path for any unexpected opcode in TryGetScopeInfo 2019-11-06 09:31:24 +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 [utils] Move {WhichPowerOf2} to base::bits 2019-11-08 09:45:50 +00:00
code-assembler.h [wasm] Embed CEntry builtin into wasm runtime stubs. 2019-11-04 14:06:00 +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 [turbofan] Fix concatenation in parameter printing 2019-10-22 09:05:14 +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
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 [ptr-compr] Remove the DecompressionElimination Reducer 2019-11-07 11:42:45 +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-optimizer.cc [ptr-compr] Add int comparison cases in DecompressionOptimizer 2019-11-06 14:52:09 +00:00
decompression-optimizer.h [ptr-compr] Remove the DecompressionElimination Reducer 2019-11-07 11:42:45 +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] Do string to array index conversion in element loads only 2019-11-11 21:02:49 +00:00
effect-control-linearizer.h [TurboProp] Remove the second schedule for TurboProp. 2019-10-24 10:08:35 +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] Handle bound function results in the serializer 2019-10-24 15:15:22 +00:00
globals.h Preserve feedback and speculation mode for JSCall 2019-11-04 13:22:50 +00:00
graph-assembler.cc [ptr-compr] Remove the DecompressionElimination Reducer 2019-11-07 11:42:45 +00:00
graph-assembler.h [ptr-compr] Remove Compressed mentions from in the pipeline 2019-11-11 12:23:41 +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 [turbofan] Allow for multiple re-serializations of a function 2019-10-31 14:21:09 +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 [turbofan] Add serializer support for JSCreate 2019-11-11 14:43:59 +00:00
js-call-reducer.h Preserve feedback and speculation mode for JSCall 2019-11-04 13:22:50 +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 [ptr-compr] Remove the DecompressionElimination Reducer 2019-11-07 11:42:45 +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 Reland "[compiler] Optionally apply an offset to stack checks" 2019-10-30 10:23:05 +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 [compiler] Force all calls to JS builtins to be lowered 2019-10-31 17:05:40 +00:00
js-heap-broker.h [turbofan] Allow for multiple re-serializations of a function 2019-10-31 14:21:09 +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] Allow for multiple re-serializations of a function 2019-10-31 14:21:09 +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] Allow for multiple re-serializations of a function 2019-10-31 14:21:09 +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 [ptr-compr] Remove CompressedSigned MachineRepresentation 2019-11-11 14:02:28 +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 Preserve feedback and speculation mode for JSCall 2019-11-04 13:22:50 +00:00
js-operator.h Preserve feedback and speculation mode for JSCall 2019-11-04 13:22:50 +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 Preserve feedback and speculation mode for JSCall 2019-11-04 13:22:50 +00:00
js-typed-lowering.h Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +00:00
linkage.cc [turbofan][cleanup] Fix LinkageLocation equality 2019-08-21 16:05:10 +00:00
linkage.h [turbofan][ia32] Remove call to code object via slot. 2019-10-28 10:24:11 +00:00
load-elimination.cc [ptr-compr] Remove CompressedSigned MachineRepresentation 2019-11-11 14:02:28 +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 [ptr-compr] Remove CompressedSigned MachineRepresentation 2019-11-11 14:02:28 +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 [ptr-compr] Remove Compressed mentions from in the pipeline 2019-11-11 12:23:41 +00:00
machine-operator-reducer.h [ptr-compr] Remove Compressed mentions from in the pipeline 2019-11-11 12:23:41 +00:00
machine-operator.cc [ptr-compr] Remove CompressedSigned MachineRepresentation 2019-11-11 14:02:28 +00:00
machine-operator.h [ptr-compr] Remove Compressed mentions from in the pipeline 2019-11-11 12:23:41 +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 [ptr-compr] Remove Compressed mentions from in the pipeline 2019-11-11 12:23:41 +00:00
memory-lowering.h [TurboProp] Remove the second schedule for TurboProp. 2019-10-24 10:08:35 +00:00
memory-optimizer.cc [ptr-compr] Remove Compressed mentions from in the pipeline 2019-11-11 12:23:41 +00:00
memory-optimizer.h [TurboProp] Remove the second schedule for TurboProp. 2019-10-24 10:08:35 +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 [ptr-compr] Remove Compressed mentions from in the pipeline 2019-11-11 12:23:41 +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 Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +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 [regalloc] Use an adaptive data structure for live sets 2019-11-11 08:58:49 +00:00
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] Remove the DecompressionElimination Reducer 2019-11-07 11:42:45 +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 [ptr-compr] Remove the DecompressionElimination Reducer 2019-11-07 11:42:45 +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 [turbofan][ppc] Fix CallDescriptor::NoFunctionDescriptor. 2019-10-25 11:42:30 +00:00
raw-machine-assembler.h [ptr-compr] Remove Compressed mentions from in the pipeline 2019-11-11 12:23:41 +00:00
redundancy-elimination.cc [ptr-compr] Remove Compressed mentions from in the pipeline 2019-11-11 12:23:41 +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 [ptr-compr] Remove CompressedSigned MachineRepresentation 2019-11-11 14:02:28 +00:00
representation-change.h [ptr-compr] Remove Compressed mentions from in the pipeline 2019-11-11 12:23:41 +00:00
schedule.cc [TurboProp] Have BasicBlockUpdater update successor's predecessors on AddThrow. 2019-10-28 10:38:52 +00:00
schedule.h [TurboProp] Have BasicBlockUpdater update successor's predecessors on AddThrow. 2019-10-28 10:38:52 +00:00
scheduled-machine-lowering.cc [TurboProp] Remove the second schedule for TurboProp. 2019-10-24 10:08:35 +00:00
scheduled-machine-lowering.h [TurboProp] Remove the second schedule for TurboProp. 2019-10-24 10:08:35 +00:00
scheduler.cc [TurboProp] Verify schedule after each scheduled lowering pass. 2019-10-28 16:53:19 +00:00
scheduler.h [TurboProp] Verify schedule after each scheduled lowering pass. 2019-10-28 16:53:19 +00:00
select-lowering.cc [TurboProp] Remove the second schedule for TurboProp. 2019-10-24 10:08:35 +00:00
select-lowering.h [TurboProp] Remove the second schedule for TurboProp. 2019-10-24 10:08:35 +00:00
serializer-for-background-compilation.cc [turbofan] Add serializer support for JSCreate 2019-11-11 14:43:59 +00:00
serializer-for-background-compilation.h [Turbofan] Wiser zone allocation for child serializers 2019-09-18 14:53:54 +00:00
serializer-hints.h [turbofan] Allow for multiple re-serializations of a function 2019-10-31 14:21:09 +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 [ptr-compr] Remove CompressedSigned MachineRepresentation 2019-11-11 14:02:28 +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 [ptr-compr] Remove Compressed mentions from in the pipeline 2019-11-11 12:23:41 +00:00
simplified-operator-reducer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
simplified-operator.cc [ptr-compr] Remove Compressed mentions from in the pipeline 2019-11-11 12:23:41 +00:00
simplified-operator.h [ptr-compr] Remove Compressed mentions from in the pipeline 2019-11-11 12:23:41 +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
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 x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +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 [turbofan] Don't unconditionally read heap when printing types 2019-10-30 16:31:35 +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 [ptr-compr] Remove Compressed mentions from in the pipeline 2019-11-11 12:23:41 +00:00
verifier.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
wasm-compiler.cc [wasm-simd] Implement remaining load_splat for x64 2019-11-08 18:07:33 +00:00
wasm-compiler.h [ptr-compr] Remove the DecompressionElimination Reducer 2019-11-07 11:42:45 +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