v8/src/compiler
Toon Verwaest 8109b4795e [ptr-compr] Remove unnecessary decompression in kArchStoreWithWriteBarrier
The object itself is already decompressed, and we're simply re-decompressing by
nuking the upper bits through sign extension.

Additionally this CL changes the branchless decompression sequence on x64 to be
cmov-based since that's shorter and faster. It's still slower than branchful
though, so we likely won't use it.

Change-Id: Ie6f9d38fb390b7300a236bf85d0db58d1ee959b0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1701842
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62708}
2019-07-15 11:52:32 +00:00
..
backend [ptr-compr] Remove unnecessary decompression in kArchStoreWithWriteBarrier 2019-07-15 11:52:32 +00:00
access-builder.cc [turbofan] Zero-initialize BigInt padding 2019-07-12 14:38:59 +00:00
access-builder.h [turbofan] Zero-initialize BigInt padding 2019-07-12 14:38:59 +00:00
access-info.cc [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +00:00
access-info.h [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +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 [TurboFan] Verify the graph against floating effectful control 2017-11-20 12:51:13 +00:00
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 Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
bytecode-analysis.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
bytecode-graph-builder.cc [Turbofan] Brokerize tagged templates in the bytecode graph builder 2019-07-12 14:09:09 +00:00
bytecode-graph-builder.h Prefer NativeContext type over the less precise Context 2019-07-08 08:36:51 +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 [turbofan] Introduce DisallowHeapAccess helper. 2018-07-10 08:40:29 +00:00
checkpoint-elimination.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
code-assembler.cc Revert "Reland "[csa] add hint to CAST error message to break in mksnapshot"" 2019-07-12 14:02:39 +00:00
code-assembler.h Revert "Reland "[csa] add hint to CAST error message to break in mksnapshot"" 2019-07-12 14:02:39 +00:00
common-node-cache.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
common-node-cache.h [cleanup] Refactor compiler to use default members. 2018-09-17 12:12:21 +00:00
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] Disentangle header include chains 2019-07-05 14:26:05 +00:00
compilation-dependencies.h [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +00:00
compilation-dependency.h [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +00:00
compiler-source-position-table.cc [turbolizer] Add inlining information to --trace-turbo 2018-05-16 13:22:24 +00:00
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 Reland "[turbofan] Preserve order of compares in switches" 2018-03-02 12:03:42 +00:00
control-flow-optimizer.h Move remaining files in src/ 2019-05-24 18:24:36 +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] 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 [turbofan] Avoid some non-const reference arguments 2019-07-15 10:25:22 +00:00
effect-control-linearizer.cc [turbofan] Non-speculative BigInt operators 2019-07-15 08:27:47 +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 [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] LoopVariableOptimizer: use generic FunctionalList implementation 2018-02-01 15:48:09 +00:00
graph-assembler.cc [turbofan] Add optional runtime checks for range types 2019-07-12 08:32:59 +00:00
graph-assembler.h [turbofan] Add optional runtime checks for range types 2019-07-12 08:32:59 +00:00
graph-reducer.cc [cleanup] Refactor compiler to use default members. 2018-09-17 12:12:21 +00:00
graph-reducer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
graph-trimmer.cc [cleanup] Refactor compiler to use default members. 2018-09-17 12:12:21 +00:00
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 Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
graph.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
heap-refs.h [Turbofan] Brokerize tagged templates in the bytecode graph builder 2019-07-12 14:09:09 +00:00
int64-lowering.cc [turbofan] Avoid some non-const reference arguments 2019-07-15 10:25:22 +00:00
int64-lowering.h [turbofan] Avoid some non-const reference arguments 2019-07-15 10:25:22 +00:00
js-call-reducer.cc Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
js-call-reducer.h [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +00:00
js-context-specialization.cc [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +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 [csa][turbofan] Prevent large object allocations unless allowed 2019-07-09 14:30:48 +00:00
js-graph.h [csa][turbofan] Prevent large object allocations unless allowed 2019-07-09 14:30:48 +00:00
js-heap-broker.cc [Turbofan] Brokerize tagged templates in the bytecode graph builder 2019-07-12 14:09:09 +00:00
js-heap-broker.h [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +00:00
js-heap-copy-reducer.cc [modules] Introduce SourceTextModule class 2019-06-19 17:54:52 +00:00
js-heap-copy-reducer.h [turbofan] Move typer into the background. 2018-09-25 12:40:50 +00:00
js-inlining-heuristic.cc [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +00:00
js-inlining-heuristic.h [turbofan] Various cleanups/fixes in inlining heuristics 2019-07-05 12:59:11 +00:00
js-inlining.cc Prefer NativeContext type over the less precise Context 2019-07-08 08:36:51 +00:00
js-inlining.h Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +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] Disentangle header include chains 2019-07-05 14:26:05 +00:00
js-native-context-specialization.h [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +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 [turbofan] Speculative BigIntNegate 2019-07-12 14:42:49 +00:00
js-type-hint-lowering.h Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
js-typed-lowering.cc [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +00:00
js-typed-lowering.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
linkage.cc [wasm-c-api] Faster C-to-Wasm entry 2019-06-27 13:39:48 +00:00
linkage.h [wasm-c-api] Faster C-to-Wasm entry 2019-06-27 13:39:48 +00:00
load-elimination.cc [turbofan] Avoid some non-const reference arguments 2019-07-15 10:25:22 +00:00
load-elimination.h [turbofan] Avoid some non-const reference arguments 2019-07-15 10:25:22 +00:00
loop-analysis.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
loop-analysis.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
loop-peeling.cc [turbolizer] Show for each node from which node it was created from 2018-05-18 14:57:46 +00:00
loop-peeling.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
loop-variable-optimizer.cc [turbofan] Teach LoopVariableOptimizer about Number operations. 2018-09-13 12:45:15 +00:00
loop-variable-optimizer.h [turbofan] LoopVariableOptimizer: use generic FunctionalList implementation 2018-02-01 15:48:09 +00:00
machine-graph-verifier.cc Remove AbortJS opcode and builtin 2019-07-11 09:15:09 +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 Remove AbortJS opcode and builtin 2019-07-11 09:15:09 +00:00
machine-operator.h Remove AbortJS opcode and builtin 2019-07-11 09:15:09 +00:00
map-inference.cc [turbofan] Warn about InferReceiverMaps 2019-07-01 18:05:23 +00:00
map-inference.h [turbofan] Remove four direct uses of InferReceiverMaps 2019-05-03 13:35:22 +00:00
memory-optimizer.cc Remove AbortJS opcode and builtin 2019-07-11 09:15:09 +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 [wasm] Emit bytecode positions for --trace-turbo 2018-06-04 09:24:07 +00:00
node-origin-table.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
node-properties.cc [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +00:00
node-properties.h [turbofan] Warn about InferReceiverMaps 2019-07-01 18:05:23 +00:00
node.cc [gdb] Add gdb macro 'pn' that prints TurboFan nodes 2019-06-27 13:29:08 +00:00
node.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
opcodes.cc [ubsan][compiler] Avoid out-of-range casts to IrOpcode::Value 2019-01-25 20:55:25 +00:00
opcodes.h [turbofan] Non-speculative BigInt operators 2019-07-15 08:27:47 +00:00
operation-typer.cc [turbofan] Non-speculative BigInt operators 2019-07-15 08:27:47 +00:00
operation-typer.h [turbofan] Non-speculative BigInt operators 2019-07-15 08:27:47 +00:00
operator-properties.cc [async] Introduce dedicated JSAsyncFunctionObject. 2018-10-11 09:22:58 +00:00
operator-properties.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
operator.cc [turbofan] Bump control/effect input count size to 32 bits. 2017-10-25 05:11:19 +00:00
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 [Compiler] Split up Unoptimized/Optimized CompilationInfo and CompilationJobs 2018-04-04 21:09:01 +00:00
OWNERS Fix simd-scalar-lowering OWNERS to be current team members 2019-06-27 21:45:30 +00:00
per-isolate-compiler-cache.h Move relevant files to src/execution 2019-05-22 08:36:33 +00:00
persistent-map.h [presubmit] Add include guard check 2018-02-02 16:59:32 +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 Revert "[wasm] Compile JS to WASM wrappers asynchronously" 2019-07-12 14:03:51 +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 Revert "Reland "[csa] add hint to CAST error message to break in mksnapshot"" 2019-07-12 14:02:39 +00:00
raw-machine-assembler.h Revert "Reland "[csa] add hint to CAST error message to break in mksnapshot"" 2019-07-12 14:02:39 +00:00
redundancy-elimination.cc [turbofan] Push BigInt truncation over addition and heap constants 2019-07-12 09:05:29 +00:00
redundancy-elimination.h [turbofan] Eliminate redundant Smi checks around array accesses. 2018-10-07 12:00:01 +00:00
refs-map.cc [turbofan] Introduce snapshot for serialized builtins 2018-10-01 09:38:20 +00:00
refs-map.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
representation-change.cc [turbofan] Push BigInt truncation over addition and heap constants 2019-07-12 09:05:29 +00:00
representation-change.h [turbofan] Push BigInt truncation over addition and heap constants 2019-07-12 09:05:29 +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 [turbofan] Eliminate a non-const reference argument in scheduler 2019-07-15 09:31:47 +00:00
scheduler.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
select-lowering.cc [cleanup] Refactor compiler to use default members. 2018-09-17 12:12:21 +00:00
select-lowering.h [cleanup] Mark compiler methods in subclasses with override. 2018-09-17 08:51:47 +00:00
serializer-for-background-compilation.cc [Turbofan] Brokerize tagged templates in the bytecode graph builder 2019-07-12 14:09:09 +00:00
serializer-for-background-compilation.h [Turbofan] Brokerize tagged templates in the bytecode graph builder 2019-07-12 14:09:09 +00:00
simd-scalar-lowering.cc [wasm simd] Implement F64x2Splat on x64 2019-07-01 18:08:39 +00:00
simd-scalar-lowering.h [wasm simd] Implement F64x2Splat on x64 2019-07-01 18:08:39 +00:00
simplified-lowering.cc [turbofan] Non-speculative BigInt operators 2019-07-15 08:27:47 +00:00
simplified-lowering.h Store TypeCache as pointer instead of reference 2019-01-02 17:13:39 +00:00
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 [turbofan] Non-speculative BigInt operators 2019-07-15 08:27:47 +00:00
simplified-operator.h [turbofan] Non-speculative BigInt operators 2019-07-15 08:27:47 +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][cleanup] Using 'using' instead of 'typedef' 2019-03-29 13:03:30 +00:00
store-store-elimination.h
type-cache.cc v8: Fix -Wextra-semi warnings, enable warning. 2019-02-13 14:11:28 +00:00
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 [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 [turbofan] Non-speculative BigInt operators 2019-07-15 08:27:47 +00:00
typer.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
types.cc [wasm] Introduce WasmIndirectFunctionTable 2019-07-02 16:15:47 +00:00
types.h [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +00:00
value-numbering-reducer.cc [cleanup] Refactor compiler to use default members. 2018-09-17 12:12:21 +00:00
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 [turbofan] Non-speculative BigInt operators 2019-07-15 08:27:47 +00:00
verifier.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
wasm-compiler.cc Revert "[wasm] Compile JS to WASM wrappers asynchronously" 2019-07-12 14:03:51 +00:00
wasm-compiler.h [wasm] Support table.copy for multiple tables 2019-07-12 07:29:18 +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