v8/test/unittests/compiler
jarin e97b29a4c5 [turbofan] Add type to the allocation operator.
This gives us more precise type information, so we can avoid some type
guards to refine the type information back.

The motivation for this is to help escape analysis by not introducing
redundant type guards (which escape analysis cannot handle yet even
though it could and should do).

Motivating example:

In the example below, the out-of-object property array for properties
fld5 and fld6 gets type Any when it is created by "o.fld5 = 5" (for
object literals, we store 4 properties in-objeca, the rest goes out
of object).

When we run load elimination for the load the out-of-object property
array (to store 6 into o.fld6), load elimination inserts TypeGuard to
enforce the Type::Internal() type. This makes escape analysis bail out
on this object, and we do not eliminate the object creation.

function f() {
  var o = {};
  o.fld1 = 1;
  o.fld2 = 2;
  o.fld3 = 3;
  o.fld4 = 4;
  o.fld5 = 5;
  o.fld6 = 6;
}

f();
f();
%OptimizeFunctionOnNextCall(f);
f();

Review-Url: https://codereview.chromium.org/2797993006
Cr-Commit-Position: refs/heads/master@{#44470}
2017-04-07 08:32:12 +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 [turbofan] Enable complex memory operands for binops on ia32/x64 2017-03-13 08:50:54 +00:00
mips MIPS[64]: Implement Word[32|64]ReverseByte instruction selector unit tests 2017-01-16 10:32:23 +00:00
mips64 MIPS[64]: Implement Word[32|64]ReverseByte instruction selector unit tests 2017-01-16 10:32:23 +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 [Interpreter] Move ToBoolean elision in BytecodeGenerator. 2017-04-05 16:51:28 +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] Support variable size argument removal in TF-generated functions 2016-11-02 13:15:57 +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 [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
instruction-selector-unittest.h MIPS[64]: Port '[turbofan] Use zr to store immediate zero' 2016-11-15 11:57:28 +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] Fix interpreter entry for i64 return type 2017-03-07 18:03:08 +00:00
js-builtin-reducer-unittest.cc [turbofan] Introduce dedicated ObjectIsNaN operator. 2017-03-03 09:08:14 +00:00
js-create-lowering-unittest.cc Count closures using the feedback vector cell map, specialize if count==1. 2017-02-10 15:19:19 +00:00
js-intrinsic-lowering-unittest.cc [regexp] Remove IsRegExp intrinsic 2017-01-09 09:34:48 +00:00
js-operator-unittest.cc [turbofan] Mark {JSCreate} as potentially throwing. 2017-02-07 09:00:18 +00:00
js-typed-lowering-unittest.cc [turbofan] Handle arithmetic addition in early lowering. 2017-02-16 09:32:32 +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
liveness-analyzer-unittest.cc [turbofan] Sparse representation for state values 2017-01-05 10:44:44 +00:00
load-elimination-unittest.cc [turbofan] Add type to the allocation operator. 2017-04-07 08:32:12 +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 [turbofan] Add constant-folding for Float64RoundDown. 2017-01-04 08:29:49 +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] Introduce dedicated ObjectIsNaN operator. 2017-03-03 09:08:14 +00:00
node-test-utils.h [turbofan] Introduce dedicated ObjectIsNaN operator. 2017-03-03 09:08:14 +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
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] Add constant-folding for CheckedFloat64ToInt32. 2017-01-04 09:43:23 +00:00
simplified-operator-unittest.cc [turbofan] Introduce TruncateTaggedToBit operator for ToBoolean truncation. 2016-09-14 13:12:28 +00:00
state-values-utils-unittest.cc [turbofan] Sparse representation for state values 2017-01-05 10:44:44 +00:00
tail-call-optimization-unittest.cc [turbofan] Elide redundant {IfSuccess} control projections. 2017-03-15 09:26:18 +00:00
typed-optimization-unittest.cc [Turbofan] Introduce OtherNumberConstant. 2016-10-06 14:13:53 +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