Commit Graph

48765 Commits

Author SHA1 Message Date
Alexey Kozyatinskiy
37dcd837db [debug] remove debugger context
After liveedit removed - we do not need this context any more.

R=yangguo@chromium.org
TBR=clemensh@chromium.org

Bug: v8:5530
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Idb43d016d51b8048f6cd2ca590fd7510abcacb49
Reviewed-on: https://chromium-review.googlesource.com/1106802
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54273}
2018-07-05 20:27:43 +00:00
Creddy
bb0975878f [runtime][parser] Use ArrayBoilerplateDescription all the way
* Rename BoilerplateDescription to ObjectBoilerplateDescription
* Add literal_type flag to ObjectBoilerplateDescription,
  which is stored as zeroth element of Fixed array
* Create ArrayBoilerplateDescription with elements_kind and
  constant_elements field
* Replace CompileTimeValue and ConstantElementPair with
  ArrayBoilerplateDescription
* Kill ConstantElementPair and CompileTimeValue

Change-Id: Icb42dcfd575a27e2b64ffd5e2e61f9d703d5e986
Bug: v8:7787, chromium:818642
Reviewed-on: https://chromium-review.googlesource.com/1122411
Commit-Queue: Chandan Reddy <chandanreddy@google.com>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54272}
2018-07-05 19:31:03 +00:00
Théotime Grohens
e814ee3832 [turbofan][dataview] Add DataView Int16/Uint16 getters in TurboFan
This CL adds a Reduction for the DataViewGetInt16 and -Uint16 builtins,
and the corresponding handling in LoadDataViewElement node in the
effect control linearizer.

It also adds tests for the new getters.

Change-Id: I5101755e47657c25f10be1417f105e3ae72a3c39
Reviewed-on: https://chromium-review.googlesource.com/1126919
Commit-Queue: Théotime Grohens <theotime@google.com>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54271}
2018-07-05 16:35:48 +00:00
Yang Guo
664bcd4944 Correctly print NumberDictionary instances
R=cbruni@chromium.org

Change-Id: Iaac9794f2608db21c7b6d6a387085de04f0434d6
Reviewed-on: https://chromium-review.googlesource.com/1127165
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54270}
2018-07-05 15:55:08 +00:00
Yang Guo
ccfa4ca742 [node] reset node checkout on v8 update
This is a temporary measure to get bots back in order.

Bug: chromium:860430

TBR=machenbach@chromium.org

Change-Id: I3275150f4bc5dfe8ab90984e15f8a1a469d70caf
Reviewed-on: https://chromium-review.googlesource.com/1127166
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54269}
2018-07-05 15:46:13 +00:00
Mike Stanton
347ea653b9 Updating top-level OWNERS.
Change-Id: I061df17a2bb713b00c09104c1b7fcfad218b8ad6
Reviewed-on: https://chromium-review.googlesource.com/1126929
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54268}
2018-07-05 15:18:24 +00:00
Michael Starzinger
4061f6eeb2 [wasm] Simplify allocation of export wrappers array.
R=clemensh@chromium.org

Change-Id: I4fb79b1b694c89f348dba71dae0ad68e82b614dc
Reviewed-on: https://chromium-review.googlesource.com/1127051
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54267}
2018-07-05 15:14:33 +00:00
Clemens Hammacher
70cc29ca0c [Liftoff] Add generated code from the background thread
This avoids the need for the finisher task (running on the foreground
thread) for Liftoff code.
This CL just makes the simple change to call {AddCode} from the
background thread. More cleanup will follow in separate CLs.

R=mstarzinger@chromium.org

Bug: v8:6600, v8:7921
Change-Id: I99ef29377efee5be36ba203aa7ed71e2471d86f3
Reviewed-on: https://chromium-review.googlesource.com/1126930
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54266}
2018-07-05 15:13:03 +00:00
Sathya Gunasekaran
f248584b68 [intl] Store resolveLocale on the context
This unblocks new feature work that require this operation from C++,
whilst the porting to C++ is underway.

Bug: v8:5751
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Icb7f05bbea42ecfa1abc3cefb6d1bf8542ed921b
Reviewed-on: https://chromium-review.googlesource.com/1127082
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54265}
2018-07-05 14:57:33 +00:00
Maya Lekova
dd704218bb [async] Improve error handling for async hooks
Replace CHECK with throwing exception when no or invalid arguments
are passed to async_hooks.createHook.

Bug: chromium:860481
Change-Id: Ie5a915ee66f2a0ff79c4df5aef94ff883866ecda
Reviewed-on: https://chromium-review.googlesource.com/1127054
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54264}
2018-07-05 14:49:03 +00:00
Leszek Swirski
f45045cca5 [parser] Move some PPSD sanity checks to debug
Move some of PreParsedScopeData's santity checks, such as the magic
value separating skippable function data from scope data, to be debug
only, to save memory.

Start position of inner skippable functions is still kept, because it's
too good at catching bugs, but we may want to remove it in the future
as well.

Bug: chromium:818642
Change-Id: If86ff1b9845e8dd3b015b4e554d0033328b145bf
Reviewed-on: https://chromium-review.googlesource.com/1127046
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54263}
2018-07-05 14:47:43 +00:00
Toon Verwaest
c7ad1ddd44 [scanner] Drop lonely byte support as it's unused by blink anyway.
The embedder should ultimately be responsible for handling this since they
anyway give us a copy of the data. They can easily make sure that the chunks we
get do not have lonely bytes.

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Ie862107bbbdd00c4d904fbb457a206c2fd52e5d0
Reviewed-on: https://chromium-review.googlesource.com/1127044
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54262}
2018-07-05 14:22:44 +00:00
Michael Starzinger
bfeb78a763 [wasm] Introduce second {WasmModuleObject::New} method.
This introduces a second factory method for allocating new module
objects that are based on existing native modules which are potentially
shared between multiple Isolates.

R=clemensh@chromium.org
TEST=cctest/test-wasm-shared-engine
BUG=v8:7424

Change-Id: I8c74d821542d443a8ad2352cb77b84b445e21acb
Reviewed-on: https://chromium-review.googlesource.com/1126931
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54261}
2018-07-05 14:20:07 +00:00
Georg Neis
9d8d074d44 Revert "Reland "[turbofan] Rewrite CompilationDependencies""
This reverts commit 4b9b9b6845.

Reason for revert: Regresses Octane.

Original change's description:
> Reland "[turbofan] Rewrite CompilationDependencies"
> 
> This is a reland of 52a10e5081, after
> eliminating an invalid assumption about maps.
> 
> TBR=jarin@chromium.org
> TBR=mstarzinger@chromium.org
> 
> Original change's description:
> > [turbofan] Rewrite CompilationDependencies
> >
> > Instead of installing code dependencies during graph reduction,
> > install them after code generation.
> >
> > Bug: v8:7902, v8:7790
> > Change-Id: I8a3798254abb5b9ec7c295a1592aeb6b51f24c7a
> > Reviewed-on: https://chromium-review.googlesource.com/1119913
> > Commit-Queue: Georg Neis <neis@chromium.org>
> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#54170}
> 
> Bug: v8:7902, v8:7790
> Change-Id: I9cbaf98980379b9b17464af5952ec0c47e1cdc6f
> Reviewed-on: https://chromium-review.googlesource.com/1126999
> Reviewed-by: Georg Neis <neis@chromium.org>
> Commit-Queue: Georg Neis <neis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54254}

TBR=mstarzinger@chromium.org,jarin@chromium.org,neis@chromium.org

Change-Id: Iece193046c48ee96ab7952d2b3bd7ad05f39b190
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7902, v8:7790
Reviewed-on: https://chromium-review.googlesource.com/1127119
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54260}
2018-07-05 13:23:19 +00:00
Sathya Gunasekaran
b96129c932 [intl] Specialize GetOption
Creates two different functions specialized for string and boolean
types.

Gets rid of several allocations and keeps the C++ <-> JS type
conversions to a minimum. Improves the API as we don't have to create
the fallback or V8 Strings unnecessarily.

Bug: v8:5751
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I788e43e6ef23f3e9144ff719f01d6334fe6cb9ce
Reviewed-on: https://chromium-review.googlesource.com/1126750
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54259}
2018-07-05 13:17:49 +00:00
Toon Verwaest
5063241306 [scanner] Rewrite character streams by separating underlying bytestreams from buffering.
Additionally now we only scan over flat heap strings.

Change-Id: Ia73c538a3c7923ec66089e16efa529ef3cea2d06
Reviewed-on: https://chromium-review.googlesource.com/1126938
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54258}
2018-07-05 12:59:28 +00:00
Georgia Kouveli
b36368d2dd Reland "[arm64] Use root register for addressing external references."
This is a reland of 8e39af62df

Original change's description:
> [arm64] Use root register for addressing external references.
> 
> This optimization is already done on x64 (7500e507).
> 
> Bug: v8:7844
> Change-Id: Iccc3bb55aa79ef1d4423576c79d9ce6f829f2828
> Reviewed-on: https://chromium-review.googlesource.com/1120343
> Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
> Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54162}

Bug: v8:7844
Change-Id: I2eab2d753fd8e374bf7c912a107c93edc58ef4c7
Reviewed-on: https://chromium-review.googlesource.com/1126259
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
Cr-Commit-Position: refs/heads/master@{#54257}
2018-07-05 12:39:16 +00:00
jgruber
a7dce4fbed [builtins] Add embedded stats to --serialization-statistics
This adds the option to output statistics about the embedded blob.

On x64 release, the output is currently:

Total size:                         724064
Metadata size:                      6832
Instruction size:                   703427
Padding:                            13805
Embedded builtin count:             852
Instruction size (50th percentile): 222
Instruction size (75th percentile): 749
Instruction size (90th percentile): 1871
Instruction size (99th percentile): 9171

Total size is added to our Memory benchmark.

Drive-by: Fix startup / context regexps for Memory benchmark.

Bug: v8:6666, v8:7898
Change-Id: I90d4458877939d3b48593bd9dd3a33971fe78c44
Reviewed-on: https://chromium-review.googlesource.com/1126104
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54256}
2018-07-05 12:33:26 +00:00
Stephan Herhut
7822145ce6 [wasm] Improve register hinting for arguments
When assigning a register to a value that is used as a function
argument, we use a hint to suggest the corresponding register. However,
if the argument is also used after the call, the register will not be
free for the entire live range of the value. Hence we need to split the
live range.
To minimize the number of splits, we aim to choose a register with
maxium availability. This heuristic was implemented based on lifetime
positions with sub-instruction precision. In such a model, argument
registers typically have a shorter available time, as they need to
hold a value before a call, whereas all other registers are free until
right after the call, where they have been overwritten by the called
function. Hence, we typically chose a non-argument register, ignoring
the hint and creating an extra move.
This change moves the heuristic to instruction granularity, which
gives argument and other registers the same free time. We also now
prefer hinted registers if they have the same free time.

Change-Id: Ia8dd73b6c086d28859a836c42ea9ff8afce4c371
Reviewed-on: https://chromium-review.googlesource.com/1124852
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Stephan Herhut <herhut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54255}
2018-07-05 11:48:15 +00:00
Georg Neis
4b9b9b6845 Reland "[turbofan] Rewrite CompilationDependencies"
This is a reland of 52a10e5081, after
eliminating an invalid assumption about maps.

TBR=jarin@chromium.org
TBR=mstarzinger@chromium.org

Original change's description:
> [turbofan] Rewrite CompilationDependencies
>
> Instead of installing code dependencies during graph reduction,
> install them after code generation.
>
> Bug: v8:7902, v8:7790
> Change-Id: I8a3798254abb5b9ec7c295a1592aeb6b51f24c7a
> Reviewed-on: https://chromium-review.googlesource.com/1119913
> Commit-Queue: Georg Neis <neis@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54170}

Bug: v8:7902, v8:7790
Change-Id: I9cbaf98980379b9b17464af5952ec0c47e1cdc6f
Reviewed-on: https://chromium-review.googlesource.com/1126999
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54254}
2018-07-05 11:45:25 +00:00
Ross McIlroy
9a23bdd7ea [Isolate] Fix Isolate::PrintCurrentStackTrace for interpreted frames
Previously we were getting the code object from the stack, so printed incorrect
position details for interpreted frames.

BUG=v8:7916

Change-Id: I2f87584117d88b7db3f3b9bdbfe793c4d3e33fe9
Reviewed-on: https://chromium-review.googlesource.com/1126313
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54253}
2018-07-05 11:37:58 +00:00
Igor Sheludko
45eabd1638 Remove unused ThreadedListZoneEntry and don't include zone.h to utils.h
Bug: v8:7754
Change-Id: Id7701375897f6f3cfac7327404751b43cfdb221c
Reviewed-on: https://chromium-review.googlesource.com/1118888
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54252}
2018-07-05 11:18:28 +00:00
Théotime Grohens
b2d211375e [torque] Remove DataView fast path in Torque
This CL is a manual revert of 3e78711c21.

Adding the fast path did not result in any performance improvement,
and actually decreased DataView performance in the performance test.

Change-Id: I149670088b07c31e44d93ed65505254ec0caf8ba
Reviewed-on: https://chromium-review.googlesource.com/1126925
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Théotime Grohens <theotime@google.com>
Cr-Commit-Position: refs/heads/master@{#54251}
2018-07-05 11:14:08 +00:00
Sathya Gunasekaran
fefc035e70 [map] Remove unused function declaration
Change-Id: I4c86e7ff110b4457a4d52b66462b31b62b42473f
Reviewed-on: https://chromium-review.googlesource.com/1126891
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54250}
2018-07-05 11:10:58 +00:00
Michael Starzinger
46635cc85b [wasm] Fix compilation of test-wasm-shared-engine.cc test.
R=sigurds@chromium.org

Change-Id: I1af61feff81f21792d66af7d9b12fc59ea94aacd

No-Try: true
No-Tree-Checks: true
Change-Id: I1af61feff81f21792d66af7d9b12fc59ea94aacd
Reviewed-on: https://chromium-review.googlesource.com/1126933
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54249}
2018-07-05 11:00:08 +00:00
Michael Starzinger
e2d7129f5f [wasm] First test for sharing the {WasmEngine}.
This is a first set of test cases for sharing an {WasmEngine} and the
contained {WasmCode} between multiple Isolates. Currently this can only
be done using internal API methods on the Isolate, an external API that
is usable by embedders does not exist yet.

R=clemensh@chromium.org
TEST=cctest/test-wasm-shared-engine
BUG=v8:7424

Change-Id: I35541a76b5aceec4519e3a46e6a9ef4d01cad22b
Reviewed-on: https://chromium-review.googlesource.com/1126382
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54248}
2018-07-05 10:40:48 +00:00
Marja Hölttä
cc9d4b1484 [wasm] [in-place weak refs] Simplify WeakArrayList usage.
MaybeObjectHandle already has an API for making a weak pointer.

BUG=v8:7308

Change-Id: I9f8390e0dffec850a24391e7f50a455b86b217f5
Reviewed-on: https://chromium-review.googlesource.com/1125922
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54247}
2018-07-05 10:39:06 +00:00
Andreas Haas
df41fa7a8a [wasm][fuzzer] Do not execute modules with start function
In the WebAssembly fuzzers we detect infinite loops with the
interpreter: if the interpreter does not finish after a finite number
of steps, we do not execute the compiled code. However, we cannot
redirect the start function to the interpreter in the fuzzer, and
therefore we cannot detect infinite loops in the start function. With
this CL we avoid the problem completely by not instantiating a module
in the fuzzer which has a start function. Note that the module still
gets compiled.

R=clemensh@chromium.org

Bug: chromium:858914
Change-Id: Icbbe9a003544918d5267cdd1d9405b21bb681133
Reviewed-on: https://chromium-review.googlesource.com/1126766
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54246}
2018-07-05 10:35:48 +00:00
Leszek Swirski
f8e76e4b97 [GetIsolate] Use RORoots for Oddball checks
Replace Is<oddball>(GetIsolate()) calls with a no-parameter version
that goes through ReadOnlyRoots, and add a version that takes a
ReadOnlyRoots if that is available in the parent (but Isolate isn't).

Also opportunistically clean up a few places where ReadOnlyRoots are
available but we still pass in an Isolate parameter.

TBR=yangguo@chromium.org

Bug: v8:7786
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Icc0b8a7d8f9c6b84c0ec8fe771fcfb75c9dc5468
Reviewed-on: https://chromium-review.googlesource.com/1126302
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54245}
2018-07-05 10:32:49 +00:00
jgruber
2a3cfb5a0c [mips,mips64] Extend IsIsolateIndependent blacklist
Mips and mips64 generate non-position-independent trampolines once code
exceeds 128K in size. This is a quick fix for failing bots, disabling
the ten largest builtins.

TBR=machenbach@chromium.org

Bug: v8:7882, v8:7920
Change-Id: I027ff8452f927f890773210fb99853adf4934bbc
Reviewed-on: https://chromium-review.googlesource.com/1126923
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54244}
2018-07-05 10:31:38 +00:00
Georgia Kouveli
5b3b2be393 [builtins,arm64] Use direct calls for embedded builtins.
This is a port of e5630ea9:
"[builtins,x64] pc-relative builtin-to-builtin calls".

Bug: v8:6666
Change-Id: Id53bf45c6a4fedb1c972ced72984b6673808ee96
Reviewed-on: https://chromium-review.googlesource.com/1126249
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
Cr-Commit-Position: refs/heads/master@{#54243}
2018-07-05 10:26:58 +00:00
Georgia Kouveli
e644b15dd2 [arm64] Add missing simulator instrumentation counter.
Change-Id: Id6163e68877554d67ae447e6607fb6a5944ac8c9
Reviewed-on: https://chromium-review.googlesource.com/1120166
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
Cr-Commit-Position: refs/heads/master@{#54242}
2018-07-05 10:10:28 +00:00
Hannes Payer
ca401356ea Reland "[snapshot] Reduce serialization chunk size to 4K."
This is a reland of 2265a852b4

Original change's description:
> [snapshot] Reduce serialization chunk size to 4K.
>
> This change may slow down deserialization of the snapshot but may result in less fragmentation.
>
> Bug: v8:7887
> Change-Id: Id8bb9f1a561b08b7ae0f10b80aa77bc00eb23172
> Reviewed-on: https://chromium-review.googlesource.com/1125722
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Commit-Queue: Hannes Payer <hpayer@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54198}

TBR=hpayer@chromium.org

Bug: v8:7887
Change-Id: If03f241a80341cb053190c5bc0451fe9a032e1a8
Reviewed-on: https://chromium-review.googlesource.com/1126899
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54241}
2018-07-05 10:05:48 +00:00
Dan Elphick
59af0c3e91 [explicit isolates] Make read-only root Heap accessors private
Now that ReadOnlyRoots is used everywhere to access the read-only roots,
this makes the Heap accessors for such roots private.

It also adds tests that the roots reachable from ReadOnlyRoots are all
in RO_SPACE as well as tests that the roots still publicly accessible
from Heap are not in RO_SPACE. There's a white list in the file for
the few roots where the root pointer itself can change. (For instance
materialized_objects points to empty_fixed_array to start with before
before later pointing to a mutable array).

Also fixes up new use of heap->empty_fixed_array() in elements.cc added
since I cleaned it up.

Bug: v8:7786
Change-Id: I9ac7985c9f85910b5b22d2f9f559dfd04d43ed44
Reviewed-on: https://chromium-review.googlesource.com/1126252
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54240}
2018-07-05 10:04:39 +00:00
Clemens Hammacher
9a0599a31d [Liftoff] Execute more work during background compilation
We can actually prepare everything in the background, all that remains
to do in the finisher task (on the main thread) is actually adding the
code to the {NativeModule}.
As a next step, even that should happen in the background.

R=mstarzinger@chromium.org

Bug: v8:6600
Change-Id: I570f99a9aa7dc7e324046da36cca9b4297f1bc5e
Reviewed-on: https://chromium-review.googlesource.com/1126391
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54239}
2018-07-05 09:59:08 +00:00
Andreas Haas
c0a0c9eb46 [wasm] Store the wasm interpreter stack on the C++ heap
The stack of the wasm interpreter was stored in a zone. However, when
the stack grows, the previous memory of the stack cannot be reused.
With this CL we allocate the stack on the C++ heap to remove this memory
leak.

R=clemensh@chromium.org

Bug: chromium:856594
Change-Id: Idce22c5c1732f7097fc4281c73174892c95f49e2
Reviewed-on: https://chromium-review.googlesource.com/1126301
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54238}
2018-07-05 09:54:28 +00:00
Maya Lekova
d8f0237af2 [builtins] Add reference error for global object property access
Fixes V8 correctness failure when there's a proxy in the global object
prototype chain and unsuccessful attempt is made to access a property.

Bug: chromium:849024
Change-Id: I829e1a6c038982b7c7a77f8bdefb61facb4614f0
Reviewed-on: https://chromium-review.googlesource.com/1124446
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54237}
2018-07-05 09:52:48 +00:00
Sigurd Schneider
8e5269ba04 [turbofan/cleanup] Make code target vector available in all back-ends
The code target vector is used by backends whenever initial code
creation uses immediates that cannot hold a code pointer: An index into
the vector is used instead, and the vector contains the corresponding
code object. This CL makes the code target vector available on all
platforms.

Bug: v8:6666
Change-Id: I2026acd6a77a3465fe2285b84d47866c3b794855
Reviewed-on: https://chromium-review.googlesource.com/1118885
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54236}
2018-07-05 09:23:26 +00:00
Yang Guo
de100afbe0 [snapshot] fix next chunk logic.
If the first object in the space already exceeds the target chunk size,
we would leave the first chunk empty. That violates some assumptions
later when we allocate for deserialization.

R=hpayer@chromium.org, jgruber@chromium.org
TBR=hpayer@chromium.org

Bug: v8:7887
Change-Id: Iee8147fe1205bb6b1c893d48acde1099b5032a14
Reviewed-on: https://chromium-review.googlesource.com/1126763
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54235}
2018-07-05 09:10:06 +00:00
Jaroslav Sevcik
23e021a87a [turbofan] Brokerize JSCreateLowering::JSCreate*Context
Bug: v8:7790
Change-Id: I053eac9c9b49c65a2f751b1b107e32f7603e63a9
Reviewed-on: https://chromium-review.googlesource.com/1126113
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54234}
2018-07-05 08:59:06 +00:00
Clemens Hammacher
ac51bfb5e6 [Liftoff][cleanup] Do not call Liftoff experimental any more
This just fixes the text for the '--liftoff' and '--trace-liftoff'
flags to avoid calling Liftoff "experimental".

R=ahaas@chromium.org

Bug: v8:6600
Change-Id: Iff9032070fe0e18ee77debf376f5453d1a61480e
Reviewed-on: https://chromium-review.googlesource.com/1126114
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54233}
2018-07-05 08:56:35 +00:00
Dominik Inführ
9847f9c89e [heap] Add linear ephemeron marking
After a certain number of iterations in the fixpoint
iteration switch to a linear algorithm. This
algorithm uses a key-to-values map for weak collections
contents to avoid checking all EphemeronHashTables
again.

Bug: chromium:844008
Change-Id: I044fede5911e0a780d088d1ba2bb5343317d9b7a
Reviewed-on: https://chromium-review.googlesource.com/1105835
Commit-Queue: Dominik Inführ <dinfuehr@google.com>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54232}
2018-07-05 07:53:04 +00:00
Yang Guo
0973a40867 Revert "[scanner] Rewrite character streams by separating underlying bytestreams from buffering."
This reverts commit 5f2f418d47.

Reason for revert: Speculative revert for LayoutTest timeouts

https://ci.chromium.org/buildbot/client.v8.fyi/V8-Blink%20Linux%2064/24596
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Linux%2064%20-%20future/4707
https://ci.chromium.org/buildbot/client.v8.fyi/V8-Blink%20Linux%2064%20(dbg)/12467

Original change's description:
> [scanner] Rewrite character streams by separating underlying bytestreams from buffering.
> 
> Additionally now we only scan over flat heap strings.
> 
> Change-Id: Ic449b19aecd7fc3f283a04a3df6a39772d471565
> Reviewed-on: https://chromium-review.googlesource.com/1125854
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Commit-Queue: Toon Verwaest <verwaest@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54224}

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

Change-Id: Ica3026f318a85ec6bb24a38a8cd998f12c146d7e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/1126819
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54231}
2018-07-05 07:37:15 +00:00
Peter Marshall
064a3b1823 [arraybuffer] Remove unused allocation mode internally.
This is just derived from is_wasm_memory.

Change-Id: I2f77fb5e32e325c51de9af4228ca33313c21abc6
Reviewed-on: https://chromium-review.googlesource.com/1126107
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54230}
2018-07-05 07:31:44 +00:00
Daniel Clifford
1813e3d572 [torque] Simplify handling of VisitResults
Only pass around the unadulterated value identifier in the VisitResult class
until the very last moment before code generation, at which point the
declaration that was used to originally define the value is used to generate the
correct final source code string in the context of a l-value or r-value.

Bug: v8:7793
Change-Id: Ifd0c0d245b2eb65c7f3ddb1ad4c87ee235c54a82
Reviewed-on: https://chromium-review.googlesource.com/1125063
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54229}
2018-07-05 06:38:04 +00:00
v8-ci-autoroll-builder
887dbc8311 Update V8 DEPS.
Rolling v8/build: de0662d..0cc2895

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

Change-Id: Ib114c478943e00e4bfb6b688e5471569217e070e
Reviewed-on: https://chromium-review.googlesource.com/1126569
Commit-Queue: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#54228}
2018-07-05 04:17:24 +00:00
Junliang Yan
cd0377c0df PPC/s390: Fix overzealous assert in CallOrConstructVarArgs
Port 34225a6afb

Original Commit Message:

    For spread calls with arrays with double elements but zero length,
    we skip the box-as-heapnumber step; so in this corner case the
    Call builtin sees a FixedDoubleArray, which is fine because it
    doesn't read any of the raw double values from it.
    This patch doesn't change the implementation, it only updates the
    assert to match reality.

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

Change-Id: Iafa52f21fb0bbee5656fdfd6c5f3a50894ff683f
Reviewed-on: https://chromium-review.googlesource.com/1126212
Reviewed-by: Michael Dawson <michael_dawson@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#54227}
2018-07-04 21:03:38 +00:00
Hannes Payer
2377c460e3 [heap] Remove Capacity DCHECK in Expand.
This DCHECK does not hold for compaction spaces that may go over the limit
with large semi-spaces and small old generation size maxima.

Bug: chromium:855960
Change-Id: I39eea4c974b94c170e7314471fb1c50f9a1a2b45
Reviewed-on: https://chromium-review.googlesource.com/1126392
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54226}
2018-07-04 20:29:28 +00:00
v8-ci-autoroll-builder
e14a89c38f Update V8 DEPS.
Rolling v8/build: 7ac2934..de0662d

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/153acbd..8221306

Rolling v8/third_party/depot_tools: 605dd31..5484b86

Rolling v8/third_party/fuchsia-sdk: b334665..272de12

Rolling v8/tools/clang: 39163b8..d8cde7f

Rolling v8/tools/luci-go: 0e27f88..e3d4003

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

Change-Id: Ie71d071d1a3a818a61c4db617b0d09ee41304552
Reviewed-on: https://chromium-review.googlesource.com/1126446
Commit-Queue: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#54225}
2018-07-04 19:22:38 +00:00
Toon Verwaest
5f2f418d47 [scanner] Rewrite character streams by separating underlying bytestreams from buffering.
Additionally now we only scan over flat heap strings.

Change-Id: Ic449b19aecd7fc3f283a04a3df6a39772d471565
Reviewed-on: https://chromium-review.googlesource.com/1125854
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54224}
2018-07-04 18:37:08 +00:00