Commit Graph

42998 Commits

Author SHA1 Message Date
Benedikt Meurer
f5f4263962 [turbofan] Simplify Map#has lowering.
We don't need an explicit diamond in JSBuiltinReducer to produce a
Boolean. The NumberEqual operator already produces a Boolean, so we
just need to negate the result.

Change-Id: I442b0d98a4ab83002757906d6cc104682b87a853
Reviewed-on: https://chromium-review.googlesource.com/707434
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48406}
2017-10-09 19:30:44 +00:00
Ulan Degenbaev
f47b32b2a3 [wasm] Fix platform initialization in test-streaming-compilation.
This ensures that platform is initialized before the isolate and
properly restores the previous platform at the end of the test.

Bug: 
Change-Id: I2771b7538362c400c5ff61411222beb7d7e62b02
Reviewed-on: https://chromium-review.googlesource.com/707111
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48405}
2017-10-09 19:25:14 +00:00
Benedikt Meurer
130cee39ef [collections] Refactor map entry lookup and make naming more consistent.
Rename the MapLookupHashIndex builtin to FindOrderedHashMapEntry and
also rename the TurboFan operators LookupHashStorageIndex and
LookupSigned32HashStorageIndex to FindOrderedHashMapEntry and
FindOrderedHashMapEntryForInt32Key respectively. This way the naming is
more consistent and it's immediately obvious from the operator name that
this operator deals with OrderedHashMaps, which wasn't clear before.

Also fix the result of the operation to be either -1 or the index of
the entry relative to the hash table start (that is, no longer eagerly
add hash table start plus value offset to the entry index). This removes
this non-foldable integer additon from TurboFan code for both Map#get
and Map#has.

Drive-by-fix: Also provide more concrete types for the
FindOrderedHashMapEntry operators.

Bug: v8:5049
Change-Id: I418d107b806f3031a52a525cffc20456dc2342db
Reviewed-on: https://chromium-review.googlesource.com/707414
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48404}
2017-10-09 19:21:54 +00:00
Benedikt Meurer
f42017e1ba [builtins] Unify the naming of the Map/Set prototype builtins.
We use the naming convention <Constructor>Prototype<Method> for builtins
that implement methods on a certain builtin constructors prototype. Fix
the collection builtins (Map and Set) to match this naming convention.

Bug: v8:5049
Change-Id: I8ced50c2ac9ebc8f4390bcbbc6aec426a0026813
Reviewed-on: https://chromium-review.googlesource.com/707318
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48403}
2017-10-09 19:01:14 +00:00
Georg Neis
5eb6717c14 [bigint] Make ToString's radix argument optional with default 10.
R=jkummerow@chromium.org

Bug: v8:6791
Change-Id: I7b3efcd0033ecb8c872342cd573f416fd22daf73
Reviewed-on: https://chromium-review.googlesource.com/707006
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48402}
2017-10-09 18:27:13 +00:00
Toon Verwaest
b2523d349b [macro-assembler] Delete unused LoadGlobalObject
Bug: 
Change-Id: I78403ce3c36f3c8276358f0bafff88131b2c7c00
Reviewed-on: https://chromium-review.googlesource.com/707316
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48401}
2017-10-09 18:14:44 +00:00
Benedikt Meurer
5bd74f3124 [turbofan] Don't leak "the hole" into the callback function.
The contract in TurboFan is that "the hole" is never passed to "user
JavaScript", which we unfortunately still don't check strictly. Now
the inlined code for Array#forEach properly checks for "the hole",
but the type of the element Node passed to the callback function
doesn't reflect that. So introduce a proper TypeGuard here to reflect
this check.

This will also improve code generation for iteration of HOLEY arrays
better and might improve performance a bit.

Bug: v8:1956
Change-Id: Ib6b3c444b16fcf44551bda1b39f976d66b9362ab
Reviewed-on: https://chromium-review.googlesource.com/705954
Reviewed-by: Daniel Clifford <danno@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48400}
2017-10-09 18:09:23 +00:00
Benedikt Meurer
4fc7d17bd1 [turbofan] Make New*Elements operator naming consistent.
We no longer use the terminology "fast elements", so drop the "Fast"
from both NewFastSmiOrObjectElements and NewFastDoubleElements operator
names.

Bug: v8:6399, v8:6901
Tbr: jarin@chromium.org
Change-Id: Icc204623f2b459b0d0e172e26ddd73e29fe6c884
Reviewed-on: https://chromium-review.googlesource.com/707246
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48399}
2017-10-09 17:59:43 +00:00
Toon Verwaest
edc219cbb8 [macro-assembler] delete unused SetCounter
Bug: 
Change-Id: I0f050d9ca57738267bcf461ac101f781a2e01fdf
Reviewed-on: https://chromium-review.googlesource.com/707148
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48398}
2017-10-09 16:57:29 +00:00
Toon Verwaest
28dc6a7293 [macro-assembler] Delete unused JumpIfNotObjectType
Bug: 
Change-Id: Ic305df479b7e059b312bb06842814b992e2ab140
Reviewed-on: https://chromium-review.googlesource.com/707147
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48397}
2017-10-09 16:20:28 +00:00
Sergiy Byelozyorov
d19f36b852 Whitespace CL to test triggered bots
TBR=machenbach@chromium.org

Bug: chromium:747960
No-Tree-Checks: true
No-Try: true
No-Presubmit: true
Change-Id: Ia2a5964e7229d08a9b88f60c609daad0f9571287
Reviewed-on: https://chromium-review.googlesource.com/707237
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48396}
2017-10-09 16:07:40 +00:00
Ulan Degenbaev
cd3209e830 [heap] Make concurrent marking tasks cancelable.
Bug: chromium:694255
Change-Id: I5c0c0b58cdcf3cf745670148724e3c6ecc34d485
Reviewed-on: https://chromium-review.googlesource.com/707149
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48395}
2017-10-09 15:58:53 +00:00
Toon Verwaest
3f02a37b22 [macro-assembler] Delete unused Increment/Decrement Counter versions
Bug: 
Change-Id: I62e95cebbc02ac867e396796f298b004f7f2ee4d
Reviewed-on: https://chromium-review.googlesource.com/707150
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48394}
2017-10-09 15:57:48 +00:00
Toon Verwaest
730a2f0864 [macro-assembler] Delete unused CheckMap/CompareMap
Bug: 
Change-Id: I8055db7268bfaca31aa2fe41d5882acd2649a9e8
Reviewed-on: https://chromium-review.googlesource.com/707143
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48393}
2017-10-09 15:36:38 +00:00
Martyn Capewell
58d9a1586f [s390] Remove stray BUILTIN_CALL_TRIPLE reference
Missed from the earlier ObjectTriple removal, commit fc41315.

Bug: 
Change-Id: I2fd9c17b4a4d888d81dc0b51586bec6f191cc7ed
Reviewed-on: https://chromium-review.googlesource.com/707138
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
Cr-Commit-Position: refs/heads/master@{#48392}
2017-10-09 15:31:39 +00:00
Toon Verwaest
ccc828c2b1 [macro-assembler] Get rid of unused PointersToHereCheck
Bug: 
Change-Id: I67a0062a5a2f5ce16f9b83e1fa7a8b91042e75c1
Reviewed-on: https://chromium-review.googlesource.com/707105
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48391}
2017-10-09 15:29:18 +00:00
Ulan Degenbaev
ed9b0f0e69 [heap] Fix a race introduced in 2e70adc7e2
The marked bytes counter needs to be updated before decrementing the
pending task counter.

Bug: chromium:694255
Change-Id: I19c4dfbdccfb32ded5b7bb707dc93d53e188e34a
Reviewed-on: https://chromium-review.googlesource.com/707140
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48390}
2017-10-09 15:02:08 +00:00
Michael Achenbach
63940282b5 [build] DEPS: Move several deps and hooks behind conditions.
Bug: chromium:772804
Change-Id: I4aa8c2661de576a3411d5547cf9e974c039281f3
Reviewed-on: https://chromium-review.googlesource.com/706995
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48389}
2017-10-09 14:56:48 +00:00
Toon Verwaest
020e0e867b [macro-assembler] Delete unused RecordWriteContextSlot
Bug: 
Change-Id: Idd2a12c9f99430de4d83543bc09cae9df1598813
Reviewed-on: https://chromium-review.googlesource.com/707071
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48388}
2017-10-09 14:50:29 +00:00
Mike Stanton
b4f249e48c [Turbofan] Specialize TransitionAndStoreElement
We can improve performance of inlined Array.prototype.map if we statically
know the type of the callback return result is a SignedSmall. Indeed,
we no longer need bother with transitioning the output array, because we
can store a SignedSmall (aka "Smi") anywhere.

Bug: v8:6896
Change-Id: I140ce9a7c15ff77d05afeda6cda58f0560d922c8
Reviewed-on: https://chromium-review.googlesource.com/707139
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48387}
2017-10-09 14:40:58 +00:00
Toon Verwaest
3baf964aeb [macro-assembler] Remove RememberedSetFinalAction since kFallThroughAtEnd is unused
Bug: 
Change-Id: I8589ea37ab776d867794125d35e1e51b16d6e9a3
Reviewed-on: https://chromium-review.googlesource.com/707068
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48386}
2017-10-09 14:12:05 +00:00
Michael Achenbach
203776545a [build] Add DEPS formatting to hyper-blame
NOTRY=true
TBR=sergiyb@chromium.org

Bug: chromium:772804
Change-Id: Ia3079f08c728febf14a413c2677cc5f20c54ba5a
Reviewed-on: https://chromium-review.googlesource.com/706793
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48385}
2017-10-09 14:08:45 +00:00
Toon Verwaest
12d333b71e [macro-assembler] Delete unused RecordWriteForMap
Bug: 
Change-Id: Ifde89f90fe18a0747f4b7b9511fbdc64df31555b
Reviewed-on: https://chromium-review.googlesource.com/707063
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48384}
2017-10-09 14:04:55 +00:00
Michael Starzinger
c34a29549f [deoptimizer] Fix JSFunction materialization instance size.
This ensures the JSFunction objects materialized by the deoptimizer have
the correct instance size (depending on the given map). There are corner
cases where the instance size might vary due to in-object properties.

R=jarin@chromium.org
TEST=mjsunit/regress/regress-crbug-772610
BUG=chromium:772610

Change-Id: I4808c7260db1adbd1cdc3871c2a946475e4934f2
Reviewed-on: https://chromium-review.googlesource.com/707109
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48383}
2017-10-09 14:01:05 +00:00
Michael Achenbach
e50b49a0e3 [build] Unify quotations in DEPS file
Bug: chromium:772804
Change-Id: I845a5ca4ff79c713eb6361ff99e4e09fe4c5c71d
Reviewed-on: https://chromium-review.googlesource.com/706792
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48382}
2017-10-09 13:58:31 +00:00
Toon Verwaest
20a47ce094 [macro-assembler] Delete unused AllocateJSValue and related functions
Bug: 
Change-Id: I315d0017179e2f0a9883647b91fd4f0a762eade0
Reviewed-on: https://chromium-review.googlesource.com/707054
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48381}
2017-10-09 13:32:21 +00:00
Ulan Degenbaev
b54c1a6ef6 [heap] Ensure that sweeping is completed in ConcurrentMarking cctests.
Bug: chromium:694255
Change-Id: I5dc6157126544f20bca0ddee967e1d08d69bb060
Reviewed-on: https://chromium-review.googlesource.com/707104
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48380}
2017-10-09 13:12:41 +00:00
Clemens Hammacher
12008bcc41 [wasm] Avoid redundant args.Length checks in js api
args[i] automatically returns undefined if i < 0 || i >= args.Length().

R=mstarzinger@chromium.org, titzer@chromium.org

Change-Id: I215545fa54ce23440f1de49b48786e568831bc82
Reviewed-on: https://chromium-review.googlesource.com/704586
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48379}
2017-10-09 12:58:21 +00:00
Michal Majewski
63dd795408 Revive stress deopt counter in turbofan
Adds the counter to x64 only.

Bug: v8:6900
Change-Id: Ia290102b38f029a0b71c40e4b00ecc5f07dfa59c
Reviewed-on: https://chromium-review.googlesource.com/704678
Commit-Queue: Michał Majewski <majeski@google.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48378}
2017-10-09 12:34:48 +00:00
Benedikt Meurer
d9f263408a [turbofan] Use word indices for NewFast*Elements lowering.
Avoid the zero-extensions required for int32 based addressing on 64-bit
architectures by restructuring the initialization loops to work on
words. This recovers a bit of the regression on the Kraken audio-fft and
audio-beat-detection benchmarks that was introduced by the initial CL.

Bug: chromium:772669, v8:6399, v8:6901
Change-Id: I4753c254be89f2bcc7b0ea5073e469e3507408bd
Reviewed-on: https://chromium-review.googlesource.com/707098
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48377}
2017-10-09 12:18:39 +00:00
Mike Stanton
475af49d81 [Turbofan] Wire loads into the effect chain
In call reductions for Array.prototype.map and forEach, loads weren't
wired appropriately into the effect chain, hampering the efficacy of
load elimination.

Bug: 
Change-Id: If5a386b66669d7173d5cadc6d8d3ff023daed810
Reviewed-on: https://chromium-review.googlesource.com/707073
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48376}
2017-10-09 12:14:48 +00:00
Michael Starzinger
bb46a592d0 [turbofan] Unify error message on non-callable callback.
R=mvstanton@chromium.org
BUG=chromium:770581
TEST=mjsunit/regress/regress-crbug-770581

Change-Id: I3a5854b6534e67da3e28d9c713830808013675b5
Reviewed-on: https://chromium-review.googlesource.com/702378
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48375}
2017-10-09 12:05:28 +00:00
Ulan Degenbaev
2e70adc7e2 [heap] Add thread-safe counter that tracks bytes marked concurrently.
Each concurrent marking task maintains task_state[i]->marked_bytes.
When a task finishes, its local counter is flushed into global
total_marked_bytes_ atomic counter.

Bug: chromium:694255
Change-Id: I629467385e80bf229e06a4231673ceb5ef8e4aea
Reviewed-on: https://chromium-review.googlesource.com/704823
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48374}
2017-10-09 12:01:18 +00:00
Clemens Hammacher
2a5dc0b3a1 [wasm] Fix JS api for more/less arguments than expected
Missing arguments are identical to undefined, and are converted to the
integer 0 by ECMAScript {ToInteger()}.
Add more tests, and enable previously disabled tests.

There is a follow-up refactoring here: https://crrev.com/c/704586

R=titzer@chromium.org, mstarzinger@chromium.org

Change-Id: I89cc259aaf5975ec2f6f51ff002e7d1b32adba5e
Reviewed-on: https://chromium-review.googlesource.com/704658
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48373}
2017-10-09 11:47:38 +00:00
Toon Verwaest
ddc5855478 [macro-assembler] Delete unused JumpIfBothInstanceTypesAreNotSequentialOneByte
Bug: 
Change-Id: Ifc46bd574801ac20f4025c84c5764311890b93da
Reviewed-on: https://chromium-review.googlesource.com/707064
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48372}
2017-10-09 11:43:03 +00:00
Toon Verwaest
0600830752 [macro-assembler] Delete unused MacroAssembler::LoadRootIndexed
Bug: 
Change-Id: Ia2b60b712c6b5d78db1ea15161da2e10282c7d87
Reviewed-on: https://chromium-review.googlesource.com/707061
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48371}
2017-10-09 11:41:58 +00:00
Michael Starzinger
f7da4d7110 [iwyu] Remove stale TODOs about objects-inl.h inclusion.
R=marja@chromium.org

Change-Id: I93a366caded175256abd7966c3c157191a2b7de2
Reviewed-on: https://chromium-review.googlesource.com/690455
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48370}
2017-10-09 11:14:59 +00:00
Martyn Capewell
fc41315820 Delete ObjectTriple and support code
ObjectTriple isn't used since f1ec44e2f5. Delete
it, and simplify CEntryStub on all backends.

Bug: 
Change-Id: I046525afceb25b484fd96c7ee81c73fb03168ca0
Reviewed-on: https://chromium-review.googlesource.com/704858
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
Cr-Commit-Position: refs/heads/master@{#48369}
2017-10-09 10:18:31 +00:00
Mike Stanton
e17f05704c [turbofan] Introduce deferred code to TransitionAndStoreElement
Bug: v8:6896
Change-Id: Ie34a4b6ff2e432dcd87a5b982d238c74001175ca
Reviewed-on: https://chromium-review.googlesource.com/704676
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48368}
2017-10-09 09:36:02 +00:00
Mike Stanton
34ed15cccf [turbofan] Improve inlining of Array.prototype.map
We can use the known ElementsKind to improve typing on the receiver
element load. We can allow multiple maps, as long as they have the
same ElementsKind.

Bug: v8:6896
Change-Id: Ida7df943f7d315454b58bcf4e0bbd2346406c488
Reviewed-on: https://chromium-review.googlesource.com/704921
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48367}
2017-10-09 09:34:11 +00:00
Tobias Tebbi
6ddb5e7da7 Reland^2 "[turbofan] eagerly prune None types and deadness from the graph"
Now, the EffectControlLinearizer connects all occurrences of Unreachable to the 
graph end. This fixes issues with later phases running DeadCodeElimination and
introducing new DeadValue nodes when processing uses of Unreachable.

This is a reland of 3c4bc27f13
Original change's description:
> Reland "[turbofan] eagerly prune None types and deadness from the graph"
> 
> This is a reland of e1cdda2512
> Original change's description:
> > [turbofan] eagerly prune None types and deadness from the graph
> > 
> > In addition to using the {Dead} node to prune dead control nodes and nodes that 
> > depend on them, we introduce a {DeadValue} node representing an impossible value 
> > that can occur at any position in the graph. The extended {DeadCodeElimination}
> > prunes {DeadValue} and its uses, inserting a crashing {Unreachable} node into
> > the effect chain when possible. The remaining uses of {DeadValue} are handled
> > in {EffectControlLinearizer}, where we always have access to the effect chain.
> > In addition to explicitly introduced {DeadValue} nodes, we consider any value use
> > of a node with type {None} as dead.
> > 
> > Bug: chromium:741225
> > Change-Id: Icc4b636d1d018c452ba1a2fa7cd3e00e522f1655
> > Reviewed-on: https://chromium-review.googlesource.com/641250
> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#48208}
> 
> Bug: chromium:741225
> Change-Id: I21316913dae02864f7a6d7c9269405a79f054138
> Reviewed-on: https://chromium-review.googlesource.com/692034
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#48232}

Bug: chromium:741225
Change-Id: I5702ec34856c075717162153adc765774453c45f
Reviewed-on: https://chromium-review.googlesource.com/702264
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48366}
2017-10-09 08:45:21 +00:00
Benedikt Meurer
bed8853908 [deoptimizer] Properly handle in-object properties on JSArrays.
The escape analysis is able to perform scalar replacement on JSArrays
with in-object properties (which currently only happens for subclasses
of the Array constructor), but the Deoptimizer didn't properly
materialized and initialized the values of the in-object fields so far.

Bug: chromium:772689, v8:6399
Change-Id: I6555a46773d2a1543db069142aa05f4337566b9c
Reviewed-on: https://chromium-review.googlesource.com/706781
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48365}
2017-10-09 08:28:51 +00:00
Benedikt Meurer
2bb704e886 Fix JSArray::kInitialMaxFastElementArray to make sense for 32-bit platforms.
Bug: chromium:772672, v8:6399
Change-Id: Ib44f5c5c2a62a8ec2cd824ba57a1af8f456853af
Reviewed-on: https://chromium-review.googlesource.com/706782
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48364}
2017-10-09 07:49:41 +00:00
Benedikt Meurer
bb793c2829 [turbofan] Remove unused LoadHashMapValue operator.
Change-Id: I22bf46718ef14450bf5c18948f70f1b9b58ae949
Reviewed-on: https://chromium-review.googlesource.com/706791
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48363}
2017-10-09 07:40:01 +00:00
Daniel Clifford
9019de3812 Add NumberAdd/NumberSub methods to CSA
These will be used in subsequent CLs to add spec-compliant builtins
on Array.prototype built with the CSA.

Change-Id: I4c9f72f90dffe018b99efdc73e9d40b3d175c2aa
Reviewed-on: https://chromium-review.googlesource.com/704115
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48362}
2017-10-09 06:24:41 +00:00
Benedikt Meurer
1aa09302a0 [turbofan] Introduce LookupSigned32HashStorageIndex specialization of Map#get.
This adds a new operator LookupSigned32HashStorageIndex, which is a
specialization of the general LookupHashStorageIndex for Map#get that
is used when TurboFan knows that the key is in Signed32 range.

This improves the execution time of the ARES6 Basic test locally by
around 5% and seems to make sense in general.

Bug: v8:6410, v8:6354, v8:6278, v8:6344
Change-Id: I78dcbc9cc855a4109e1690d8cd14fbc88fd89861
Reviewed-on: https://chromium-review.googlesource.com/706787
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48361}
2017-10-09 06:05:21 +00:00
v8-autoroll
0e3b6bea6d Update V8 DEPS.
Rolling v8/build: 58ec823..adaf9e5

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/0564bf2..a48a6af

TBR=machenbach@chromium.org,hablich@chromium.org

Change-Id: I63acc1dd6eadf94a84a72c45bb1216d92dc0874d
Reviewed-on: https://chromium-review.googlesource.com/706921
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48360}
2017-10-09 03:52:51 +00:00
Jan Krems
8e60857093 Parsing import.meta expression
Rewrites import.meta expressions into null literals. Builds on top
of- and requires dynamic import parsing to simplify the implementation.

Adds a new --harmony-import-meta flag.

BUG=v8:6693

Change-Id: Iadb7ddf6bad8986bf3ad641dbd3826fe730b5f44
Reviewed-on: https://chromium-review.googlesource.com/702678
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48359}
2017-10-09 02:47:31 +00:00
v8-autoroll
a0887ed221 Update V8 DEPS.
Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/dbe4475..0564bf2

TBR=machenbach@chromium.org,hablich@chromium.org

Change-Id: I937456820429b30e50222fc4d5e15784894f8abd
Reviewed-on: https://chromium-review.googlesource.com/706822
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48358}
2017-10-08 03:55:28 +00:00
Alexey Kozyatinskiy
8319882972 [inspector] provisional breakpoints for anonymous script
Use case: anonymous script with sourceMappingUrl. User can set
breakpoint in source with sourceUrl from sourceMap, we persist this
breakpoint in DevTools and on page reload breakpoint should be restored
correctly.

Debugger.setBreakpointByUrl method provides capabilities to set
provisional breakpoints and looks like best candidate for new "scriptHash"
argument.

I considered other options such as replacing scriptId with something
more persistent like "script-hash:script-with-this-hash-number" but it
looks more complicated and doesn't provide clear advantages.

One pager: http://bit.ly/2wkRHnt

R=pfeldman@chromium.org

Bug: chromium:459499
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I0e2833fceffe6b04afac01d1a4522d6874b6067a
Reviewed-on: https://chromium-review.googlesource.com/683597
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48357}
2017-10-07 19:08:35 +00:00