Commit Graph

42891 Commits

Author SHA1 Message Date
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
v8-autoroll
6dd1479db3 Update V8 DEPS.
Rolling v8/base/trace_event/common: 65d1d42..abcc415

Rolling v8/build: 7311b74..58ec823

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/672cabd..dbe4475

Rolling v8/tools/clang: 66be66d..b3169f9

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

Change-Id: I3c89ada442f532238f43eb0efa544b99005d3162
Reviewed-on: https://chromium-review.googlesource.com/706655
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48356}
2017-10-07 03:52:31 +00:00
Alexey Kozyatinskiy
8b1399fa94 [inspector] split DebuggerAgent::breakpointsCookie
This split is required for adding scriptHash argument.

R=dgozman@chromium.org
TBR=machenbach@chromium.org

Bug: chromium:459499
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I0266cd22be4053829af47ba445e0ddfb6b726e71
Reviewed-on: https://chromium-review.googlesource.com/703863
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48355}
2017-10-06 22:01:16 +00:00
Aseem Garg
2e62c5e916 [wasm] Add uma stat for asm.js to wasm throuput
BUG=chromium:770618
R=kschimpf@chromium.org,bradnelson@chromium.org,isherman@chromium.org

Change-Id: I33400fb277fff1e92a38753084c518f002685407
Reviewed-on: https://chromium-review.googlesource.com/704228
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Reviewed-by: Brad Nelson <bradnelson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48354}
2017-10-06 21:17:47 +00:00
Aseem Garg
70e76dae09 [wasm] Add uma stat for asm.js module size
BUG=chromium:770618
R=kschimpf@chromium.org,bradnelson@chromium.org,isherman@chromium.org

Change-Id: I953c9e7b58de0ca9ac05a9f5f64f139fcf7dd1a7
Reviewed-on: https://chromium-review.googlesource.com/703890
Reviewed-by: Aseem Garg <aseemgarg@chromium.org>
Reviewed-by: Brad Nelson <bradnelson@chromium.org>
Commit-Queue: Brad Nelson <bradnelson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48353}
2017-10-06 20:12:27 +00:00
Benedikt Meurer
d9057b55d8 [turbofan] Lower FastNew*Elements operators to inline allocations.
Further optimize the

  new Array(n)

expressions by also inlining the backing store allocation into TurboFan
optimized code. Currently these backing store allocations cannot be
eliminated by escape analysis and can also not be optimized further by
the memory optimizer (i.e. no allocation folding and not write barrier
elimination) yet, but this can be done in follow-up CLs.

This yields another ~5% improvement on the ARES6 ML benchmark (steady
state).

Drive-by-fix: Add support for loops to the GraphAssembler. This was
necessary to implement the initialization loops in for the backing
store allocations in the EffectControlLinearizer.

Bug: v8:6399, v8:6901
Change-Id: I759d6802db01eb797e78c7d82d82caaee3463e16
Reviewed-on: https://chromium-review.googlesource.com/705934
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48352}
2017-10-06 20:01:16 +00:00
Jakob Kummerow
6e84621c4e [bigint] Optimize digit_div with inline asm on ia32 and x64
The twodigit_t code path emitted a library call rather than
a hardware "div" instruction. This is because compilers are
playing it safe: "div" can overflow when the divisor is too
small. Our algorithm carefully avoids this though, so using
the hardware "div" instruction is safe.

This speeds up a microbenchmark by almost 50%.

Bug: v8:6791
Change-Id: I35a73f8acdaca24f18327fbdaf7f53c4fd450c40
Reviewed-on: https://chromium-review.googlesource.com/686002
Reviewed-by: Ben Smith <binji@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48351}
2017-10-06 18:18:19 +00:00
Eric Holk
8c88dd04fa [wasm] Make BuildCCall variadic to avoid buffer space and copies
The typical pattern for using BuildCCall was to create a stack-allocated array
of arguments, which was passed to BuildCCall. BuildCCall then would allocate
scratch space using WasmGraphBuilder::Buffer and copy the arguments into the
scratch space. This copy is unnecessary and also the use of Buffer can lead to
silently overwriting scratch space that may be used higher up the stack.

Now BuildCCall takes all of the functions parameters as arguments and stores
this directly in a stack-allocated buffer, avoiding the use of Buffer at all and
all its associated pitfalls.

Change-Id: Ia0de9a90350d7fcbbb1b05d28e735d790a5f9143
Reviewed-on: https://chromium-review.googlesource.com/701638
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Eric Holk <eholk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48350}
2017-10-06 16:16:55 +00:00