v8/test/unittests/compiler
Peter Marshall 8622d899d8 [turbofan] Eliminate switch operations with constant input.
Where the value we are switching on is a constant, we can just look
through each IfValue case and replace the switch and go straight to
the appropriate case. If no case matches, expect and go to the
IfDefault.

For the (unrealistic) example in the linked bug, this improves
performance ~1.5x.

Bug: v8:7389
Change-Id: I7ffe209bda9ed22571ea106396b18e0bcf9a1e22
Reviewed-on: https://chromium-review.googlesource.com/893141
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51029}
2018-02-01 13:23:52 +00:00
..
arm [arm][arm64] Implement {kSpeculationFence} operator. 2018-01-29 13:43:53 +00:00
arm64 [arm][arm64] Implement {kSpeculationFence} operator. 2018-01-29 13:43:53 +00:00
ia32 [turbofan] Remove unused instruction continuation handling for stack checks. 2018-01-29 09:07:07 +00:00
mips Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
mips64 Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
ppc PPC/s390: [iwyu] Remove illegal inline include from "macro-assembler.h" 2017-09-14 12:23:51 +00:00
regalloc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
s390 PPC/s390: [iwyu] Remove illegal inline include from "macro-assembler.h" 2017-09-14 12:23:51 +00:00
x64 [turbofan] Remove unused instruction continuation handling for stack checks. 2018-01-29 09:07:07 +00:00
branch-elimination-unittest.cc Revert "[TurboFan] Diagnostic code to track down bug in representation selection" 2017-11-14 09:26:51 +00:00
bytecode-analysis-unittest.cc [Compiler] Remove isolate from CompilationInfo. 2017-11-15 15:40:55 +00:00
checkpoint-elimination-unittest.cc [turbofan] Rename {CheckPoint} to {Checkpoint} everywhere. 2016-06-01 09:07:19 +00:00
code-assembler-unittest.cc [csa] Transform multiplications into left shifts 2017-11-10 18:29:11 +00:00
code-assembler-unittest.h [csa] Add constant folding more universally to CodeAssembler operators 2017-09-12 10:03:10 +00:00
common-operator-reducer-unittest.cc [turbofan] Eliminate switch operations with constant input. 2018-02-01 13:23:52 +00:00
common-operator-unittest.cc [jumbo] add unittests jumbo support 2017-09-28 22:19:40 +00:00
compiler-test-utils.h [turbofan] Drop V8_TURBOFAN_BACKEND and V8_TURBOFAN_TARGET defines. 2015-08-10 07:17:34 +00:00
control-equivalence-unittest.cc This CL enables precise source positions for all V8 compilers. It merges compiler::SourcePosition and internal::SourcePosition to a single class used throughout the codebase. The new internal::SourcePosition instances store an id identifying an inlined function in addition to a script offset. 2016-11-14 17:22:32 +00:00
control-flow-optimizer-unittest.cc [turbofan] Move TryCloneBranch in the EffectControlLinearizer pass. 2016-07-12 15:23:36 +00:00
dead-code-elimination-unittest.cc Reland^6 "[turbofan] eagerly prune None types and deadness from the graph" 2017-11-16 20:01:22 +00:00
diamond-unittest.cc [cleanup] [compiler] Fix (D)CHECK macros 2017-09-25 10:21:34 +00:00
effect-control-linearizer-unittest.cc [compiler] Introduce a new node for array index masking. 2017-12-20 12:30:26 +00:00
graph-reducer-unittest.cc [jumbo] add unittests jumbo support 2017-09-28 22:19:40 +00:00
graph-reducer-unittest.h [turbofan] Add AdvancedReducer::ReplaceWithValue() method and convert JSInlining to an AdvancedReducer. 2015-05-12 12:41:36 +00:00
graph-trimmer-unittest.cc [turbofan] Proper dead code elimination as regular reducer. 2015-06-19 12:07:26 +00:00
graph-unittest.cc [turbofan] maintain source positions in loop peeling and polymorphic inlining 2017-12-13 09:51:46 +00:00
graph-unittest.h [turbofan] maintain source positions in loop peeling and polymorphic inlining 2017-12-13 09:51:46 +00:00
instruction-selector-unittest.cc Reland "[turbofan] disable indirect jumps in Turbofan generated switches" 2018-02-01 08:03:04 +00:00
instruction-selector-unittest.h [turbofan] Remove ToFloat64AsInt and make ToFloat64 return a Double 2017-07-14 15:01:02 +00:00
instruction-sequence-unittest.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
instruction-sequence-unittest.h MIPS: Reland of Fix bad RegisterConfiguration usage in InstructionSequence unit tests 2016-12-23 10:51:08 +00:00
instruction-unittest.cc [jumbo] add unittests jumbo support 2017-09-28 22:19:40 +00:00
int64-lowering-unittest.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
js-builtin-reducer-unittest.cc [TurboFan] Delete AstGraphBuilder. 2017-08-10 15:56:21 +00:00
js-create-lowering-unittest.cc [turbofan] Properly optimize literals in inlined functions. 2017-09-25 13:05:16 +00:00
js-intrinsic-lowering-unittest.cc [TurboFan] Broken effect chain in IsInstanceType reduction 2017-10-18 13:50:41 +00:00
js-operator-unittest.cc [TurboFan] Model TypeOf as a simplified operator 2017-10-16 19:15:00 +00:00
js-typed-lowering-unittest.cc [turbofan] Introduce a dedicated StringLength operator. 2017-11-30 06:55:06 +00:00
linkage-tail-call-unittest.cc Reland "[arm64] Preparation for padding of arguments" 2017-12-20 13:50:36 +00:00
live-range-builder.h [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
load-elimination-unittest.cc [turbofan] Fix introduction of contradicting {TypeGuard}. 2017-08-08 11:54:51 +00:00
loop-peeling-unittest.cc [turbofan] maintain source positions in loop peeling and polymorphic inlining 2017-12-13 09:51:46 +00:00
machine-operator-reducer-unittest.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
machine-operator-unittest.cc [jumbo] fix another set of unittest compilation errors 2017-10-19 09:15:44 +00:00
node-cache-unittest.cc [jumbo] add unittests jumbo support 2017-09-28 22:19:40 +00:00
node-matchers-unittest.cc [turbofan] Relax limitation for using BaseWithIndexAndDisplacement for load/stores 2017-02-24 06:38:14 +00:00
node-properties-unittest.cc [jumbo] add unittests jumbo support 2017-09-28 22:19:40 +00:00
node-test-utils.cc [Intepreter] Add poisoning to bytecode operand reads. 2018-01-29 12:56:43 +00:00
node-test-utils.h [Intepreter] Add poisoning to bytecode operand reads. 2018-01-29 12:56:43 +00:00
node-unittest.cc [jumbo] fix another set of unittest compilation errors 2017-10-19 09:15:44 +00:00
opcodes-unittest.cc [unittests] Reduce compilation overhead of opcodes-unittest.cc. 2016-09-13 05:16:18 +00:00
persistent-unittest.cc [turbofan] PersistentMap: Allow hash values larger than 32bit and some cleanup 2018-01-18 13:58:15 +00:00
schedule-unittest.cc [jumbo] fix android/windows kDummyOperator collision 2017-10-20 12:43:57 +00:00
scheduler-rpo-unittest.cc Replace SmartPointer<T> with unique_ptr<T> 2016-07-25 11:14:34 +00:00
scheduler-unittest.cc This CL enables precise source positions for all V8 compilers. It merges compiler::SourcePosition and internal::SourcePosition to a single class used throughout the codebase. The new internal::SourcePosition instances store an id identifying an inlined function in addition to a script offset. 2016-11-14 17:22:32 +00:00
simplified-lowering-unittest.cc [turbofan] Lower NumberConstant nodes to IntPtrConstant. 2018-01-15 10:46:01 +00:00
simplified-operator-reducer-unittest.cc [turbofan] Add feedback to CheckSmi 2017-12-18 15:52:38 +00:00
simplified-operator-unittest.cc [jumbo] fix another set of unittest compilation errors 2017-10-19 09:15:44 +00:00
state-values-utils-unittest.cc Enable clang's -Wunreachable-code warning. 2017-12-04 13:09:25 +00:00
typed-optimization-unittest.cc [turbofan] Remove the unused ToBooleanHints. 2017-11-20 09:42:38 +00:00
typer-unittest.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
value-numbering-reducer-unittest.cc [jumbo] fix another set of unittest compilation errors 2017-10-19 09:15:44 +00:00
zone-stats-unittest.cc Named all zones in the project 2016-10-17 12:12:42 +00:00