v8/src/compiler
Georg Schmid eaf2a23bc7 [objects] Migrate kHoleNanInt64 unboxed doubles to uninitialized values during boilerplate serialization
Boilerplate values may possess an unboxed double field filled with the kHoleNan64Int sentinel value, which indicates that the field is uninitialized. When a boilerplate value migrates away from the unboxed double representation to a tagged one, we should replace the sentinel value by the proper uninitialized oddball value.

This fixes an issue with JSCreateLowering::AllocateFastLiteral not detecting const stores of uninitialized values properly.

R=bmeurer@chromium.org, jarin@chromium.org

Bug: chromium:976598
Change-Id: I6bb216c0618a3105e6c8cfc04b1900d2f83a52ce
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1674034
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Georg Schmid <gsps@google.com>
Cr-Commit-Position: refs/heads/master@{#62394}
2019-06-26 15:51:39 +00:00
..
backend [codegen] Swap using xchgq rather than three movq on x64 2019-06-26 14:11:30 +00:00
access-builder.cc [objects] Rename JSValue to JSPrimitiveWrapper 2019-06-24 13:54:38 +00:00
access-builder.h [objects] Rename JSValue to JSPrimitiveWrapper 2019-06-24 13:54:38 +00:00
access-info.cc [turbofan] Remove most remaining heap accesses from property loads 2019-06-21 12:10:28 +00:00
access-info.h [turbofan] Remove most remaining heap accesses from property loads 2019-06-21 12:10:28 +00:00
all-nodes.cc
all-nodes.h
allocation-builder-inl.h Retire PretenureFlag and use AllocationType everywhere. 2019-03-12 08:10:44 +00:00
allocation-builder.h Retire PretenureFlag and use AllocationType everywhere. 2019-03-12 08:10:44 +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 [turbofan] Check for dead control in branch elimination. 2019-03-11 06:30:00 +00:00
branch-elimination.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
bytecode-analysis.cc Introduce bytecode array abstraction. 2019-06-19 06:15:19 +00:00
bytecode-analysis.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
bytecode-graph-builder.cc Handlify bytecode array accessor's constant getters. 2019-06-17 16:13:30 +00:00
bytecode-graph-builder.h Move utility code to src/utils 2019-05-23 14:13:34 +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 Move code generation related files to src/codegen 2019-05-21 10:33:39 +00:00
checkpoint-elimination.cc
checkpoint-elimination.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
code-assembler.cc Reland "[csa] add hint to CAST error message to break in mksnapshot" 2019-06-25 11:11:01 +00:00
code-assembler.h Reland "[csa] add hint to CAST error message to break in mksnapshot" 2019-06-25 11:11:01 +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 [ptr-compr][turbofan][CSA] Adding the CompressedHeapConstant node 2019-05-31 15:11:20 +00:00
common-operator.h [ptr-compr][turbofan][CSA] Adding the CompressedHeapConstant node 2019-05-31 15:11:20 +00:00
compilation-dependencies.cc [turbofan] Remove most remaining heap accesses from property loads 2019-06-21 12:10:28 +00:00
compilation-dependencies.h Move more relevant files to src/objects 2019-05-23 08:52:30 +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
control-flow-optimizer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
csa-load-elimination.cc [csa] Track stores and perform simple alias analysis in CSA Load Elimination 2019-06-18 08:46:55 +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] Extend Decompression Elimination to Compress/Decompress pairs 2019-06-18 14:30:04 +00:00
decompression-elimination.h [cleanup][ptr-compr][turbofan] DecompressionElimination test cleanup 2019-06-24 21:35:06 +00:00
DEPS [compiler] Add include guard for code-assembler.h 2019-03-18 12:40:02 +00:00
diamond.h
effect-control-linearizer.cc Reland "[TurboFan] Fast path for JSAdd with BigInt feedback" 2019-06-26 12:41:57 +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 Move relevant files to src/execution 2019-05-22 08:36:33 +00:00
escape-analysis-reducer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
escape-analysis.cc [turbofan] fix escape analysis bug: revisit phis 2019-06-18 12:10:46 +00:00
escape-analysis.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
frame-states.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
frame-states.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
frame.cc
frame.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
functional-list.h
graph-assembler.cc Add BitcastTaggedSignedToWord operator 2019-06-06 15:32:58 +00:00
graph-assembler.h Add BitcastTaggedSignedToWord operator 2019-06-06 15:32:58 +00:00
graph-reducer.cc
graph-reducer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
graph-trimmer.cc
graph-trimmer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
graph-visualizer.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
graph-visualizer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
graph.cc
graph.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
int64-lowering.cc [wasm] Fix Int64-lowering to handle non-const index for I64Atomic ops 2019-04-11 21:10:40 +00:00
int64-lowering.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
js-call-reducer.cc [Turbofan] Promise brokerization improvement 2019-06-26 13:07:55 +00:00
js-call-reducer.h [Turbofan] Fix crash in MapInference::~MapInference 2019-06-19 06:53:38 +00:00
js-context-specialization.cc [TurboFan] Serializing context information 2019-06-26 08:25:53 +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 [torque] Stricter object field verification, part 2 2019-06-17 18:34:21 +00:00
js-create-lowering.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
js-generic-lowering.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
js-generic-lowering.h Move code generation related files to src/codegen 2019-05-21 10:33:39 +00:00
js-graph.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
js-graph.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
js-heap-broker.cc [objects] Migrate kHoleNanInt64 unboxed doubles to uninitialized values during boilerplate serialization 2019-06-26 15:51:39 +00:00
js-heap-broker.h [Turbofan] Promise brokerization improvement 2019-06-26 13:07:55 +00:00
js-heap-copy-reducer.cc [modules] Introduce SourceTextModule class 2019-06-19 17:54:52 +00:00
js-heap-copy-reducer.h
js-inlining-heuristic.cc [turbofan] Small cleanup on JSInliningHeuristic 2019-06-13 19:05:19 +00:00
js-inlining-heuristic.h [turbofan] Bailout from polymorphic inlining if target becomes monomorphic. 2019-05-24 09:03:52 +00:00
js-inlining.cc ppc64, aix: Pass CallFrequency object by const reference to avoid value copy error. 2019-06-13 12:20:53 +00:00
js-inlining.h [turbofan] Brokerize JSInliner 2019-05-09 15:37:33 +00:00
js-intrinsic-lowering.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
js-intrinsic-lowering.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
js-native-context-specialization.cc [turbofan] Serialize API calls for property access 2019-06-24 16:07:51 +00:00
js-native-context-specialization.h [turbofan] Fix call of ReduceElementAccessOnString 2019-06-24 11:17:33 +00:00
js-operator.cc ppc64, aix: Pass CallFrequency object by const reference to avoid value copy error. 2019-06-13 12:20:53 +00:00
js-operator.h ppc64, aix: Pass CallFrequency object by const reference to avoid value copy error. 2019-06-13 12:20:53 +00:00
js-type-hint-lowering.cc Reland "[TurboFan] Fast path for JSAdd with BigInt feedback" 2019-06-26 12:41:57 +00:00
js-type-hint-lowering.h Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
js-typed-lowering.cc [modules] Introduce SourceTextModule class 2019-06-19 17:54:52 +00:00
js-typed-lowering.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
linkage.cc [wasm-c-api] New call descriptor and stackframe kind 2019-05-29 11:22:23 +00:00
linkage.h [wasm-c-api] New call descriptor and stackframe kind 2019-05-29 11:22:23 +00:00
load-elimination.cc Re-enable double const store check under v8_enable_test_features flag 2019-06-11 14:56:15 +00:00
load-elimination.h Track and check representations in load elimination 2019-05-27 10:28:24 +00:00
loop-analysis.cc
loop-analysis.h Move remaining files in src/ 2019-05-24 18:24:36 +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] Revisit transformed Phis in Decompression Elimination 2019-06-07 15:52:48 +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] Extend BitcastTaggedToWord(BitcastWordToTaggedSigned(...)) elimination to BitcastTaggedSignedToWord 2019-06-12 12:36:52 +00:00
machine-operator-reducer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
machine-operator.cc Reland "[cleanup] Add operator parameter accessor for S8x16Shuffle" 2019-06-14 14:27:13 +00:00
machine-operator.h Reland "[cleanup] Add operator parameter accessor for S8x16Shuffle" 2019-06-14 14:27:13 +00:00
map-inference.cc [Turbofan] Brokerize the map inference class 2019-06-13 12:55:22 +00:00
map-inference.h [turbofan] Remove four direct uses of InferReceiverMaps 2019-05-03 13:35:22 +00:00
memory-optimizer.cc Reland "[csa] Tweak CSA pipeline to eliminate more redundant checks" 2019-06-17 09:40:29 +00:00
memory-optimizer.h Add LoadFromObject and StoreToObject nodes, injected via Torque 2019-05-28 14:09:25 +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 [turbofan] Restrict add folding 2019-05-28 09:12:23 +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 Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
node-properties.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
node.cc [turbofan] Check node inputs for nullptr even in release builds 2019-05-02 12:44:59 +00:00
node.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
opcodes.cc
opcodes.h Reland "[TurboFan] Fast path for JSAdd with BigInt feedback" 2019-06-26 12:41:57 +00:00
operation-typer.cc Reland "[TurboFan] Fast path for JSAdd with BigInt feedback" 2019-06-26 12:41:57 +00:00
operation-typer.h Reland "[TurboFan] Fast path for JSAdd with BigInt feedback" 2019-06-26 12:41:57 +00:00
operator-properties.cc
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 Remove 'set noparent' from OWNERS files where reasonable 2019-06-03 10:18:22 +00:00
per-isolate-compiler-cache.h Move relevant files to src/execution 2019-05-22 08:36:33 +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 [wasm] Parallelize JS to WASM wrapper compilation 2019-06-18 15:00:05 +00:00
pipeline.h [wasm] Parallelize JS to WASM wrapper compilation 2019-06-18 15:00:05 +00:00
property-access-builder.cc [turbofan] Remove most remaining heap accesses from property loads 2019-06-21 12:10:28 +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 Reland "[csa] add hint to CAST error message to break in mksnapshot" 2019-06-25 11:11:01 +00:00
raw-machine-assembler.h Reland "[csa] add hint to CAST error message to break in mksnapshot" 2019-06-25 11:11:01 +00:00
redundancy-elimination.cc Reland "[TurboFan] Fast path for JSAdd with BigInt feedback" 2019-06-26 12:41:57 +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 Reland "[TurboFan] Fast path for JSAdd with BigInt feedback" 2019-06-26 12:41:57 +00:00
representation-change.h Reland "[TurboFan] Fast path for JSAdd with BigInt feedback" 2019-06-26 12:41:57 +00:00
schedule.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
schedule.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
scheduler.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
scheduler.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
select-lowering.cc
select-lowering.h
serializer-for-background-compilation.cc [Turbofan] Promise brokerization improvement 2019-06-26 13:07:55 +00:00
serializer-for-background-compilation.h [TurboFan] Serializing context information 2019-06-26 08:25:53 +00:00
simd-scalar-lowering.cc Reland "[cleanup] Add operator parameter accessor for S8x16Shuffle" 2019-06-14 14:27:13 +00:00
simd-scalar-lowering.h
simplified-lowering.cc Reland "[TurboFan] Fast path for JSAdd with BigInt feedback" 2019-06-26 12:41:57 +00:00
simplified-lowering.h
simplified-operator-reducer.cc Move number related files to src/numbers 2019-05-15 19:34:44 +00:00
simplified-operator-reducer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
simplified-operator.cc Reland "[TurboFan] Fast path for JSAdd with BigInt feedback" 2019-06-26 12:41:57 +00:00
simplified-operator.h Reland "[TurboFan] Fast path for JSAdd with BigInt feedback" 2019-06-26 12:41:57 +00:00
state-values-utils.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
state-values-utils.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
store-store-elimination.cc [compiler][cleanup] Using 'using' instead of 'typedef' 2019-03-29 13:03:30 +00:00
store-store-elimination.h
type-cache.cc
type-cache.h Move date-related files 2019-05-15 13:39:34 +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 Move relevant files to src/execution 2019-05-22 08:36:33 +00:00
typed-optimization.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
typer.cc Reland "[TurboFan] Fast path for JSAdd with BigInt feedback" 2019-06-26 12:41:57 +00:00
typer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
types.cc [objects] Rename JSValue to JSPrimitiveWrapper 2019-06-24 13:54:38 +00:00
types.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
value-numbering-reducer.cc
value-numbering-reducer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
vector-slot-pair.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
vector-slot-pair.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
verifier.cc Reland "[TurboFan] Fast path for JSAdd with BigInt feedback" 2019-06-26 12:41:57 +00:00
verifier.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
wasm-compiler.cc [wasm] Parallelize JS to WASM wrapper compilation 2019-06-18 15:00:05 +00:00
wasm-compiler.h [wasm] Parallelize JS to WASM wrapper compilation 2019-06-18 15:00:05 +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 Move remaining files in src/ 2019-05-24 18:24:36 +00:00