Commit Graph

58851 Commits

Author SHA1 Message Date
Mike Stanton
18a8548d2f [TurboFan] Add DCHECK to FunctionBlueprint equality
A slow dcheck can verify that hints are equal for the same
SharedFunctionInfo+FeedbackVector combo.

Bug: v8:7790
Change-Id: I43dcacf19c857770b609d13c310835a873c814fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1835952
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64109}
2019-10-04 12:58:23 +00:00
Georg Neis
1200f3c95b [turbofan] Be smarter when serializing function calls
Recursively serialize arguments to higher-order functions if
appropriate. This should recover all or most of the Deltablue
regression with --concurrent-inlining. It is also a prerequisite to
allowing speculation in the call reducer for these situations.

Bug: v8:7790, v8:9702
Change-Id: I1ac8ac8b8e4dc0f2e19c89aacfb45d18f2df190f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1835541
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64108}
2019-10-04 12:02:27 +00:00
Igor Sheludko
da8bc4a0a8 [ptr-compr][cleanup] Remove branchy decompression implementation
... as the smi-corrupting decompression seems to be stable enough.

Bug: v8:9706
Change-Id: I404924ec4a12b37d8bc3e521c5563aa7e6357dc6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1835544
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64107}
2019-10-04 11:57:17 +00:00
Igor Sheludko
616ce2535a [ptr-compr][arm64] Adapt disasm tests for disabled double field unboxing
Bug: v8:9799
Change-Id: I402133f6265f4a3129daef45615258d4a9b8f2f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1840154
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64106}
2019-10-04 11:54:47 +00:00
Clemens Backes
e1f3e43b4d Reland "[wasm] Ship far jump tables"
This is a reland of 35ca0abdc5.
The last known issue is fixed in https://crrev.com/c/1832178.

Original change's description:
> [wasm] Ship far jump tables
>
> This flips the --wasm-far-jump-table flag. It will allow for more than
> 128MB of code space per wasm module on arm64, and will increase the
> limit on the number of modules per process on x64 (was ~1000 before,
> because we reserved 1GB for the code space per module).
>
> R=mstarzinger@chromium.org
>
> Bug: v8:9477
> Change-Id: I870ec616f4812e38ef1e3fccf0629854a247bb4f
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1815247
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Commit-Queue: Clemens Backes [né Hammacher] <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#63967}

Bug: v8:9477
Change-Id: I6d7de80e874e1d51512148fc3c1f45b0fc1474ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1840151
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64105}
2019-10-04 11:26:17 +00:00
Dan Elphick
58761221af [parser] Delete unresolved variables created for labels
This deletes unresolved VariableProxy objects created for labels in the
preparser which prevents shadowed variables in enclosing scopes from
being context-allocated.

Previously this was only done in the full parser, which leads to
bytecode mismatches with lazy source positions.

Bug: chromium:1009728, v8:8510
Change-Id: If2d0c345346116a7f5aacbcd0cf3638e9f7e04cc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1836258
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64104}
2019-10-04 10:41:31 +00:00
Dominik Inführ
2d847f8dba [heap] Remove page_start_ from SlotSet
Do not store page_start_ in SlotSet anymore, when needed this address
can be calculated cheaply and be passed in from the caller.

Bug: v8:9454
Change-Id: I4cdb010e4126680d8df500e40ae3d0bc884cf501
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1838731
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64103}
2019-10-04 09:09:05 +00:00
Dominik Inführ
cfa6c8984e [heap] Fix clearing of sweeping remembered set
Slots in the sweeping remembered set were not deleted when
evacuation of an evacuation candidate fails. Also introduce DCHECKs
for other usages of RemoveRange where deleting slots in the sweeping
remembered set is not required.

Bug: v8:9454
Change-Id: If809ea74e28817a9611104b1f2c6b34900e3432b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1838732
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64102}
2019-10-04 08:51:55 +00:00
Jakob Gruber
618bb20238 Remove JS natives support, step 2
The natives blob is deprecated and will be removed in the next
release.

Step 1 landed in https://crrev.com/c/1824944.
Step 2 (this CL) is to mark API functions as V8_DEPRECATED.
Step 3, in the next V8 release, is to remove these functions and all
other natives support in V8.

Bug: v8:7624
Change-Id: I177fa6197e06a3ca21787b4e2d74dd1689038b6b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1835536
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64101}
2019-10-04 06:28:11 +00:00
v8-ci-autoroll-builder
531a85424c Update V8 DEPS.
Rolling v8/build: 12bec71..90168ea

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/bb31bb3..8305659

Rolling v8/third_party/depot_tools: 336a2b1..f3c5fef

Rolling v8/third_party/icu: 2ecd66c..93a34f0

Rolling v8/tools/clang: 22ecf17..6bc727d

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

Change-Id: I078fc76450c99afc4f937a0be515bf686812a852
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1838813
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#64100}
2019-10-04 06:27:07 +00:00
Maya Lekova
35ecaabcba Revert "[wasm] Add tests for SIMD JS-API errors"
This reverts commit f47706a7f3.

Reason for revert: Breaks V8 Linux bot - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux/34070

Original change's description:
> [wasm] Add tests for SIMD JS-API errors
> 
> Change-Id: I7fc2eb95f9a2d1ea45bc84543a05c84e32bb6d31
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1838924
> Reviewed-by: Zhi An Ng <zhin@chromium.org>
> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64098}

TBR=gdeepti@chromium.org,ahaas@chromium.org,zhin@chromium.org

Change-Id: I6640ba207e30200e6846a16cab0bd522cabf3108
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1839651
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64099}
2019-10-04 06:26:04 +00:00
Deepti Gandluri
f47706a7f3 [wasm] Add tests for SIMD JS-API errors
Change-Id: I7fc2eb95f9a2d1ea45bc84543a05c84e32bb6d31
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1838924
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64098}
2019-10-03 23:47:05 +00:00
Milad Farazmand
c42a7fe538 PPC/s390: [builtins] Reordered optimised code path in InterpreterEntryTrampoline
Port 9dfe63593d

Original Commit Message:

    Pushes the optimised code path to after the main interpreter path, so
    the straightline path is just normal interpretation.

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

Change-Id: Ib275871fd8463bf6879ab1ab78e9b4146df98251
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1838611
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64097}
2019-10-03 19:32:35 +00:00
Bruce Dawson
f0532662fb Make in-progress message more helpful
merge_to_branch.py can fail partway through for many reasons (the EDITOR
environment variable not being set being one) and on the next run this
leads to an error saying:

    Exception: A merge is already in progress

It is not obvious to those doing their first merge how to get past this.
Searching the source code leads to the -f option but it should be
possible to proceed without searching the source. This change adds
"Use -f to continue" to the message.

Change-Id: Ic9d8e404e044be3308e5ae3ef3a4430e4aa3ccc2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1837028
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64096}
2019-10-03 19:13:36 +00:00
Sathya Gunasekaran
6f6da35738 Fix typo to correctly say CallHandlerInfo
Change-Id: If5d92c95a043bb1711306820b61480d01da62b47
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1836257
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64095}
2019-10-03 14:54:41 +00:00
Pierre Langlois
3556d2504c [arm64] Use CBZ in binary switch.
When comparing with zero, we can generate a CBZ instruction instead of a
CMP+B. If we teach TurboAssembler::JumpIfEqual() to do it then we can do it
in code generated for binary switches.

Change-Id: I39a045ed666fd6569bf9c9f6be28c4efbeeb01a9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1836254
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
Cr-Commit-Position: refs/heads/master@{#64094}
2019-10-03 13:02:21 +00:00
Sathya Gunasekaran
e92e9151e9 [ic] Handle FunctionTemplateInfo getters in builtins
Bug: v8:9552
Change-Id: If13a3ff1baa259cb0f51858c0d3c28bfef943499
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1822038
Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64093}
2019-10-03 10:36:50 +00:00
v8-ci-autoroll-builder
c2f6ba22ed Update V8 DEPS.
Rolling v8/build: 5de2214..12bec71

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/16236fc..bb31bb3

Rolling v8/third_party/depot_tools: 5eac9d3..336a2b1

Rolling v8/tools/clang: 925d2e5..22ecf17

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

Change-Id: Ie28ab13a9238ca48e801c1df532110da52d3b9aa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1835747
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#64092}
2019-10-03 03:50:09 +00:00
Irina Yatsenko
1fb432c457 [tools] Support pointer compression in windbg.js
Change-Id: I63cf6cd9b22ea02846ec40eba214acb21304d418
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832637
Commit-Queue: Irina Yatsenko <irinayat@microsoft.com>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64091}
2019-10-02 21:43:28 +00:00
Francis McCabe
13202d2933 Revert "[ptr-compr] Disable double fields unboxing"
This reverts commit b271ea3c94.

Reason for revert: breaks arm build:
https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/17575

Original change's description:
> [ptr-compr] Disable double fields unboxing
> 
> Double field unboxing optimization is incompatible with pointer compression so
> we land this CL before enabling pointer compression in order to separate memory
> and performance regressions caused by disabled double field unboxing from
> pointer compression change.
> 
> Bug: v8:9799
> Change-Id: Ic8118356496a3f351344215b409f9722de6c9355
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1835546
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64089}

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

Change-Id: Ief07d8d4b3c4a6f1439656f31b8d34ec99bf9747
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:9799
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1834769
Reviewed-by: Francis McCabe <fgm@chromium.org>
Commit-Queue: Francis McCabe <fgm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64090}
2019-10-02 18:26:14 +00:00
Igor Sheludko
b271ea3c94 [ptr-compr] Disable double fields unboxing
Double field unboxing optimization is incompatible with pointer compression so
we land this CL before enabling pointer compression in order to separate memory
and performance regressions caused by disabled double field unboxing from
pointer compression change.

Bug: v8:9799
Change-Id: Ic8118356496a3f351344215b409f9722de6c9355
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1835546
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64089}
2019-10-02 16:46:14 +00:00
Ng Zhi An
69bdc607fe Clean up assembler for packed single-precision floats
We already use PACKED_OP_LIST to generate AVX instructions, this change
reuses the same list to generate the SSE equivalents, by introducting a
helper assembler instruction, ps, as the actual implementation (similar
to out vps is used as the implementation for AVX packed
singled-precision floats).

Change-Id: I7dd72c2be75eb3ff5badf6d668780604cae8c684
Bug: v8:9396
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1834621
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64088}
2019-10-02 16:38:44 +00:00
Igor Sheludko
cd89e2919a [json] Fix DCHECKs in json-parser
... which fail when double fields unboxing is disabled.

Bug: v8:9799
Change-Id: I77f11046d5a50c37c113aa8d9c5b8ca1148a746b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1835549
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64087}
2019-10-02 15:49:34 +00:00
Ingvar Stepanyan
e5ef9eb502 [wasm] Align raw Wasm URLs with disassembled ones
If script is not disassembled, still use the same script URL format for
consistency.

In particular, use an absolute `wasm://wasm/` prefix, like disassembled fake
scripts do, instead of just a script name which appears to be a
relative URL to devtools.

Change-Id: Ib7632f9f3587ca4961eb4f0b884482b3a1a6e1f0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1833685
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Ingvar Stepanyan <rreverser@google.com>
Cr-Commit-Position: refs/heads/master@{#64086}
2019-10-02 15:47:06 +00:00
Mythri A
eea2006b3b [ic] Remove premonomorphic state
Premonomorphic state was only used for store globals to handle contextual
store on a global object [1]. We now handle these differently and we
move to fast handlers even without going through premonomorphic state
after this cl: https://chromium-review.googlesource.com/c/v8/v8/+/1807356.
Also, with lazy feedback this would be a relatively uncommon case anyway.
So, we no longer need premonomorphic state. This cl removes this state
entirely.


[1]: https://bugs.chromium.org/p/v8/issues/detail?id=8712


Bug: v8:8394
Change-Id: I71fb918b82b0c321a9705e32c8fc44e9ec223b38
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1833690
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64085}
2019-10-02 15:21:15 +00:00
Jakob Kummerow
1697b20f37 [inspector-test] Don't leak the ArrayBuffer::Allocator
The creator of the allocator retains ownership and is responsible
for its eventual destruction.

Change-Id: Iaf1b24bee7153b3b1a75df99974adff42c6a197f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1835545
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64084}
2019-10-02 14:26:55 +00:00
Michael Lippautz
38c901614e GCExtension: Properly support exceptions
Fix corner case where we would try to read a property when having a
pending or scheduled exception.

Re-add tests.

Bug: chromium:1006640
Change-Id: I2fc84ee0f6145db2d200a8b9abf57fdc4b12a5a3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1835531
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64083}
2019-10-02 12:14:02 +00:00
Mythri A
483a5e94a7 Reland "Mark functions for optimization only on bytecode budget interrupts"
This is a reland of 9efe315ee2 after marking
box2d slow.

Original change's description:
> Mark functions for optimization only on bytecode budget interrupts
>
> We used to mark functions for optimization on any interrupt. This sometimes
> causes functions to OSR when not needed. The implementation was such because
> we didn't have a different runtime function to distinguish bytecode budget
> interrupts from other interrupts. For lazy feedback allocation we added a
> new runtime function for bytecode budget interrupts so it makes it easier
> to actually mark functions only when needed.
>
> This also includes a fix to reduce the stack limits for interrupts when
> entering a scope that allows interrupts from a postponed interrupt scope.
>
> Bug: chromium:993061
> Change-Id: Iaf7b4dccb7a503e5b6bfcbb993bc7482aa593955
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1829218
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Commit-Queue: Mythri Alle <mythria@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64048}

Bug: chromium:993061
Change-Id: I24dae03357d6c368e4173db3f071e8ab09e9d6dc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832173
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64082}
2019-10-02 11:50:12 +00:00
Georg Neis
f528df9f4b [turbofan] Make ObjectRef printing look at --concurrent-recompilation
... in order to print more information when it's disabled.

Bug: v8:7790
Change-Id: I58a5dacbbe9551814e62b157885c83001924a59b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1835534
Auto-Submit: Georg Neis <neis@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64081}
2019-10-02 11:13:52 +00:00
Jakob Gruber
28a9dc2b81 Remove JS natives support, step 1
The natives blob is deprecated and will be removed in the next
release.

This commit does two things, 1. it disables the v8_extra_library_files
gn argument which will make building natives_blob.bin through gn
impossible; 2. it marks API functions associated with the natives blob
as V8_DEPRECATE_SOON.

Embedders should remove any uses of SetNativesDataBlob and replace all
calls to

 InitializeExternalStartupData(const char*, const char*)

with the new function

 InitializeExternalStartupDataFromFile(const char*)

Step 2 is to mark API functions as V8_DEPRECATED.
Step 3, in the next V8 release, is to remove these functions and all
other natives support in V8.

Bug: v8:7624
Change-Id: I745e96c60204a9b94d9240be65dd59bb9bdd0699
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1824944
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64080}
2019-10-02 10:21:12 +00:00
Jakob Kummerow
65d05bef39 [test] Make %SimulateNewspaceFull more robust
GC stress flags (--gc-interval, --random-gc-interval) could trigger
unexpected fake allocation failures while trying to fill up a page.
An AlwaysAllocateScope suppresses that.

Drive-by fix: allocation requests with exactly kMaxRegularHeapObjectSize
can take the fast path.

Bug: v8:9700
Change-Id: I7fa35e56848e74f12d3606da453e1ae7254c268b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1834121
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64079}
2019-10-02 10:01:32 +00:00
Clemens Backes
73811dad38 [wasm] Register win64 unwind info for each code space
We need to register the unwind info for each code space (it was just
done for the first one). Otherwise we fail when freeing the native
module, where we try to unregister the unwind info again for each code
space.

This CL moves the call to {RegisterNonABICompliantCodeRange} from
{NewNativeModule} to {AddCodeSpace}, so it happens whenever a new code
space is added.

R=jgruber@chromium.org
CC=​paolosev@microsoft.com

Bug: chromium:1008597, v8:9477, v8:9795
Change-Id: I20121b2a2fde4d37432dd7e13b19cdf99129e6a4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832178
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64078}
2019-10-02 08:59:38 +00:00
Michael Lippautz
a12bfa9e04 GCExtension: Bail out on proxy parameter
Bug: chromium:1006640
Change-Id: I0f38ed9c44b6a2a6cfd52fdd9e177768f57beb11
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1833692
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64077}
2019-10-02 07:41:38 +00:00
v8-ci-autoroll-builder
831b680109 Update V8 DEPS.
Rolling v8/build: 69e3270..5de2214

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/5f4659d..16236fc

Rolling v8/third_party/depot_tools: a19d353..5eac9d3

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

Change-Id: I45412c50e72c4899b4e88046a9e2565f07cdad5e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1833873
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#64076}
2019-10-02 03:37:28 +00:00
Igor Sheludko
cc7c899519 [ptr-compr] Enable smi-corrupting decompression
... by flipping the flag.

Bug: v8:9706
Change-Id: Ie0e70a243a5a6a703cdaa27c1ed55a78d9904bbe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1826732
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64075}
2019-10-01 22:02:54 +00:00
Jaime Bernardo
53e62affd3 [build] Include string in v8.h
Explicitly #include<string> in v8.h, since std::string is referenced
in it. In the C++ STL shipped with Visual Studio 2019, none of the
headers included in v8.h ends up including the C++ string header, which
caused a compile error.

Bug: v8:9793
Change-Id: I84a133dd10dd6dcc7b70287af393e82cf0dc97df
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1834321
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64074}
2019-10-01 20:28:58 +00:00
Ng Zhi An
472aff977c [wasm-simd] Implement f64x2 sqrt for ia32
Bug: v8:9728
Change-Id: Ic15d793e6408af1ea2e1f7f71b9130300d359a95
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1808417
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64073}
2019-10-01 20:17:34 +00:00
Ross McIlroy
f61780c432 [TurboProp] Use GraphAssembler for all Select and Effect-Control lowerings.
TurboProp will not reschedule after effect-control linearization, so
the graph-assembler will be used to modify the schedule as new nodes
are added. To enable this, ensure we use the graph assembler for all
node creation from effect-control linearization onwards.

BUG=v8:9684

Change-Id: I2be3f5d2a3f2cbee44c72bb397e9bd1d9ac7de05
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832166
Auto-Submit: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64072}
2019-10-01 19:57:14 +00:00
Ng Zhi An
647f6568e6 [cleanup] Refactor some scratch registers to temp
Change-Id: I5dcc3f708ca05a0d3b504cb4d7a89693ca0717b4
Bug: v8:9396
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1819521
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64071}
2019-10-01 19:32:36 +00:00
Frank Tang
246d985cb7 [Intl] No throwing RangeError when "calendar" and "numberingSystem" are well-formed
* Throws RangeError only when the calendar and numberingSystem is
  ill-formed.
* Set the calendar and numberingSystem to the locale only if
the values are valid.
* Fix the order of GetOption of "localeMatcher".
* Add more unit tests.
See https://github.com/tc39/ecma402/pull/175 for details.

Bug: v8:9786, v8:9787, v8:9788
Change-Id: Ic0f918ad7d9afb0b7c8df39caa0f44ef07ca10c0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1830345
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64070}
2019-10-01 18:04:12 +00:00
Frank Tang
28472420a6 [Intl] Stage intl-other-calendars
Bug: v8:9155
Change-Id: I54c65ee28171064f596fc305bb718613640f251a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832636
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64069}
2019-10-01 17:26:40 +00:00
Joshua Litt
2023fe514b [protectors] Cleanup protector statics on isolate
Removes the static protector values from isolate now that they are
no longer needed.

This is the final cl in the migration effort.

Bug: v8:9463
Change-Id: I2127ef6c8a0cdaf0ccf28aed12539335ef985704
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1827455
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64068}
2019-10-01 16:06:00 +00:00
Igor Sheludko
b269455478 [ptr-compr][turbofan] Support smi-corrupting decompression in TurboFan
Bug: v8:9706
Change-Id: I5779e2fbaec5741cc9b8d44f7f3f721400e70b28
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832174
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64067}
2019-10-01 15:16:49 +00:00
Dan Elphick
9dfe63593d [builtins] Reordered optimised code path in InterpreterEntryTrampoline
Pushes the optimised code path to after the main interpreter path, so
the straightline path is just normal interpretation.

Bug: v8:9771
Change-Id: I2f48ff290efcd85a5e30cf823027919560f8a56a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1829220
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64066}
2019-10-01 14:38:29 +00:00
Peter Marshall
615e90032d [tools] Fix Code::Disassemble to print the address properly
This was missed when changing Object to hold a ptr field instead of
abusing the this pointer.

This was printing the stack address of the particular Object rather
than the location of the printed code object on the heap.

Change-Id: I5c884464419debcbc70b73fe8bdfa8107f2bdb71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1833681
Auto-Submit: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64065}
2019-10-01 13:46:49 +00:00
Jakob Gruber
282a74c7f0 Reland "[regexp] Bytecode peephole optimization"
This is a reland of 6612943010

Fixed: Unaligned reads, unspecified evaluation order.

Original change's description:
> [regexp] Bytecode peephole optimization
>
> Bytecodes used by the regular expression interpreter often occur in
> specific sequences. The number of dispatches in the interpreter can be
> reduced if those sequences are combined into a single bytecode.
>
> This CL adds a peephole optimization pass for regexp bytecodes.
> This pass checks the generated bytecode for pre-defined sequences that
> can be merged into a single bytecode.
>
> With the currently implemented bytecode sequences a speedup of 1.12x on
> regex-dna and octane-regexp is achieved.
>
> Bug: v8:9330
> Change-Id: I827f93273a5848e5963c7e3329daeb898995d151
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1813743
> Commit-Queue: Patrick Thier <pthier@google.com>
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#63992}

Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux_gcc_rel
Bug: v8:9330,chromium:1008502,chromium:1008631
Change-Id: Ib9fc395b6809aa1debdb54d9fba5b7f09a235e5b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1828917
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64064}
2019-10-01 12:50:24 +00:00
Ana Peško
14ffd21dd9 Reland "[regexp] Eagerly tier-up for very long strings"
This is a reland of cfb60d430b

Original change's description:
> [regexp] Eagerly tier-up for very long strings
> 
> For very long subject strings, the regexp interpreter is currently much slower
> than the native machine code execution. This CL implements eager tier-up to the
> compiler to avoid the performance penalty for subject strings of length greater
> than 1000.
> 
> Change-Id: I244ccbd60255e0f3bedc493b1cc3d25cdd42133e
> Bug: v8:9566
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1829273
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Commit-Queue: Ana Pesko <anapesko@google.com>
> Cr-Commit-Position: refs/heads/master@{#64046}

Bug: v8:9566
Change-Id: I81a10728c64ce3b35258c31eb8178e458d3de205
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832167
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Ana Pesko <anapesko@google.com>
Cr-Commit-Position: refs/heads/master@{#64063}
2019-10-01 12:49:19 +00:00
Georg Neis
12b22b5198 Disable --instruction-scheduling for mksnapshot
This is an experiment to see the memory/performance impact.

Bug: v8:9775
Change-Id: I2ae61ae8bb5c6c1c55436e96c4b2d8201cbf4739
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832177
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64062}
2019-10-01 12:04:29 +00:00
Mike Stanton
9352f9c33d [TurboFan] Repair chrome://trace for v8.turbofan
Bug: chromium:1005195
Change-Id: I41b8526d1394d82b06bab975dc0cc18c080dfd60
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1829271
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64061}
2019-10-01 11:17:30 +00:00
Leszek Swirski
e3e7f1edee [cleanup] Another round of semi-automatic TNodification
Change-Id: I822f3961b2ec5ef8fb7ca4765cb7c9fd38514223
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832171
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64060}
2019-10-01 10:55:20 +00:00