v8/test/unittests/compiler
bmeurer a0484bc611 [compiler] Properly guard the speculative optimizations for instanceof.
Add a general feedback slot for instanceof similar to what we already have
for for-in, which basically has a fast (indicated by the uninitialized
sentinel) and a slow (indicated by the megamorphic sentinel) mode. Now
we can only take the fast path when the feedback slot says it hasn't
seen any funky inputs and nothing funky appeared in the prototype chain.
In the TurboFan code we also deoptimize whenever we see a funky object
(i.e. a proxy or an object that requires access checks) in the prototype
chain (similar to what Crankshaft already did).

Drive-by-fix: Also make Crankshaft respect the mode and therefore
address the deopt loop in Crankshaft around instanceof.

We might want to introduce an InstanceOfIC mechanism at some point and
track the map of the right-hand side.

BUG=v8:5267
R=mvstanton@chromium.org

Review-Url: https://codereview.chromium.org/2370693002
Cr-Commit-Position: refs/heads/master@{#39718}
2016-09-26 12:32:33 +00:00
..
arm [arm] Improve generation of flag setting instructions. 2016-09-05 16:18:42 +00:00
arm64 [arm64] Check sign with TBZ/TBNZ. 2016-09-22 10:24:57 +00:00
ia32 [turbofan] Remove the FloatXXSubPreserveNan operators. 2016-08-08 12:09:50 +00:00
mips MIPS: Fix compilation failures due to warnings on mips32r1 2016-09-23 13:23:52 +00:00
mips64 MIPS: Port for (fused) multiply add/subtract. 2016-09-22 08:43:04 +00:00
ppc Update PPC OWNERS 2015-07-27 21:37:55 +00:00
s390 S390: Initial test changes and files checkin. 2016-03-15 18:09:36 +00:00
x64 [turbofan/x64] Load word64 followed by a shift right 32 -> load (and sign-extend if necessary) high 32bit. 2016-08-18 11:24:56 +00:00
branch-elimination-unittest.cc [turbofan] Remove invalid typing rules. 2016-08-29 09:20:09 +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] Fold "boolean not"-like Selects into branches. 2016-09-05 07:02:36 +00:00
common-operator-unittest.cc [turbofan] Remove IfExceptionHint from exception projections. 2016-08-02 14:49:10 +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 Moved zones and zone related stuff in its own directory. 2016-09-20 16:08:07 +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] Float32Constant/Float64Constant cannot occur in JS level graph. 2016-09-01 06:27:06 +00:00
escape-analysis-unittest.cc [turbofan] Add proper type guards to escape analysis. 2016-09-23 11:02:13 +00:00
graph-reducer-unittest.cc [turbofan] Remove IfExceptionHint from exception projections. 2016-08-02 14:49:10 +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] Get rid of type lower bounds. 2015-09-16 11:55:43 +00:00
graph-unittest.h [turbofan] Do strength reduction for ObjectIsSmi based on inputs. 2016-06-08 07:13:05 +00:00
instruction-selector-unittest.cc [turbofan] Support virtual register redirection in instruction selector. 2016-09-19 08:02:46 +00:00
instruction-selector-unittest.h [turbofan] Add MachineType to LinkageLocation 2016-07-11 10:39:34 +00:00
instruction-sequence-unittest.cc [Turbofan] Revert FP register aliasing support on Arm. 2016-07-29 00:50:57 +00:00
instruction-sequence-unittest.h Replace SmartPointer<T> with unique_ptr<T> 2016-07-25 11:14:34 +00:00
int64-lowering-unittest.cc [compiler] [wasm] Introduce Word32/64ReverseBytes as TF Optional Opcode 2016-07-29 19:33:28 +00:00
js-builtin-reducer-unittest.cc [builtins] Migrate Number predicates and make them optimizable. 2016-09-07 10:14:40 +00:00
js-create-lowering-unittest.cc Store the ScopeInfo in WithContexts 2016-09-06 08:27:52 +00:00
js-intrinsic-lowering-unittest.cc [turbofan] Avoid introducing machine operators during typed lowering. 2016-07-25 10:38:00 +00:00
js-operator-unittest.cc Store the ScopeInfo in WithContexts 2016-09-06 08:27:52 +00:00
js-typed-lowering-unittest.cc [compiler] Properly guard the speculative optimizations for instanceof. 2016-09-26 12:32:33 +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
live-range-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
liveness-analyzer-unittest.cc [turbofan] Remove the JSContextRelaxation reducer. 2016-02-19 07:55:48 +00:00
load-elimination-unittest.cc [turbofan] Properly look through FinishRegion in alias analysis. 2016-09-01 10:50:27 +00:00
loop-peeling-unittest.cc [turbofan] Loop peeling with explicit loop exits. 2016-07-15 10:24:25 +00:00
machine-operator-reducer-unittest.cc [turbofan] Reduce some Float64 division to multiplication 2016-09-16 17:55:30 +00:00
machine-operator-unittest.cc [turbofan] Make Float32Neg and Float64Neg mandatory operators. 2016-08-05 18:52:05 +00:00
move-optimizer-unittest.cc [RegisterConfiguration] Streamline access to arch defaults, simplify Registers. 2016-06-27 15:31:31 +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] Support subtraction displacements in BaseWithIndexAndDisplacementMatcher 2016-07-13 08:03:38 +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] Reduce some Float64 division to multiplication 2016-09-16 17:55:30 +00:00
node-test-utils.h [turbofan] Reduce some Float64 division to multiplication 2016-09-16 17:55:30 +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
register-allocator-unittest.cc [turbofan] Retiring Greedy Allocator 2016-06-13 04:24:12 +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 [turbofan] Remove IfExceptionHint from exception projections. 2016-08-02 14:49:10 +00:00
simplified-operator-reducer-unittest.cc Revert of [turbofan] ChangeFloat64ToTagged shouldn't canonicalize. (patchset #5 id:80001 of https://codereview.chromium.org/2367593003/ ) 2016-09-23 20:17:02 +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] Move SimplifiedOperatorBuilder into JSGraph. 2015-10-16 12:38:52 +00:00
tail-call-optimization-unittest.cc [turbofan] Remove IfExceptionHint from exception projections. 2016-08-02 14:49:10 +00:00
typed-optimization-unittest.cc MIPS: Fix compilation failure for GCC5 2016-09-08 07:51:51 +00:00
typer-unittest.cc [turbofan] Simplify BinaryOperationHints and CompareOperationHints. 2016-08-09 18:12:08 +00:00
value-numbering-reducer-unittest.cc [turbofan] Make sure value numbering only narrows types. 2016-07-14 08:10:21 +00:00
zone-pool-unittest.cc Revert of Replaced different means of zone pooling/reusing by one zone segment pool (patchset #3 id:120001 of https://codereview.chromium.org/2348303002/ ) 2016-09-23 06:02:46 +00:00