Commit Graph

52194 Commits

Author SHA1 Message Date
Jakob Kummerow
ad0afdae9f [ubsan] Duplicate FixedArray{,Base} temporarily
In preparation for incrementally migrating subclasses to deriving
from FixedArrayPtr/FixedArrayBasePtr. Once that is done for all
subclasses, this duplication will be dropped again.

Bug: v8:3770
Change-Id: I6d664997fdcb18f7c0f37183d9f920ae30f3b749
Reviewed-on: https://chromium-review.googlesource.com/c/1345325
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57702}
2018-11-21 19:43:57 +00:00
Sigurd Schneider
a119ed63f6 [arm] Remove 64bit constant pool support
We haven't put 64bit constants in the constant pool for a while. This
CL removes the support, simplifying the implementation.

Change-Id: I2c8972ea74dc71ccd5c9d333947d681dad2ea6c0
Bug: v8:8054
Reviewed-on: https://chromium-review.googlesource.com/c/1346109
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57701}
2018-11-21 18:57:04 +00:00
Junliang Yan
039d408101 PPC: temp fix for constant pool sharing issue
Sharing WasmCall/StubCall will lead to relocation
being processed more than once in NativeModule::AddCode
for wasm.

R=joransiu@ca.ibm.com

Change-Id: I88d9a1a956fe36ef81e0a4c61d7dedf868bdf9a3
Reviewed-on: https://chromium-review.googlesource.com/c/1344510
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#57700}
2018-11-21 18:55:59 +00:00
Toon Verwaest
260074aca4 [parser] Inline checking part of CheckAndRewriteReferenceExpression
Change-Id: I50320af8484f247656b79beb3195f371635f6797
Reviewed-on: https://chromium-review.googlesource.com/c/1346495
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57699}
2018-11-21 18:54:54 +00:00
Junliang Yan
ccd91026df PPC/s390: Print readable register names
Port de2681c1a8

Original Commit Message:

    This adds a {PrintRegister} method which prints the given register in a
    readable way (e.g. "eax", ... on ia32).
    This is currently only used in Liftoff. The {RegisterConfiguration}
    class has the same functionality, and I plan to make
    {RegisterConfiguration} also use the new {RegisterName} functions in a
    follow-up CL.

R=clemensh@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I8359ed22ebe88d5c30a45a9c6f3caa3b03d902ee
Reviewed-on: https://chromium-review.googlesource.com/c/1344509
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#57698}
2018-11-21 18:53:49 +00:00
Hannes Payer
42c41a1fbb Don't run young generation large object tests for nosnap configurations.
Bug: chromium:852420
Change-Id: I01d0bed33a573adbe1d9365868d63ea9c3cb0552
Reviewed-on: https://chromium-review.googlesource.com/c/1346499
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57697}
2018-11-21 18:52:44 +00:00
Toon Verwaest
74038c86e9 [zone] Get rid of the Zone's segment pool
It's unclear that this helps performance. Let's see what the bots say.

Change-Id: Ic28783c90495f6ce01b4980d84794d394f941a4f
Reviewed-on: https://chromium-review.googlesource.com/c/1346331
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57696}
2018-11-21 18:51:39 +00:00
Tobias Tebbi
621de4bd2c Revert "[torque] change formatter to emit LF newlines on Windows"
This reverts commit d8c471ffa1.

Reason for revert: breaks waterfall

Original change's description:
> [torque] change formatter to emit LF newlines on Windows
> 
> Otherwise, it will always replace LF with CRLF, which is not what you
> want if you follow the Chromium instructions for Windows, that is,
> configure git with core.autocrlf = false.
> 
> Change-Id: I30fcfc471cde79d5c80d05ce582a8507cf5810b5
> Reviewed-on: https://chromium-review.googlesource.com/c/1345150
> Reviewed-by: Daniel Clifford <danno@chromium.org>
> Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57691}

TBR=danno@chromium.org,tebbi@chromium.org

Change-Id: Ib30ae0d5b1803dbe8e6e8a0928cc41a6ce2d2bb8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/1346502
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57695}
2018-11-21 18:06:29 +00:00
Daniel Clifford
4685349480 Revert "[torque] Implement intrinsics support"
This reverts commit 74a0ad7dda.

Reason for revert: Presubmit tests fail

Original change's description:
> [torque] Implement intrinsics support
> 
> Also add the first intrinsic and usage of it: %RawCast
> 
> Bug: v8:7793
> Change-Id: Id1e3288e8bab6adb510731076a39590e8fd156be
> Reviewed-on: https://chromium-review.googlesource.com/c/1344152
> Commit-Queue: Daniel Clifford <danno@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57692}

TBR=danno@chromium.org,tebbi@chromium.org

Change-Id: Ief78187f2edaf80c715dea676cbd40edd747ad21
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7793
Reviewed-on: https://chromium-review.googlesource.com/c/1346500
Reviewed-by: Daniel Clifford <danno@chromium.org>
Commit-Queue: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57694}
2018-11-21 16:28:12 +00:00
Igor Sheludko
21c415735c [ptr-compr] Use EmbedderDataSlot for accessing embedder fields in JSObjects
and make the slot occupy two tagged words when pointer compression is enabled.

Tbr: bmeurer@chromium.org
Bug: v8:7703
Change-Id: Idcd3385cc7d5299d9bdaf6a69c7bd0591099f0bb
Reviewed-on: https://chromium-review.googlesource.com/c/1346489
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57693}
2018-11-21 16:11:03 +00:00
Daniel Clifford
74a0ad7dda [torque] Implement intrinsics support
Also add the first intrinsic and usage of it: %RawCast

Bug: v8:7793
Change-Id: Id1e3288e8bab6adb510731076a39590e8fd156be
Reviewed-on: https://chromium-review.googlesource.com/c/1344152
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57692}
2018-11-21 16:04:03 +00:00
Tobias Tebbi
d8c471ffa1 [torque] change formatter to emit LF newlines on Windows
Otherwise, it will always replace LF with CRLF, which is not what you
want if you follow the Chromium instructions for Windows, that is,
configure git with core.autocrlf = false.

Change-Id: I30fcfc471cde79d5c80d05ce582a8507cf5810b5
Reviewed-on: https://chromium-review.googlesource.com/c/1345150
Reviewed-by: Daniel Clifford <danno@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57691}
2018-11-21 15:42:03 +00:00
Sergiy Byelozyorov
7d9f525bab [tools] Whitespace CL
TBR=sergiyb@chromium.org

Bug: chromium:903688
Change-Id: I72b57d45286ae28c44bad0edffeb56e9142767d1
Reviewed-on: https://chromium-review.googlesource.com/c/1346494
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57690}
2018-11-21 15:37:31 +00:00
Yang Guo
c1065d5eed Update wasm/futex test's expectation wrt predictability
TBR=aseemgarg@chromium.org

Change-Id: Iabb0a1d5ac065f97baf9b44815f0c5df37b426b5
Reviewed-on: https://chromium-review.googlesource.com/c/1346493
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57689}
2018-11-21 15:36:01 +00:00
Sigurd Schneider
b28637b4fe [turbofan] Apply duct-tape to load elimination
Load elimination is running together with to dead code elimination, the
latter of which might eliminate allocations (in particular FinishRegion
nodes). These are treated as alias nodes by load elimination, and load
elimination does not immediatelly learn that a node has been disconnected.
This causes load elimination to access the inputs of dead code eliminated
nodes while resolving renames, which causes nullptr dereferences.

This CL modifies load elimination to not resolve to a nullptr alias but
simply stop before that.

Change-Id: If4cef061c7c0e25f353727c9e27f790439b0beb5
Bug: chromium:906406
Reviewed-on: https://chromium-review.googlesource.com/c/1346491
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57688}
2018-11-21 15:23:01 +00:00
Stephan Herhut
1a36ac0191 [regalloc] Add debugging helper to print ranges
Adds support to render the live ranges as ascii diagram. This is
similar in nature to what the c1visualizer would produce.

Also, print the visualization when tracing the register allocator.

Change-Id: Ib6a43f67ba356e9a80cacaddfdbd6d589c685483
Reviewed-on: https://chromium-review.googlesource.com/c/1346114
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Stephan Herhut <herhut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57687}
2018-11-21 15:21:17 +00:00
Hannes Payer
49c7b308d9 [serializer] Tenure young large object in the serializer.
Bug: chromium:852420
Change-Id: I54d1708991468bb062d9e7b246e724594f252e5e
Reviewed-on: https://chromium-review.googlesource.com/c/1346369
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57686}
2018-11-21 14:18:26 +00:00
Sergiy Byelozyorov
e7ff6989c3 [tools] Trigger linux32 perf trybot on swarming
TBR=machenbach@chromium.org

No-Try: true
Bug: chromium:616879
Change-Id: I7a567060d4bbfdd5cbd8cc92a828b051ce8ddb8c
Reviewed-on: https://chromium-review.googlesource.com/c/1346332
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57685}
2018-11-21 14:07:44 +00:00
Toon Verwaest
2eab4de35d [parser] Further simplify ParseAssignmentExpression
This moves is_async and parenthesized_formals tracking out of the
ParseAssignmentExpression header. Instead we set flags on the parser for the
next arrow function: next_arrow_function_kind_ that defaults to kArrowFunction
and next_arrow_formals_parenthesized_ which defaults to false.

If we end up recognizing an async arrow head, we update
next_arrow_function_kind_ to kAsyncArrowFunction. If we detect (...) followed
by => or async(...) followed by => we set next_arrow_formals_parenthesized_ to
true. When we start parsing the arrow continuation we consume the values and
reset them to default for the next arrow function.

Change-Id: Ia22c0068fea0f175fafc568b7339813fd10c3b5a
Reviewed-on: https://chromium-review.googlesource.com/c/1345996
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57684}
2018-11-21 13:53:26 +00:00
Toon Verwaest
a04862021e [zone] Use 32kb instead of 1MB as high zone page size
It seems that allocating smaller pages is actually quite a bit faster than
larger pages, probably because they can be cached by malloc. Let's see what the
bots say.

In a follow-up I'll check whether the segment-pool is actually beneficial or
whether we should just remove it.

This also drops SegmentSize::kLarge as a way to make compilation deterministic.
Turns out that by now we need >8mb anyway, and the previous 1mb wasn't enough.
At the same time the compiler was fixed to not rely on virtual addresses of
zone objects anymore, and there's a bot checking whether the snapshot is
determistic.

Change-Id: I38cbb0d209d68b3671fd38763b42714811f4223e
Reviewed-on: https://chromium-review.googlesource.com/c/1346370
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57683}
2018-11-21 13:38:17 +00:00
Toon Verwaest
57e1e72a16 [parser] Simplify CheckAndRewriteReferenceExpression
Use the parser's IsValidReferenceExpression as a likely-succeeding precheck.
Slightly optimizes IsEvalOrArguments in the preparser and IsIdentifier for the
parser (we now have FailureExpression everywhere); and replaces
IsObjectLiteral||IsArrayLiteral by IsValidPattern.

Change-Id: I7e9684485c0ce454e640800566eb4b0a24c6bfc8
Reviewed-on: https://chromium-review.googlesource.com/c/1345995
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57682}
2018-11-21 13:18:58 +00:00
tzik
1d726111ab Implement Faster MicrotaskQueue Step 2
This is an implementation of https://bit.ly/v8-faster-microtask-queues
step 2.

This CL overhauls MicrotaskQueue class, the previous one is on V8 heap,
and the new one is on C++ heap.

Benchmark:
This CL improves a benchmark score around promise by 5~23%.
https://github.com/v8/promise-performance-tests
https://docs.google.com/spreadsheets/d/1HtwZGzUAGJYg87VmYhV9hLdvfddlCtC6Oz0iOj-WwQA/edit#gid=1952666737

Bug: chromium:887920, v8:7253
Change-Id: I1f26e02c45ae60ae39d1ccc168daa98bca4663d9
Reviewed-on: https://chromium-review.googlesource.com/c/1290751
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57681}
2018-11-21 13:10:07 +00:00
Sergiy Byelozyorov
8b4ff0d7cc [tools] Update builder name as old builder is deprecated
R=efoo@chromium.org, machenbach@chromium.org

Bug: chromium:868202
Change-Id: I5c0860894c96a8ce14e74cb048f786908db88269
Reviewed-on: https://chromium-review.googlesource.com/c/1344150
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57680}
2018-11-21 13:03:05 +00:00
Igor Sheludko
ea9f847d36 [ptr-compr] Introduce EmbedderDataSlot
an abstraction that hides the details about how embedder data fields are
encoded in EmbedderDataArrays and JSObjects.

Bug: v8:7703
Change-Id: Ic9f6d9511bec557c6671aa6488b9545e353f968c
Reviewed-on: https://chromium-review.googlesource.com/c/1344155
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57679}
2018-11-21 12:30:13 +00:00
Clemens Hammacher
5065c20a7e Revert "[iwyu] Add missing includes"
This reverts commit e8a22a7065.

Reason for revert: Depends on another reverted CL: https://crrev.com/c/1337585

Original change's description:
> [iwyu] Add missing includes
> 
> This fixes a presubmit error:
> https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Presubmit/454
> 
> It also adds another missing include.
> 
> R=​machenbach@chromium.org
> CC=​caitp@igalia.com
> 
> Bug: v8:7490
> Change-Id: I915a5bf431073410a67ff08471fd5e6974e31aa1
> No-Try: true
> No-Tree-Checks: true
> Reviewed-on: https://chromium-review.googlesource.com/c/1346111
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57671}

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

Change-Id: Id01d5ff327bc50f8d21a4092ba881f5d5e982a92
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7490
Reviewed-on: https://chromium-review.googlesource.com/c/1346117
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57678}
2018-11-21 11:54:26 +00:00
Clemens Hammacher
6abd6f3dd4 Revert "[builtins] Implement Object.fromEntries"
This reverts commit a5336471f2.

Reason for revert: Fails nosnap debug tests: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20nosnap%20-%20debug/21838

Original change's description:
> [builtins] Implement Object.fromEntries
> 
> Adds the Object.fromEntries() method behind
> --harmony-object-from-entries.
> 
> 
> Includes an initial implementation of the new experimental builtin
> Object.fromEntries implemented by Daniel Clifford, and
> has been modified by Caitlin Potter to support a fast case to skip
> the iterator protocol when it can be done unobservably in common cases.
> 
> There are some incidental changes: A number of CSA macros have been
> updated to use TNodes, and some Context arguments have been
> re-arranged to be implicit in Torque.
> 
> 
> There are also a number of mjsunit tests written mirroring and
> expanding on the test262 tests.
> 
> BUG=v8:8021
> 
> Change-Id: I1c12bee8a2f98c6297b77d5d723910a5e3b630cc
> Co-authored-by: Daniel Clifford <danno@chromium.org>
> Co-authored-by: Caitlin Potter <caitp@igalia.com>
> Reviewed-on: https://chromium-review.googlesource.com/c/1337585
> Commit-Queue: Daniel Clifford <danno@chromium.org>
> Reviewed-by: Daniel Clifford <danno@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57667}

TBR=danno@chromium.org,caitp@igalia.com,tebbi@chromium.org

Change-Id: Id0cd8b16131f151a42dffbaca7e59ab17c68ab23
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8021
Reviewed-on: https://chromium-review.googlesource.com/c/1346116
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57677}
2018-11-21 11:51:44 +00:00
Georg Neis
aded5516ae [turbofan] Be more verbose when failing monotonicity check.
R=jarin@chromium.org

Bug: chromium:906567
Change-Id: I280569e09529457814ebc1cb8f299a80aa40a6c4
Reviewed-on: https://chromium-review.googlesource.com/c/1345992
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57676}
2018-11-21 11:35:42 +00:00
Camillo Bruni
9a2298a997 [tools] Improve and clean up map procesor
- Show spinner while parsing input
- Show color boxes next transition types
- Support drag-n-drop of v8.log files

No-Try: true
Change-Id: I360d62960e9ec05fbab388ee2ca55baf4e2c6b78
Reviewed-on: https://chromium-review.googlesource.com/c/1345151
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57675}
2018-11-21 11:21:59 +00:00
Camillo Bruni
3272a85ef5 [tools] Fix V8 heap-stats loading spinner
No-Try: true
Change-Id: I078279bef7141c0255025efebfd3a39a57fc3bf7
Reviewed-on: https://chromium-review.googlesource.com/c/1345149
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57674}
2018-11-21 11:20:19 +00:00
Ulan Degenbaev
841c40b76a [heap] Clean up TypedSlotSet.
This extracts the parts of the TypedSlotSet that are used only
sequentially into a separate class called TypedSlots.

The new class will be used in the concurrent marker to keep track of
typed slots locally and then to merge them to the main remembered set
during finalization of marking.

The patch also cleans up atomics in the Iterate and ClearInvalidSlots
methods that can run concurrently to each other.

Bug:v8:8459

Change-Id: Id7a63041f7b99218381e5e9e1999210cab9c4369
Reviewed-on: https://chromium-review.googlesource.com/c/1340247
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57673}
2018-11-21 11:14:47 +00:00
Yang Guo
359fdff085 [d8] do not serialize again when consuming code cache
R=leszeks@chromium.org

Change-Id: Iebf284d3ac041eecb8cfb832c7331febb1ccf089
Reviewed-on: https://chromium-review.googlesource.com/c/1346069
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57672}
2018-11-21 11:02:04 +00:00
Clemens Hammacher
e8a22a7065 [iwyu] Add missing includes
This fixes a presubmit error:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Presubmit/454

It also adds another missing include.

R=machenbach@chromium.org
CC=caitp@igalia.com

Bug: v8:7490
Change-Id: I915a5bf431073410a67ff08471fd5e6974e31aa1
No-Try: true
No-Tree-Checks: true
Reviewed-on: https://chromium-review.googlesource.com/c/1346111
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57671}
2018-11-21 10:57:24 +00:00
Sigurd Schneider
61951b16e6 [turbolizer] Use fewer event handlers
Instead of attaching an event handler to every line in the code view,
attach it only to the container and find the lineNumber based on the event
target element.

Notry: true
Change-Id: I1920f7a200cf2f5ffaf259c0aaa04d6fb6698d2d
Bug: v8:7327
Reviewed-on: https://chromium-review.googlesource.com/c/1346110
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57670}
2018-11-21 10:51:14 +00:00
Igor Sheludko
9bcb5eb590 [ptr-compr][cleanup] Refactor XxxSlot implementations
and prepare for adding an EmbedderDataSlot which will occupy two tagged slots.

Bug: v8:8477, v8:8238, v8:7703
Change-Id: I8aa0a0c9b64835ad7f847033bcc55dd3b3c43563
Reviewed-on: https://chromium-review.googlesource.com/c/1344153
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57669}
2018-11-21 10:44:57 +00:00
Clemens Hammacher
ed4b4cd482 Use static RegisterName function instead of RegisterConfiguration
Register names are static, so we do not need to access them via
RegisterConfiguration. This saves a lot of RegisterConfiguration
object creations.

R=mstarzinger@chromium.org

Bug: v8:8238
Change-Id: I295ad4d4b13fe948c70490687b7e3e9b48e70af9
Reviewed-on: https://chromium-review.googlesource.com/c/1342517
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57668}
2018-11-21 10:24:13 +00:00
Caitlin Potter
a5336471f2 [builtins] Implement Object.fromEntries
Adds the Object.fromEntries() method behind
--harmony-object-from-entries.


Includes an initial implementation of the new experimental builtin
Object.fromEntries implemented by Daniel Clifford, and
has been modified by Caitlin Potter to support a fast case to skip
the iterator protocol when it can be done unobservably in common cases.

There are some incidental changes: A number of CSA macros have been
updated to use TNodes, and some Context arguments have been
re-arranged to be implicit in Torque.


There are also a number of mjsunit tests written mirroring and
expanding on the test262 tests.

BUG=v8:8021

Change-Id: I1c12bee8a2f98c6297b77d5d723910a5e3b630cc
Co-authored-by: Daniel Clifford <danno@chromium.org>
Co-authored-by: Caitlin Potter <caitp@igalia.com>
Reviewed-on: https://chromium-review.googlesource.com/c/1337585
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Daniel Clifford <danno@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57667}
2018-11-21 10:05:42 +00:00
Jakob Gruber
b84766b388 [ia32,root] Remove root register verification
Verification has served its purpose now that kRootRegister is fully
supported on ia32.

Bug: v8:6666
Change-Id: I037617bf900f161c221228107c9f1352d4815d87
Reviewed-on: https://chromium-review.googlesource.com/c/1296130
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57666}
2018-11-21 09:54:55 +00:00
Toon Verwaest
8da2afaa77 Revert "[parser] Use memcmp for keyword checks"
This reverts commit 5616f91a7a.

Reason for revert: Tanks performance on codeload/ia32 by >1%

Original change's description:
> [parser] Use memcmp for keyword checks
> 
> Small readability increase for the keyword check magic, using memcmp
> instead of a chain of raw comparisons. Could allow better codegen for
> memcmp-aware compilers, though in practice seems to have little effect
> on generated code.
> 
> Change-Id: I91020fe67cebc9270c61c4c678e15217e436afff
> Reviewed-on: https://chromium-review.googlesource.com/c/1340291
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57595}

TBR=leszeks@chromium.org,verwaest@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: Ifd4070efb3e692eb70e5d8b3adb04d7d7e45ef0e
Reviewed-on: https://chromium-review.googlesource.com/c/1345994
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57665}
2018-11-21 09:38:45 +00:00
Benedikt Meurer
b5a443c267 Reland "[turbofan] Improve NumberMultiply typing rule."
This is a reland of 585b4eef6a without
any changes.

Original change's description:
> [turbofan] Improve NumberMultiply typing rule.
>
> The NumberMultiply typing rule gave up in the presence of NaN inputs,
> but we can still infer useful ranges here and just union the result
> of that with the NaN propagation (similar for MinusZero propagation).
> This way we can still makes sense of these ranges at the uses.
>
> Bug: v8:8015
> Change-Id: Ic4c5e8edc6c68776ff3baca9628ad7de0f8e2a92
> Reviewed-on: https://chromium-review.googlesource.com/c/1261143
> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#56539}

Tbr: bmeurer@chromium.org
Bug: v8:8015
Change-Id: I32e5c2f439a1186891ca3393ee53a2a766585839
Reviewed-on: https://chromium-review.googlesource.com/c/1345993
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57664}
2018-11-21 09:32:15 +00:00
Michael Achenbach
28af9d7e90 Update V8 DEPS.
Rolling v8/build: 1f137f3..a2bfd53

Rolling v8/buildtools: 13a00f1..da9b294

Rolling v8/test/wasm-js/data: 5aaea96..e822213

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/1e54003..d115075

Rolling v8/third_party/depot_tools: 7da982a..e47ac15

Rolling v8/tools/swarming_client: 7f463e6..b6e9e23

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

Change-Id: Icf622c3e49371ba965f08e15d0177697f04c55e5
Reviewed-on: https://chromium-review.googlesource.com/c/1344806
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#57663}
2018-11-21 09:16:25 +00:00
Yuki Shiino
f379bb117f Make Isolate::GetIncumbentContext() work fine with ASAN
When ASAN is enabled, the previous implementation of
Isolate::GetIncumbentContext didn't work well due to mixture of fake
and real stack frames.

This patch converts an address in the fake stack frame to an address
in the real stack frame so that we can compare two addresses.

Bug: chromium:888867, chromium:866610
Change-Id: Iccf570b8555f2fbdc737b12894a2784ffdb31602
Reviewed-on: https://chromium-review.googlesource.com/c/1343709
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Yuki Shiino <yukishiino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57662}
2018-11-21 05:40:08 +00:00
Igor Sheludko
8708d46cc3 Revert "[cleanup] Move methods to V8_DEPRECATED"
This reverts commit a6e3cdd9b5.

Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Android%20GN%20%28dbg%29/14259

Original change's description:
> [cleanup] Move methods to V8_DEPRECATED
> 
> Updates ObjectTemplate::NewInstance and FunctionTemplate::GetFunction
> from V8_DEPRECATED_SOON to V8_DEPRECATED, now that they're unused in
> chrome.
> 
> Bug: v8:7294, v8:7295, v8:8238
> Change-Id: Ic7cb2c410ff812f73cfd108551f2a1a20722df07
> Reviewed-on: https://chromium-review.googlesource.com/c/1344151
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Dan Elphick <delphick@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57657}

TBR=ulan@chromium.org,delphick@chromium.org

Change-Id: I98a49bd0467f068b0122314ce2d0564dd174c2c5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7294, v8:7295, v8:8238
Reviewed-on: https://chromium-review.googlesource.com/c/1344120
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57661}
2018-11-20 18:07:37 +00:00
Clemens Hammacher
eeb99d31ab [wasm][fuzzer] Remove unused return value
R=ahaas@chromium.org

Bug: v8:8238
Change-Id: I7a7de894aa7bf074cbe732f40e16b10060fa37dd
Reviewed-on: https://chromium-review.googlesource.com/c/1344149
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57660}
2018-11-20 17:15:35 +00:00
Igor Sheludko
81a654e7a0 [api][cleanup] Replace kApiPointerSize with kApiTaggedSize or kApiSystemPointerSize
This CL also disables fast access to the embedder fields when pointer compression is enabled.

Bug: v8:8477, v8:8238
Change-Id: I368bd87184590f8befdc882817497f75f0024569
Reviewed-on: https://chromium-review.googlesource.com/c/1344117
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57659}
2018-11-20 17:13:36 +00:00
Clemens Hammacher
41b34f2a55 [wasm][fuzzer] Fix detection of traps
Instead of returning 0xDEADBEEF, return a struct with proper
information. Otherwise a function returning 0xDEADBEEF would be
misidentified as trapping in the interpreter.

R=ahaas@chromium.org

Bug: chromium:906997
Change-Id: I92fc3a9972d76d2f8a5b313bf6be6eb027cfc1e9
Reviewed-on: https://chromium-review.googlesource.com/c/1344111
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57658}
2018-11-20 17:05:51 +00:00
Dan Elphick
a6e3cdd9b5 [cleanup] Move methods to V8_DEPRECATED
Updates ObjectTemplate::NewInstance and FunctionTemplate::GetFunction
from V8_DEPRECATED_SOON to V8_DEPRECATED, now that they're unused in
chrome.

Bug: v8:7294, v8:7295, v8:8238
Change-Id: Ic7cb2c410ff812f73cfd108551f2a1a20722df07
Reviewed-on: https://chromium-review.googlesource.com/c/1344151
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57657}
2018-11-20 17:04:47 +00:00
Tobias Tebbi
41ad531f4f [turbofan] in-block scheduling: schedule non-effect-chain nodes late
By giving higher priority to processing non-effect-chain nodes, this
changes the scheduling inside of basic blocks to place nodes before the
latest possible effect chain node.

Change-Id: I8b130904a1bb2360b995eb9de4f471a911a4e388
Reviewed-on: https://chromium-review.googlesource.com/c/1337743
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57656}
2018-11-20 16:38:08 +00:00
Daniel Clifford
280776f85c Incremental Torque type cleanup
Includes creating Oddball-specific types.

Change-Id: Ib5d80dfe95838b2deb0a2fcae67c349940970252
Reviewed-on: https://chromium-review.googlesource.com/c/1342930
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57655}
2018-11-20 16:26:27 +00:00
Toon Verwaest
4547a5b177 [d8] Load js source files by memory mapping them
Change-Id: I13dbdbedf3d7bdc3488e9a6c3d4a1b0becfedd74
Reviewed-on: https://chromium-review.googlesource.com/c/1344116
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57654}
2018-11-20 16:20:37 +00:00
Michael Starzinger
2e1b4e95af [assembler] Remove redundant assembler-arch-inl.h file.
R=clemensh@chromium.org

Change-Id: Ic56f6181a17520f54b9cab5dc3d106db56f1ede9
Reviewed-on: https://chromium-review.googlesource.com/c/1344115
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57653}
2018-11-20 16:12:43 +00:00