v8/test/unittests/compiler
Leszek Swirski 1a3027303b [turbofan] Never generate loop exit phis for the accumulator
The accumulator should never be alive when jumping back to a loop
header, or jumping out of a loop. This means that as far as far as
TurboFan is concerned, we never need to create Phis or LoopExitValues
for the accumulator, as its value should not escape the loop.

For safety, this also augments the IsLivenessValid DCHECK in the
liveness analysis to check that the accumulator is not live in these
cases, and amends the bytecode analysis tests to kill the accumulator
where necessary to ensure this.

As a drive-by, added some comments to the more complex bytecode analysis
tests, since figuring out what they were for and how to fix them took a
non-trivial amount of time.

Change-Id: Idecf76a36681d724134c59768650c23cc6b0e9ef
Reviewed-on: https://chromium-review.googlesource.com/615168
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#47388}
2017-08-17 05:09:31 +00:00
..
arm [iwyu|arm] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-28 13:31:30 +00:00
arm64 [iwyu|arm64] Pre-work for removing the illegal include macro-assembler.h -> assembler-inl.h 2017-03-15 12:08:50 +00:00
ia32 [cleanup] Remove return after UNREACHABLE 2017-05-22 13:10:01 +00:00
mips [compiler] Replace some MachineType by MachineRepresentation 2017-08-03 12:12:38 +00:00
mips64 [compiler] Replace some MachineType by MachineRepresentation 2017-08-03 12:12:38 +00:00
ppc Update PPC OWNERS 2015-07-27 21:37:55 +00:00
regalloc [iwyu|arm64] Pre-work for removing the illegal include macro-assembler.h -> assembler-inl.h 2017-03-15 12:08:50 +00:00
s390 S390: Initial test changes and files checkin. 2016-03-15 18:09:36 +00:00
x64 [turbofan] Enable complex memory operands for binops on ia32/x64 2017-03-13 08:50:54 +00:00
branch-elimination-unittest.cc [turbofan] Support variable size argument removal in TF-generated functions 2016-11-02 13:15:57 +00:00
bytecode-analysis-unittest.cc [turbofan] Never generate loop exit phis for the accumulator 2017-08-17 05:09:31 +00:00
checkpoint-elimination-unittest.cc [turbofan] Rename {CheckPoint} to {Checkpoint} everywhere. 2016-06-01 09:07:19 +00:00
common-operator-reducer-unittest.cc [turbofan] Do not reduce Return nodes with multiple value inputs. 2017-01-17 19:01:32 +00:00
common-operator-unittest.cc [turbofan] Remove obsolte value input to {Throw} nodes. 2017-02-27 11:23:06 +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 [turbofan] Remove IfExceptionHint from exception projections. 2016-08-02 14:49:10 +00:00
diamond-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
effect-control-linearizer-unittest.cc [turbofan] Elide redundant {IfSuccess} control projections. 2017-03-15 09:26:18 +00:00
escape-analysis-unittest.cc [turbofan] Add type to the allocation operator. 2017-04-07 08:32:12 +00:00
graph-reducer-unittest.cc [Turbofan] Fixing A/B/C test operators in unittests 2017-08-07 17:12:36 +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] Sparse representation for state values 2017-01-05 10:44:44 +00:00
graph-unittest.h [turbofan] Improve typed lowering rules for JSToBoolean. 2016-11-24 06:37:14 +00:00
instruction-selector-unittest.cc Remove compiler distinction from RegisterConfiguration. 2017-08-03 07:47:36 +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 MIPS: Reland of Fix bad RegisterConfiguration usage in InstructionSequence unit tests 2016-12-23 10:51:08 +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 [Turbofan] Add concept of FP register aliasing on ARM 32. 2016-10-26 16:04:33 +00:00
int64-lowering-unittest.cc [wasm] Move the CallDescriptor creation methods out of ModuleEnv into the compiler. 2017-06-27 15:38:52 +00:00
js-builtin-reducer-unittest.cc [TurboFan] Delete AstGraphBuilder. 2017-08-10 15:56:21 +00:00
js-create-lowering-unittest.cc [deoptimizer] Remove support for full-codegen frames. 2017-06-14 12:41:22 +00:00
js-intrinsic-lowering-unittest.cc [TurboFan] Delete AstGraphBuilder. 2017-08-10 15:56:21 +00:00
js-operator-unittest.cc [Ignition / TurboFan] Revert all StringConcat bytecode implementation. 2017-07-19 16:03:46 +00:00
js-typed-lowering-unittest.cc [turbofan] Remove obsolete LoadBuffer and StoreBuffer operators. 2017-08-11 19:17:37 +00:00
linkage-tail-call-unittest.cc Fix compilation failure when v8 compiled with GCC 5.x due to -Werror=unused-variable 2016-08-05 12:56:40 +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] Support variable size argument removal in TF-generated functions 2016-11-02 13:15:57 +00:00
machine-operator-reducer-unittest.cc [base] Consolidate IsPowerOfTwo{32,64} and IS_POWER_OF_TWO 2017-07-13 10:49:09 +00:00
machine-operator-unittest.cc [turbofan] Make Float32Neg and Float64Neg mandatory operators. 2016-08-05 18:52:05 +00:00
node-cache-unittest.cc [test] Turn compiler/test-node-cache into a unit test. 2015-04-29 14:40:05 +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 [turbofan] Remove IfExceptionHint from exception projections. 2016-08-02 14:49:10 +00:00
node-test-utils.cc [turbofan] Remove obsolete LoadBuffer and StoreBuffer operators. 2017-08-11 19:17:37 +00:00
node-test-utils.h [turbofan] Reland of Add alignment parameter to StackSlot operator 2017-05-16 12:27:56 +00:00
node-unittest.cc [turbofan] Speed up structural graph verification. 2016-07-12 09:31:12 +00:00
opcodes-unittest.cc [unittests] Reduce compilation overhead of opcodes-unittest.cc. 2016-09-13 05:16:18 +00:00
persistent-unittest.cc Reland2: [turbofan] staging new implementation of escape analysis 2017-07-31 10:01:07 +00:00
schedule-unittest.cc Model exceptional edges from call nodes in TurboFan. 2015-02-20 09:55:00 +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-operator-reducer-unittest.cc [turbofan] Let ChangeFloat64ToTagged canonicalize to Smi if possible. 2017-04-13 06:57:04 +00:00
simplified-operator-unittest.cc [turbofan] Remove obsolete LoadBuffer and StoreBuffer operators. 2017-08-11 19:17:37 +00:00
state-values-utils-unittest.cc [turbofan] Sparse representation for state values 2017-01-05 10:44:44 +00:00
typed-optimization-unittest.cc [TurboFan] Delete AstGraphBuilder. 2017-08-10 15:56:21 +00:00
typer-unittest.cc [compiler] Add yet more tests for monotonicity of typing. 2017-03-21 09:48:47 +00:00
value-numbering-reducer-unittest.cc [turbofan] Make sure value numbering only narrows types. 2016-07-14 08:10:21 +00:00
zone-stats-unittest.cc Named all zones in the project 2016-10-17 12:12:42 +00:00