Commit Graph

54963 Commits

Author SHA1 Message Date
Alexei Filippov
aaf3eb25f0 Reland "[inspector] Allow limiting the total size of collected scripts."
This is a reland of 5a61630d1d

Original change's description:
> [inspector] Allow limiting the total size of collected scripts.
>
> Introduces the setMaxCollectedScriptsSize Debugger protocol method.
> If the max size is set, the debugger will hold collected (not referenced by other v8 heap objects)
> scripts up to the specified total size of their sources.
>
> BUG=v8:8988
>
> Change-Id: I94d52866494102add91ca2d569a2044b08c9c593
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518556
> Commit-Queue: Alexei Filippov <alph@chromium.org>
> Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#60227}

TBR=dgozman@chromium.org

Bug: v8:8988
Change-Id: I9b1db01856a43636c1eb8ad2ec36e3727353228d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524668
Commit-Queue: Alexei Filippov <alph@chromium.org>
Reviewed-by: Pavel Feldman <pfeldman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60271}
2019-03-16 06:08:17 +00:00
v8-ci-autoroll-builder
1b23764081 Update wasm-spec.
Rolling v8/test/wasm-js/data: a2b5691..2f5d8e7

Update index.bs (Sven Sauleau)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/2f5d8e7

Update index.bs (Sven Sauleau)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/0e1021a

Update index.bs (Sven Sauleau)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/b65f68d

Update index.bs (Sven Sauleau)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/2c9b327

Update index.bs (Sven Sauleau)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/5ad5fe2

Update index.bs (Sven Sauleau)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/b2fefbd

Update index.bs (Sven Sauleau)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/2478368

Normative: Read the imports synchronously in WebAssembly.instantiate(Module). (Ms2ger)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/16a91bd

...

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

Change-Id: I33cb12bc8c456517c809485e4d8aca1c19df0605
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526725
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@{#60270}
2019-03-16 04:43:14 +00:00
Matt Gardner
1e2aa7820b [turbofan] Fix HasProperty for OOB access on polymorphic ICs
The existing has property handling did not account for the fact an IC can have LOAD_IGNORE_OUT_OF_BOUNDS while some of the maps in the IC do not allow out of bounds loads.

bug: chromium:942068
Change-Id: I935402d9d72e9c0228510ef69154ea130d1c71f0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1525876
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60269}
2019-03-15 22:09:16 +00:00
Santiago Aboy Solanes
a8c846b26b Add ChangeTaggedXXXToCompressedXXX, ChangeCompressedXXXToTaggedXXX mach ops
We have a version for each (Any, Pointer, Signed)

Bug: v8:8977
Change-Id: I1df994f96e24183a136c25818bf4917d9f8126d3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524481
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60268}
2019-03-15 15:24:35 +00:00
Michael Starzinger
3072a08274 [cleanup] Remove obsolete {ExitFrame::code_slot} mechanism.
This slot has become obsolete now that all CEntry stubs are builtins
(which are part of the rootset) and no longer need to be kept alive
explicitly by a slot in the frame.

R=verwaest@chromium.org
BUG=v8:8834

Change-Id: I7b791cc509ef800bcf7aa5faab31ddf35370f944
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1520725
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60267}
2019-03-15 14:28:05 +00:00
Clemens Hammacher
2270c0eaaa [wasm][fuzzer] Run micro tasks after each fuzzer execution
This asserts that we run e.g. GC finalization tasks. Without that, we
might run ouf of memory.

R=ahaas@chromium.org

Bug: chromium:938739
Change-Id: Ic80074f877183bcabb3353fbeff94842a534efab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526007
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60266}
2019-03-15 14:23:45 +00:00
Sigurd Schneider
c83aff3bf5 [regalloc] Fix non-deterministic iteration in register allocator
Change-Id: I5c391f606994ba1fc3dfb53483a0cc0f1caa25e7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521107
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60265}
2019-03-15 14:21:05 +00:00
Clemens Hammacher
c853d114a9 [wasm] Fix stack size estimate
We were just counting the number of stack elements instead of their
actual memory usage. This limits recursion a lot more and helps
avoiding OOM situations.

R=titzer@chromium.org

Bug: chromium:938739
Change-Id: I0e0ec2949f9fbad9c9e2c8677ec0223d5cd6a24b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526006
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60264}
2019-03-15 14:09:25 +00:00
v8-ci-autoroll-builder
277736cfd1 Update V8 DEPS.
Rolling v8/build: 77c810a..6ae9325

Rolling v8/third_party/depot_tools: 1c2fa0f..04600b4

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

Change-Id: I97e0449cc11eb30e890862c044cfde59172ed75d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1525864
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@{#60263}
2019-03-15 13:53:06 +00:00
Michael Starzinger
ed34a736f1 [gcmole] Update bootstrap script for static linkage.
This changes gcmole's bootstrapping script so that it always creates
binaries that link libstdc++ statically (both plugin and Clang) and do
not link against unneeded libraries (only Clang). For deployment of
gcmole on our infrastructure, it is much easier to have fewer external
dependencies.

R=machenbach@chromium.org
BUG=v8:8813

Change-Id: If6f2f3cc3b1f661f7dafbb406eaaf2e639981640
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526002
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60262}
2019-03-15 12:53:51 +00:00
Simon Zünd
f9f46063ff [base] Add V8_NOEXCEPT to deleted constructors and assignment ops
Compiling without -fno-exceptions causes compilation errors, this
CL fixes that.

The reason for the compilation error is a mismatch of "V8_NOEXCEPT"
on mixins for base::Optional where it is not present for deleted
copy/move constructors, but present on base::Optional for defaulted
ones.

Bug: v8:8985
Change-Id: I54af77496657fde44292c050221d11533a54db03
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518175
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60261}
2019-03-15 12:35:31 +00:00
Michael Achenbach
52b22fdf37 [tools] Update gcmole
Bug: v8:8813
Change-Id: I3c173a0c8846a2728e020581fbcaac269f850162
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523786
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60260}
2019-03-15 10:24:49 +00:00
Michael Starzinger
7e176157f0 [gcmole] Fix {MutableBigInt::BitwiseAnd} evaluation order warning.
This is a false positive of a potential evaluation order problem flagged
by the newest version of gcmole. While this is strictly speaking safe,
it is not statically known that the default argument of the fourth
parameter to {AbsoluteAndNot} is a nullptr and hence not a stale raw
reference. Since this is the only false positive of this kind in the
code base, I would vote to just avoid it by sequencing the operations.

R=jkummerow@chromium.org
BUG=v8:8813

Change-Id: I4a8f2ed4eb09766ce98e4e3d32f680a3a84eedf7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523548
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60259}
2019-03-15 09:41:39 +00:00
Tom Anderson
93ee541417 Disable V8 snapshot on 32-bit win/cross builds
Clang crashes in this configuration.  See https://crbug.com/942347 for context.

BUG=chromium:942347
R=machenbach
CC=thakis

Change-Id: Iffcad9556ed92ecfbd4ee062a5ed7f8c8cac1914
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524639
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60258}
2019-03-15 08:48:39 +00:00
Maya Lekova
fb701a9a2f Revert "Reland: [inspector] Allow limiting the total size of collected scripts."
This reverts commit ba00d8b776.

Reason for revert: Breaks arm64 bots (native & simulator) - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim/17252

Original change's description:
> Reland: [inspector] Allow limiting the total size of collected scripts.
> 
> Introduces the setMaxCollectedScriptsSize Debugger protocol method.
> If the max size is set, the debugger will hold collected (not referenced by other v8 heap objects)
> scripts up to the specified total size of their sources.
> 
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518556
> > Commit-Queue: Alexei Filippov <alph@chromium.org>
> > Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
> 
> BUG=v8:8988
> TBR=dgozman@chromium.org
> 
> Change-Id: I6f7da07c4c9ae35b5252aabddb98b693ec77b4e8
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524662
> Reviewed-by: Alexei Filippov <alph@chromium.org>
> Commit-Queue: Alexei Filippov <alph@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#60255}

TBR=dgozman@chromium.org,alph@chromium.org

Change-Id: I04e3616d46620f33d0ec349fb7b0c393f276dc0c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8988
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524484
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60257}
2019-03-15 07:43:50 +00:00
Aseem Garg
07f94555fb [wasm] Add minimum to MemoryDescriptor and TableDescriptor
This CL allows for either of 'minimum' or 'initial' for MemoryDescriptor
and TableDescriptor. It also adds a flag for the reflection features.

R=binji@chromium.org,adamk@chromium.org
Bug=v8:7742

Change-Id: Icfd4825f63e1eb784a39d10f740d55e81489eba7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1485243
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60256}
2019-03-15 06:14:39 +00:00
Alexei Filippov
ba00d8b776 Reland: [inspector] Allow limiting the total size of collected scripts.
Introduces the setMaxCollectedScriptsSize Debugger protocol method.
If the max size is set, the debugger will hold collected (not referenced by other v8 heap objects)
scripts up to the specified total size of their sources.

> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518556
> Commit-Queue: Alexei Filippov <alph@chromium.org>
> Reviewed-by: Dmitry Gozman <dgozman@chromium.org>

BUG=v8:8988
TBR=dgozman@chromium.org

Change-Id: I6f7da07c4c9ae35b5252aabddb98b693ec77b4e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524662
Reviewed-by: Alexei Filippov <alph@chromium.org>
Commit-Queue: Alexei Filippov <alph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60255}
2019-03-15 05:45:29 +00:00
Ben Smith
4b796a9093 [wasm] Enable saturing float-to-int by default
Bug: v8:7226
Change-Id: Ia2ed97b193e77a016aa10e7abd50ce59ea38f7a0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518558
Commit-Queue: Ben Smith <binji@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60254}
2019-03-15 05:31:19 +00:00
Ben Smith
94f22de62e [wasm] Implement bulk memory in interpreter
This CL only provides the implementation of memory.{init,copy,fill} and
data.drop.

Bug: v8:8965
Change-Id: I439f2520bfee8f147e4b0d1d31f954aaad2e14ad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1510575
Commit-Queue: Ben Smith <binji@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60253}
2019-03-15 05:29:59 +00:00
Aseem Garg
74714df2cc [wasm] Add type function to WebAssembly.Global
R=binji@chromium.org,adamk@chromium.org
Bug=v8:7742

Change-Id: I5b9a614dd0c8b028d756cbd401c803de4cb9437f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1513159
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60252}
2019-03-15 05:16:29 +00:00
v8-ci-autoroll-builder
bff0409573 Update wasm-spec.
Rolling v8/test/wasm-js/data: dae979a..a2b5691

Editorial: Extract an "asynchronously instantiate a WebAssembly module" algorithm. (Daniel Ehrenberg)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/a2b5691

Editorial: Extract an "instantiate the core of a WebAssembly module" algorithm. (Daniel Ehrenberg)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/4ecc1b1

Editorial: Remove an unnecessary local variable in "create an instance object". (Daniel Ehrenberg)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/e4bea69

Editorial: Extract a "create an instance object" algorithm. (Daniel Ehrenberg)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/0555abc

Editorial: Extract a "read the imports" algorithm. (Daniel Ehrenberg)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/e738239

Editorial: Stop breaking lists to insert a note. (Ms2ger)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/e692daa

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

Change-Id: If5d941a44b9c37d5ad2f2f76e3a726cefa9557fa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1525098
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@{#60251}
2019-03-15 04:45:49 +00:00
Aseem Garg
a0bdda2495 [wasm] Add type function to WebAssembly.Table
This CL also changes the constructor for WasmTableObject so that the
maximum_length is set to undefined instead of a default value if there's
no maximum provided.

R=binji@chromium.org,adamk@chromium.org
Bug=v8:7742

Change-Id: I6310224e9997464bf69c198e2694a6cd76e01e8f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1513156
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60250}
2019-03-15 04:22:29 +00:00
v8-ci-autoroll-builder
aa420efed9 Update V8 DEPS.
Rolling v8/build: 2678ddc..77c810a

Rolling v8/buildtools: 4457947..62f9eb0

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/2afe880..f8e2315

Rolling v8/third_party/depot_tools: 40c1942..1c2fa0f

Rolling v8/tools/clang: 8a36736..3dd606a

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

Change-Id: If25a10068d40afd68abab42534b8fbafc0834848
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1525097
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@{#60249}
2019-03-15 03:38:39 +00:00
peterwmwong
4b9b23521e [builtins] Port String.prototype HTML functions to Torque
Consolidates all the work into a single TFS builtin (CreateHTML)
called by all these functions. Reduces the builtin size by
about half.

Change-Id: I92b2c7889f72db4c8c79d7ef0ce0e61036ab619e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1522727
Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60248}
2019-03-14 22:12:18 +00:00
Matt Gardner
d68cdcae8f [torque] Convert name and string types layouts to torque
Bug: v8:8952
Change-Id: I099de2052941684d4ca714062a52c82ef0bb3850
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1516473
Commit-Queue: Matt Gardner <magardn@microsoft.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60247}
2019-03-14 18:23:09 +00:00
Caitlin Potter
6487ad7a33 [esnext] allow hashbang in eval() and unskip hashbang test262 tests
Fix original imlpementation to support occurrence in eval(), and unskip
tests.

BUG=v8:8523
r=gsathya@chromium.org, mathias@chromium.org, littledan@chromium.org

Change-Id: I80a3e8623357947c564a6cdf865eeff435b8e640
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1510792
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Caitlin Potter <caitp@igalia.com>
Cr-Commit-Position: refs/heads/master@{#60246}
2019-03-14 18:16:49 +00:00
Leszek Swirski
b240733fd5 [gdb] Add helper for creating an object from a pointer
Since the new Objects were introduced, we can no longer cast integers to
and Object pointer and call methods on them in gdb (due to how gdb's
expression evaluator deals with temporaries). So, we add a new helper
method to our gdbinit, "$job", which takes an address and returns an
Object that is now exists in real (stack) memory.

Bug: v8:8994
Change-Id: I760a007e7d2303e3a4b1fecb87e094fb9974e91e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523329
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60245}
2019-03-14 17:33:19 +00:00
Sigurd Schneider
d77a2a6c1d [turbofan] Refactor how record write mode is determined
Change-Id: Ib9f423439f418be5ef15e2a65b9118f8f234cb5b
Bug: v8:8834
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524201
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60244}
2019-03-14 16:36:37 +00:00
Ulan Degenbaev
2f5e831090 Use the std version of copysign math function
This should have no effect unless the embedder uses an old version
of the standard library with missing overloads of <math.h> functions,
which causes such functions to perform implicit conversion to double.
In such cases, the CL removes the implicit conversion.

Change-Id: Ib90a461c81b1f354f7acdf32df88257bff20aca8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523549
Auto-Submit: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60243}
2019-03-14 15:17:54 +00:00
Clemens Hammacher
eb1d2d7098 [wasm] Make error messages deterministic
Compilation only stores whether an error has been found, but not the
exact error or it's location. This is generated by running a validation
pass once all wire bytes have been received.
This unifies error messages by removing one more location where we
generate compilation error messages, and makes it deterministic because
a) we always report the error in the first failing function, and
b) if names are present, the error message will always contain the
   function name.

R=titzer@chromium.org

Bug: chromium:926311, v8:8814
Change-Id: I79551b8bb73dcee503484de343a3ada60a6add4f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521112
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60242}
2019-03-14 15:05:18 +00:00
Maciej Goszczycki
e3aad1c84b [heap] Add read-only heap sharing behind a flag
Piggybacking of splitting heap setup, this change adds a shared
read-only heap and a flag to enable it.

Also makes CallOnce use std::function instead of a raw function
pointer so the CL can use lambdas with CallOnce.

Bug: v8:7464
Change-Id: I9a97fb1baa6badca39a7381de3fd9e01f5969340
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518180
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
Cr-Commit-Position: refs/heads/master@{#60241}
2019-03-14 14:57:08 +00:00
Georg Neis
04bb707e52 [turbofan] Preprocess feedback for global accesses (partially)
Main changes:
- Rename ProcessedFeedback to ElementAccessFeedback and introduce a base class
  with the old name ProcessedFeedback.
- Introduce another kind of ProcessedFeedback, namely GlobalAccessFeedback for
  the LoadGlobal/StoreGlobal IC. It's either a PropertyCell or a script context
  slot.
- Produce such processed feedback in the serializer, when visiting LdaGlobal and
  similar bytecodes.
- Consume it, and disallow heap access, in JSNativeContextSpecialization's
  ReduceJSLoadGlobal and ReduceJSStoreGlobal (for --concurrent-inlining).

Minor changes:
- Introduce a FeedbackSource class (pair of FeedbackVector and FeedbackSlot)
  that is used as the key of the processed feedback hash table. We already have
  two similar classes, FeedbackNexus and VectorSlotPair, but both are unsuitable
  for technical reasons (e.g. FeedbackNexus construction accesses the heap).
  Eventually we should remove VectorSlotPair.
- Processed feedback is now returned as a pointer, which is nullptr if the
  original feedback wasn't interesting (e.g. megamorphic).

The title says "partially" because the CL doesn't yet take into account named
accesses where the receiver happens to be the global proxy.

Bug: v8:7790
Change-Id: I4404d98636b91a8f2d5667115944bae4773a4770
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518184
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60240}
2019-03-14 14:42:48 +00:00
Andreas Haas
e8af602dd2 [wasm] Add test for element section with non-zero table indices
R=mstarzinger@chromium.org

Bug: v8:7581
Change-Id: Id8b9c3596eb6caf5ee7048a87a676a85dba0c5dc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1520711
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60239}
2019-03-14 14:28:06 +00:00
Clemens Hammacher
0bf27ef53e [wasm][decoder] Remove unneeded DCHECK
This simplifies some code by removing unneeded checks and early
returns. I just accidentally hit got one more instance of this, and I
think we should get rid of the requirement of only decoding LEBs that
start before the end pointer of the decoder.

R=titzer@chromium.org

Change-Id: I608c5c1c292088ac14fac20b7cb030f39c165bd7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523550
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60238}
2019-03-14 14:09:45 +00:00
Michael Starzinger
e5d10c491e [gcmole] Provide packaging script for gcmole deployment.
This is a minimalistic script usable for creating packages of gcmole
together with the corresponding Clang. Such packages are used on V8's
infrastructure.

R=machenbach@chromium.org
BUG=v8:8813

Change-Id: Iee3594a3acdc7a4e5b5d5628e5557725d27d9ced
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523068
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60237}
2019-03-14 13:50:30 +00:00
Santiago Aboy Solanes
2ae99adfb6 Revert "[ptr-compr] Correct size for tagged values in GetByteWidth"
This reverts commit 57bc36aa8f.

Reason for revert: Frame may not be allowed accesses to half size location. Reverting as a precautionary measure.

Original change's description:
> [ptr-compr] Correct size for tagged values in GetByteWidth
> 
> Bug: v8:8477
> Change-Id: Id565bb8a4d420b715e3e89325786de699e30b22c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1517883
> Reviewed-by: Michael Stanton <mvstanton@chromium.org>
> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#60197}

TBR=mvstanton@chromium.org,solanes@chromium.org

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

Bug: v8:8477
Change-Id: Id0482074972194d8e8c531e0ea06da762e0262b7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523347
Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60236}
2019-03-14 11:18:16 +00:00
Leszek Swirski
6861278461 [build] Suppress UBSan alignment checks in pointer compression
It is a design decision of pointer compression to allow unaligned pointers,
so disable this check in UBSan.

Bug: v8:7703
Change-Id: I3fab34e77ad755cdef3cd385a3615e3d0e350c16
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523346
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60235}
2019-03-14 10:48:17 +00:00
Maya Lekova
ba6f813c2d [turbofan] Remove unnecessary call to Compiler::Compile from JSInliner
Introduced a CHECK instead and details about the invariant it relies on.

R=neis@chromium.org, rmcilroy@chromium.org

Change-Id: I568fc6d737c6bf70bd7aabf47df22651e3fcf8fc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1517882
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60234}
2019-03-14 10:31:26 +00:00
Clemens Hammacher
7271e97f3e [platform] Switch to std::atomic
We want to get rid of the atomicops library, hence switch all uses to
std::atomic.

R=mlippautz@chromium.org

Bug: v8:8926, v8:8834

Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel
Change-Id: I9b7cca83703775b1ddee4f16f51b7ad6535bb67c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1520717
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60233}
2019-03-14 09:55:26 +00:00
Leszek Swirski
d82c9afb8c [api] Add unique_ptr constructor for StreamedSource
Since StreamedSource takes ownership of the ExternalSourceStream
passed into it, it should take it by unique_ptr rather than raw
pointer to signal this transfer of ownership. The old constructor
is now deprecated.

Change-Id: I24681926c2f3141f7dd3664f72019a4c6deabfd7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1520713
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60232}
2019-03-14 09:42:26 +00:00
Maya Lekova
77f9b28767 Revert "[ptr-compr][x64] Temporarily enable pointer compression on x64"
This reverts commit 589d1a6b75.

Reason for revert: Breaking UBSan - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/5219

Original change's description:
> [ptr-compr][x64] Temporarily enable pointer compression on x64
> 
> ... and make sure that the x64 ptr-compr bots proceed testing V8 without
> pointer compression in order to keep testing the full pointer mode.
> 
> Bug: v8:7703
> Change-Id: Iee725deda813425a6f0722948b54976154f50909
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139
> Reviewed-by: Michael Hablich <hablich@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#60230}

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

Change-Id: I5a9f04acba1ef23ae944d97a029ea018808c7fcb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7703
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1522991
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60231}
2019-03-14 09:28:48 +00:00
Igor Sheludko
589d1a6b75 [ptr-compr][x64] Temporarily enable pointer compression on x64
... and make sure that the x64 ptr-compr bots proceed testing V8 without
pointer compression in order to keep testing the full pointer mode.

Bug: v8:7703
Change-Id: Iee725deda813425a6f0722948b54976154f50909
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139
Reviewed-by: Michael Hablich <hablich@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60230}
2019-03-14 09:16:26 +00:00
Maya Lekova
71206891a4 Revert "[inspector] Allow limiting the total size of collected scripts."
This reverts commit 5a61630d1d.

Reason for revert: Breaking gc stress bot - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20gc%20stress/21477

Original change's description:
> [inspector] Allow limiting the total size of collected scripts.
> 
> Introduces the setMaxCollectedScriptsSize Debugger protocol method.
> If the max size is set, the debugger will hold collected (not referenced by other v8 heap objects)
> scripts up to the specified total size of their sources.
> 
> BUG=v8:8988
> 
> Change-Id: I94d52866494102add91ca2d569a2044b08c9c593
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518556
> Commit-Queue: Alexei Filippov <alph@chromium.org>
> Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#60227}

TBR=dgozman@chromium.org,alph@chromium.org,kozyatinskiy@chromium.org

Change-Id: I26de645e425f0f7d5aa8212eeefda76dad695b78
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8988
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1522988
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60229}
2019-03-14 08:23:17 +00:00
Sergiy Belozorov
1f6bccf428 [tools] Whitespace CL
TBR=sergiyb@chromium.org

Bug: chromium:934964
Change-Id: I4005a0422df68b357e6b34313d31f421c27cc95b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1513612
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60228}
2019-03-14 08:15:56 +00:00
Alexei Filippov
5a61630d1d [inspector] Allow limiting the total size of collected scripts.
Introduces the setMaxCollectedScriptsSize Debugger protocol method.
If the max size is set, the debugger will hold collected (not referenced by other v8 heap objects)
scripts up to the specified total size of their sources.

BUG=v8:8988

Change-Id: I94d52866494102add91ca2d569a2044b08c9c593
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518556
Commit-Queue: Alexei Filippov <alph@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60227}
2019-03-14 07:51:26 +00:00
v8-ci-autoroll-builder
669a73ad70 Update V8 DEPS.
Rolling v8/build: 96d6f98..2678ddc

Rolling v8/buildtools: 794f2d1..4457947

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/967fadd..2afe880

Rolling v8/third_party/depot_tools: 8b94108..40c1942

Rolling v8/third_party/icu: 2fd941d..8c67416

Rolling v8/tools/clang: ff65c25..8a36736

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

Change-Id: I5032fbb6066a8e4891caf0b1201090f1d56e6ac7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1522726
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@{#60226}
2019-03-14 04:04:15 +00:00
Johannes Henkel
1cb390b875 [DevTools] Roll inspector_protocol to a7423d8ca937e658ab3b85e3b02676bced145ba6.
Change-Id: I270de4fa2970c9e33600453aaecc1c786701dcc3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521326
Reviewed-by: Alexei Filippov <alph@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60225}
2019-03-13 18:19:28 +00:00
Maciej Goszczycki
d6c5674541 [heap] Split heap setup to simplify read-only heap API
Splits heap setup to enable a single setup method on read-only heap.
This simplifies shared read-only heap initialization code.

Bug: v8:7464
Change-Id: If4f61e1fbc4780e19dcda2b2d50050b2c204b0e3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518179
Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60224}
2019-03-13 17:55:17 +00:00
Junliang Yan
f306ee1b1e PPC: use DirectCEntry for regexp code
Change-Id: I9bd7c97dd0b36935bd1fb76cd2cbc83a1b28cdfb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521223
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Auto-Submit: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#60223}
2019-03-13 17:44:07 +00:00
Maciej Goszczycki
1140f202e7 Make Heap::InReadOnlySpace static
This enables things like simple DCHECKs in functions that do not have
access to isolate or heap.

Change-Id: I7962c28f0c6a4928ee880f1373501f29e45ae1f8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1517886
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
Cr-Commit-Position: refs/heads/master@{#60222}
2019-03-13 16:55:02 +00:00