Commit Graph

49707 Commits

Author SHA1 Message Date
Dan Elphick
041ae1f879 [builtins] Start adding byte code handlers to builtins
Adds a new build flag, v8_enable_embedded_bytecode_handlers, that adds
the bytecode handlers to the BUILTIN_LIST macros.

Currently it's not connected up to the code-generation so it actually
does nothing except expand the builtins table.

Bug: v8:8068
Change-Id: Iaecc3982cf22d04e6c46169b86c9d694952fd091
Reviewed-on: https://chromium-review.googlesource.com/1179887
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55215}
2018-08-20 13:43:06 +00:00
jgruber
e2de46567a [wasm] Do not try to relocate off-heap trampolines
Off-heap trampolines (short trampolines that jump to .text-embedded
builtin instruction streams) should contain exactly one OFF_HEAP_TARGET
reloc entry.

When AddAnonymousCode is called on such a trampoline, it copies the
(off-heap) *instruction stream* and thus should never perform any
relocations using the *trampoline's* RelocInfo.

Bug: v8:6666
Change-Id: I09a11344fb7e62d759c4c943712e7d4e91199130
Reviewed-on: https://chromium-review.googlesource.com/1179671
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55214}
2018-08-20 13:07:38 +00:00
Michael Starzinger
74004dbf3d [wasm] Actually print WasmModuleObject on debug printing.
R=titzer@chromium.org

Change-Id: If3d6843b7e7542799d8be5a9ecea9ad2f96a8c5a
Reviewed-on: https://chromium-review.googlesource.com/1181021
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55213}
2018-08-20 12:18:52 +00:00
Andreas Haas
af4cf8d150 [wasm] Abort decoding of BlockTypeImmediate after an error was detected
R=titzer@chromium.org

Bug: chromium:875556
Change-Id: I989dbaaec1eac3b7d0c761f25efec043cdeb9d71
Reviewed-on: https://chromium-review.googlesource.com/1180964
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55212}
2018-08-20 12:09:11 +00:00
Benedikt Meurer
35974e2da6 [turbofan] Improve CheckedInt32Mod lowering.
The CheckedInt32Mod lowering in the EffectControlLinearizer wasn't
playing well with subsequent optimizations in the MachineOperatorReducer
especially due to the use of Int32Mod, which introduces another (floating)
diamond in the MachineOperatorReducer. Switching to Uint32Mod and explicit
sign handling fixes the problem, plus we also do the mask trick in the
case where the left hand side is negative now.

With this change the performance on the benchmark mentioned in the bug
report goes from

  console.timeEnd: binary, 1872.346000
  console.timeEnd: modulo, 5967.464000
  console.timeEnd: binary, 6006.789000
  console.timeEnd: modulo, 6293.496000
  console.timeEnd: binary, 5969.264000
  console.timeEnd: modulo, 6291.874000

to

  console.timeEnd: binary, 1876.464000
  console.timeEnd: modulo, 5846.643000
  console.timeEnd: binary, 5962.545000
  console.timeEnd: modulo, 5972.639000
  console.timeEnd: binary, 5958.221000
  console.timeEnd: modulo, 5973.171000

so even the peak performance of the modulus is now mostly the same as
the binary bitwise and.

Bug: v8:8069
Change-Id: Iaf3828fc0f6c53352367e8bf6c42534f8b13bfb3
Reviewed-on: https://chromium-review.googlesource.com/1180971
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55211}
2018-08-20 11:45:32 +00:00
Michael Starzinger
3b8fd36b81 [wasm] Enable --wasm-shared-code by default.
R=titzer@chromium.org
BUG=v8:7424

Change-Id: Ic0b8088402a4f64d1a285298a16285bdca4a7167
Reviewed-on: https://chromium-review.googlesource.com/1180897
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55210}
2018-08-20 11:32:54 +00:00
Dan Elphick
5f69ffae18 [cleanup] Factor out BUILTIN_LIST_INTL macro
Small clean up to create a BUILTIN_LIST_INTL to include in BUILTIN_LIST
rather than having two definitions of BUILTIN_LIST depending on whether
V8_INTL_SUPPORT is enabled.

Change-Id: I05ce83fe478049398392c5204b22961d29eb3622
Reviewed-on: https://chromium-review.googlesource.com/1180967
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55209}
2018-08-20 11:31:47 +00:00
Georg Neis
252c36c900 [turbofan] Avoid use of ObjectLiteralMapFromCache.
Since the number of properties is always 0, we can just directly use the
Object function's initial map.

Bug: v8:7790
Change-Id: I061bd522f5bce1c059cd82f5946d8bc572dbfb27
Reviewed-on: https://chromium-review.googlesource.com/1180887
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55208}
2018-08-20 10:57:53 +00:00
jgruber
d74a9fd595 [regexp] Fix invalid lastIndex handling in RegExp.p[@@replace]
The RegExp replace implementation is a bit of a mess. Here, we first
try to handle parts of RegExp.p.exec, and then call directly into the
raw irregexp code (skipping RegExp.p.exec).

We got parts of this wrong: when lastIndex > string.length and the
regexp instance is sticky, two things should happen. 1. The match
should fail, and 2. lastIndex should be reset to 0. On the fast path,
we did the latter but not the former, instead running exec with a
lastIndex of 0.

This CL omits the irregexp call in this case, and defaults to a failed
match instead.

Bug: chromium:875493
Change-Id: I8c959610d267575e37686076a3fd5dfde322f0ca
Reviewed-on: https://chromium-review.googlesource.com/1180889
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55207}
2018-08-20 10:25:39 +00:00
Georg Neis
3b336a2ee5 [turbofan] Remove now-dead JSFunctionRef::EnsureHasInitialMap.
R=jarin@chromium.org

Bug: v8:7790
Change-Id: I06ace1a150d7c9a7eff1cd49e7eb38596bf0a188
Reviewed-on: https://chromium-review.googlesource.com/1180895
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55206}
2018-08-20 09:56:11 +00:00
Michael Starzinger
62b894b675 [wasm] Fix {IsWebAssemblyCompiledModule} predicate.
This makes sure the aforementioned predicate is independent of the
current context (aka. Realm) and only uses the instance type of the
given object to determine whether it is a WebAssembly module object.

R=titzer@chromium.org
TEST=mjsunit/regress/wasm/regress-8059
BUG=v8:8059

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Icc8e400f8412483f2a3883ca65c58b7ef938ef23
Reviewed-on: https://chromium-review.googlesource.com/1180886
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55205}
2018-08-20 09:17:08 +00:00
Kanghua Yu
3f742bfadd [csa] Further add constant folding optimization.
This optimizes ChangeNumberToFloat64/BuildFastLoop for better code generation.

Change-Id: I54c1a07dfe237d4596f91dd6bab7f1d857bdd8a4
Reviewed-on: https://chromium-review.googlesource.com/1180730
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Kanghua Yu <kanghua.yu@intel.com>
Cr-Commit-Position: refs/heads/master@{#55204}
2018-08-20 09:04:05 +00:00
Florian Sattler
1b5797d556 [parser] Adding more parsing js-perf tests
Bug: v8:7926
Change-Id: I32bfb4399d588b48ba3d00ff02ac0133dbd33e8b
Reviewed-on: https://chromium-review.googlesource.com/1179673
Commit-Queue: Florian Sattler <sattlerf@google.com>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55203}
2018-08-20 08:56:14 +00:00
Michael Starzinger
932246f1b6 Reland "[wasm] Publish new code from the background threads."
This is a reland of f991465b42

Original change's description:
> [wasm] Publish new code from the background threads.
> 
> R=clemensh@chromium.org
> BUG=v8:7921
> 
> Change-Id: Ib86cb5f742907b6e54365827facfc765867ca22e
> Reviewed-on: https://chromium-review.googlesource.com/1156384
> Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54985}

Bug: v8:7921
Change-Id: Ic99f59410b6f26593f4bd4b47209e9cce56481fc
Reviewed-on: https://chromium-review.googlesource.com/1179861
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55202}
2018-08-20 08:30:15 +00:00
v8-ci-autoroll-builder
d3e1a9b305 Update V8 DEPS.
Rolling v8/build: 78faf69..cbc08db

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/3d85a23..f62079a

Rolling v8/third_party/depot_tools: ed0d273..dd765da

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

Change-Id: Ibb59904423a115f82a07b4e1b1eda6badf2b511b
Reviewed-on: https://chromium-review.googlesource.com/1180602
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#55201}
2018-08-18 10:41:43 +00:00
Frank Tang
2dc505a418 [Intl] remove unused js
Bug: v8:8066
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I9d86577540cf227e038354d9661c60fcdc644b3f
Reviewed-on: https://chromium-review.googlesource.com/1179467
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55200}
2018-08-18 01:21:06 +00:00
Frank Tang
cabcfb3a5d [Intl] Move ToDateTimeOptions/ToLocaleDateTime to C++
Bug: v8:7961
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Ic414a51a64040f253da1d7ccf03c558ea70ad2bf
Reviewed-on: https://chromium-review.googlesource.com/1155271
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55199}
2018-08-17 21:24:15 +00:00
Alexei Filippov
8c6415471b [profiler] Remove deprecated TracingCpuProfiler from API.
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I99b98fc131e90788902662e6cb837d93168c93fc
Reviewed-on: https://chromium-review.googlesource.com/1169921
Reviewed-by: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Alexei Filippov <alph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55198}
2018-08-17 19:46:56 +00:00
Sergiy Byelozyorov
e82f793e68 [tools] Fix platform specification for scipi
TBR=machenbach@chromium.org

No-Try: true
Bug: chromium:616879
Change-Id: Icdd2489b64a4b29beb6d561eee8cb2f9c22a96ba
Reviewed-on: https://chromium-review.googlesource.com/1180201
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55197}
2018-08-17 18:49:49 +00:00
Ben L. Titzer
b11cbbc6d5 [typedarray] Move JSArrayBuffer functionality to js-array-buffer.cc
This is a cleanup CL that is preparation for making the byte length
and offsets of typed arrays into unboxed size_t fields.

R=mstarzinger@chromium.org
BUG=v8:7881

Change-Id: Iee8bb2142124c88c71cec7343149ae3f08b40c6c
Reviewed-on: https://chromium-review.googlesource.com/1179829
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55196}
2018-08-17 14:29:37 +00:00
Michael Starzinger
2b89727539 [wasm] Preserve interpreter entry even on tier-up.
This makes sure that a tier-up from Ignition to TurboFan (or any other
code publishing) preserves redirections to the Interpreter. Currently an
interpreted function never switches back to compiled.

R=titzer@chromium.org
TEST=mjsunit/wasm/interpreter-mixed
BUG=v8:7921,v8:8018

Change-Id: Ifca479953509708c998c11cc00b481c232678e00
Reviewed-on: https://chromium-review.googlesource.com/1179661
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55195}
2018-08-17 13:21:59 +00:00
Sergiy Byelozyorov
606fcce2ac Update V8 DEPS.
Rolling v8/build: 7679962..78faf69

Rolling v8/third_party/android_ndk: https://chromium.googlesource.com/android_ndk/+log/5cd8631..4e2cea4

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/f5981fb..3d85a23

Rolling v8/third_party/depot_tools: 421bc3f..ed0d273

Rolling v8/third_party/fuchsia-sdk: 74c827a..454f3b2

Rolling v8/third_party/proguard: d901b76..67ad7bd

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

Change-Id: Ifa11c8924c7571c141ec265d8ca1b8c017c59c8c
Reviewed-on: https://chromium-review.googlesource.com/1179374
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55194}
2018-08-17 13:14:39 +00:00
Ben L. Titzer
5c3092718e Reland "[asmjs] Properly validate asm.js heap sizes"
This is a reland of 5d69010e26

Original change's description:
> [asmjs] Properly validate asm.js heap sizes
> 
> Enforce both engine limitations and spec (http://asmjs.org/spec/latest/)
> limitations on the size of asm.js heaps.
> 
> R=clemensh@chromium.org
> CC=​mstarzinger@chromium.org
> 
> Bug: chromium:873600
> Change-Id: I104c23bbd0a9a7c494f97f8f9e83ac5a37496dfd
> Reviewed-on: https://chromium-review.googlesource.com/1174411
> Commit-Queue: Ben Titzer <titzer@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#55163}

Bug: chromium:873600
Change-Id: Id24070bda3aafb9e1a32af0732a1b18f633ef932
Reviewed-on: https://chromium-review.googlesource.com/1179681
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55193}
2018-08-17 12:49:21 +00:00
Georg Neis
1868fac77a [turbofan] Serialize more native context fields.
R=jarin@chromium.org

Bug: v8:7790
Change-Id: I69dd63e0f2e42591c53fa49899bd44d05b03b852
Reviewed-on: https://chromium-review.googlesource.com/1179154
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55192}
2018-08-17 12:17:11 +00:00
Georg Neis
a880fed521 Fix some naming inconsistencies.
Change-Id: I31cf082abae120dc4f5aa7eadce6513e933d942b
Reviewed-on: https://chromium-review.googlesource.com/1178042
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55191}
2018-08-17 12:09:31 +00:00
Benedikt Meurer
5232b938d7 [turbofan] Optimize index checking for DataView accesses.
Use CheckBounds and reduce the number of checks required to sanitize the
indices for DataView accesses in optimized code. Also constant-fold the
[[ByteLength]] if the DataView is a known compile-time constant (similar
to what we do for TypedArrays already). This further improves performance
of DataViews by 2-7% depending on the exact test case.

With this change DataView and TypedArray accesses themselves are mostly
on par performance wise.

Bug: chromium:225811
Change-Id: I6838339108b8a4dcf9b13ddecab40f1c3632967c
Reviewed-on: https://chromium-review.googlesource.com/1179741
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55190}
2018-08-17 12:01:44 +00:00
jgruber
2f3e1a09e9 Make RelocInfo predicates constexpr
Bug: v8:6666
Change-Id: I9a9c6779138f7ee601a5061401ef0c777ba2b7ca
Reviewed-on: https://chromium-review.googlesource.com/1179678
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55189}
2018-08-17 11:34:09 +00:00
Sigurd Schneider
5e59e5c0f8 [assembler] Move reloc info to its own file
This reduced the number of targets depending on assembler.h
from ~900 to ~350.

Bug: v8:8054
Change-Id: I74ae2ce7a4b27791d0ee25542ee0b2175bedf5f7
Reviewed-on: https://chromium-review.googlesource.com/1174534
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55188}
2018-08-17 09:54:28 +00:00
jgruber
4e686686ec [builtins] More granular assembler options
Now that we pass in assembler options during builtin setup, we can be
more precise in assembler configuration.

Isolate-independent generation is only requested for isolate-independent
builtins. And pc-relative jumps additionally need a valid code range.

Bug: v8:6666
Change-Id: I64dfb414549a2f1e87610244c48d9405e63a1b12
Reviewed-on: https://chromium-review.googlesource.com/1177707
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55187}
2018-08-17 09:50:18 +00:00
Marja Hölttä
a1e2dcafc5 [in-place weak refs] Force compacted WeakFixedArrays into old space.
This way the snapshot will contain only old space objects.

BUG=v8:7308

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Ib19642795b1e8c7cbeda5162be86909c1a777767
Reviewed-on: https://chromium-review.googlesource.com/1177384
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55186}
2018-08-17 09:29:44 +00:00
Ulan Degenbaev
9554b5fce3 [heap, iwyu] Refactor write-barrier for code.
This moves write-barrier for writes into code to heap-write-barrier.h
and adds four new functions:
- WriteBarrierForCode(host, rinfo, object) - combined generational
  and marking write barrier.
- WriteBarrierForCode(host) - combined write barrier that rescans
  all pointers in the host (former RecordWritesIntoCode).
- GenerationalWriteBarrierForCode.
- MarkingWriteBarrierForCode.

Bug: v8:8054,v8:7490
Change-Id: Ib1e07cfa1d5998fca2fa44e2ad08c52305f1373f
Reviewed-on: https://chromium-review.googlesource.com/1174436
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55185}
2018-08-17 09:21:23 +00:00
Dan Elphick
f5766155b7 [serializer] Break out instance types by space
When printing the number and size of the instance types in each
snapshot, break out each line into the number for each AllocationSpace.

(This removes the specific RO_SPACE path that just broke out its stats).

Change-Id: I9d5bcecc4f0e8e1ec5c83409f54164f9bf83c5be
Reviewed-on: https://chromium-review.googlesource.com/1175826
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55184}
2018-08-17 09:18:09 +00:00
Ben L. Titzer
515d3400d1 [objects] Split js-array-buffer.h from js-array.h
JSArrays and JSArrayBuffers are very different animals. As such,
split the js-array.h header into two parts.

R=ulan@chromium.org,mstarzinger@chromium.org

Bug: v8:5402
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I82f987ecea3e2e1ceaf8f8962a2b88165558c57e
Reviewed-on: https://chromium-review.googlesource.com/1177760
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55183}
2018-08-17 08:58:08 +00:00
Hai Dang
1ad4f28407 [turbofan] Remove unnecessary check for prototype map in reducers for Array.
Change-Id: Ib53ebb8372bd952f038edc06166e7d1c8b05abc2
Reviewed-on: https://chromium-review.googlesource.com/1174549
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55182}
2018-08-17 08:37:48 +00:00
Jaroslav Sevcik
2633a316d3 [turbofan] Add AllocationSite serialization to the heap broker.
Bug: v8:7790
Change-Id: I268e8673ca5c8f6737cae8190d78caf325e864bd
Reviewed-on: https://chromium-review.googlesource.com/1177604
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55181}
2018-08-17 08:12:28 +00:00
Andrey Lushnikov
494531984e Roll inspector-protocol to c22d4bd88fb7a39bc41c3b1adcdd733cc9b5e8ea
R=dgozman

Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I5fd64b95772ed061c0a432431a6e5273e5d44790
Reviewed-on: https://chromium-review.googlesource.com/1149321
Commit-Queue: Andrey Lushnikov <lushnikov@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55180}
2018-08-17 06:14:20 +00:00
Kanghua Yu
81837c341a [csa] Apply constant folding to BranchIfNumberRelationalComparison
This CL refactors the CodeAssembler::Branch(condition, true_body, false_body)
which was introduced by https://crrev.com/c/1175488, and this reduces snapshot by 864 bytes.

Change-Id: Ifde7d6f39bd7f265e71fef5bdcc6e69d8ab5be85
Reviewed-on: https://chromium-review.googlesource.com/1175488
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Kanghua Yu <kanghua.yu@intel.com>
Cr-Commit-Position: refs/heads/master@{#55179}
2018-08-17 01:31:29 +00:00
Brian Stell
43fff26fd4 Implement ECMA 402 10.2.2 Intl.*.supportedLocalesOf
Bug: v8:7955, v8:5751
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I2dbba859472059e684ec2c631b7e96d1289f39f0
Reviewed-on: https://chromium-review.googlesource.com/1173165
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Brian Stell <bstell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55178}
2018-08-16 22:18:29 +00:00
Frank Tang
a1c69e8d4d [Intl] Split FormatDate into two functions
Previously, FormatDate implemented two functions:
(a) "DateTime Format Functions" as in ecma402/#sec-datetime-format-functions
(b) "FormatDateTime( dateTimeFormat, x )" as in ecma402/#sec-formatdatetime

This patch split FormatDate into two separate functions exactly as they are specified.

Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Iae47f4d992f1767968e5a6df7d1a45a95bc33192
Reviewed-on: https://chromium-review.googlesource.com/1178886
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55177}
2018-08-16 21:48:36 +00:00
Georg Neis
cfbd826b97 [turbofan] Refactor storage of JSFunctionData::initial_map.
Bug: v8:7790
Change-Id: I1834893f05229834289bc368b00dc314e7de1b65
Reviewed-on: https://chromium-review.googlesource.com/1177746
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55176}
2018-08-16 19:41:52 +00:00
Deepti Gandluri
8ede743041 Cleanup ARM simulator Read/Write helpers
Change-Id: I24893d2db441282df8ac3267b0daf8f163e0edb5
Reviewed-on: https://chromium-review.googlesource.com/1177198
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55175}
2018-08-16 18:27:26 +00:00
Deepti Gandluri
a1f7da8fba [x64] Add assembly/disassembly for left-over SIMD ops
Change-Id: I55d15fd15cc714732139e4bf12bd75f21f922048
Reviewed-on: https://chromium-review.googlesource.com/1174013
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55174}
2018-08-16 18:20:16 +00:00
Leszek Swirski
c07c93f327 Revert "[asmjs] Properly validate asm.js heap sizes"
This reverts commit 5d69010e26.

Reason for revert: New test fails on ARM GC stress bot - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm%20GC%20Stress/8054

Original change's description:
> [asmjs] Properly validate asm.js heap sizes
> 
> Enforce both engine limitations and spec (http://asmjs.org/spec/latest/)
> limitations on the size of asm.js heaps.
> 
> R=​clemensh@chromium.org
> CC=​​mstarzinger@chromium.org
> 
> Bug: chromium:873600
> Change-Id: I104c23bbd0a9a7c494f97f8f9e83ac5a37496dfd
> Reviewed-on: https://chromium-review.googlesource.com/1174411
> Commit-Queue: Ben Titzer <titzer@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#55163}

TBR=mstarzinger@chromium.org,titzer@chromium.org,clemensh@chromium.org

Change-Id: I95ca5306a495bfc0f78d7a29f5d6269fc9c0bdfa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:873600
Reviewed-on: https://chromium-review.googlesource.com/1178141
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55173}
2018-08-16 16:32:43 +00:00
Toon Verwaest
49f7687575 [scanner] Advance rather than setting c0_ to ' ' after skipping multiline comments
Change-Id: I62ddddf64d4de79765469e883295e246a18d7f84
Reviewed-on: https://chromium-review.googlesource.com/1177749
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55172}
2018-08-16 16:25:19 +00:00
Georg Neis
53c3c6a9e5 [turbofan] Precompute ElementsKind generalizations for initial maps.
Bug: v8:7790
Change-Id: I18512b508127c48ab0a1dc5a6a221d0f491bb5fe
Reviewed-on: https://chromium-review.googlesource.com/1175917
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55171}
2018-08-16 15:44:45 +00:00
Toon Verwaest
12857348b6 [scanner] Simplify HTML comment scanning
Change-Id: I3c04e3cedfa220d58eb1307977b99869485c7f4d
Reviewed-on: https://chromium-review.googlesource.com/1177744
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55170}
2018-08-16 15:38:02 +00:00
Marja Hölttä
bda4096b6a [in-place weak refs] Merge MaybeObjectBrief and Brief
BUG=v8:7308

Change-Id: I36dda6606aecb9e8e2e9604c49e62ec70e3aee29
Reviewed-on: https://chromium-review.googlesource.com/1174447
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55169}
2018-08-16 15:06:58 +00:00
Georg Neis
bcb8d5ad61 [turbofan] Make StringRef::ToNumber optional.
Don't compute the ToNumber conversion of long strings as it is
expensive.

Bug: v8:7790
Change-Id: Ief104f9229f7f633e31d26c98ed24b08a161525b
Reviewed-on: https://chromium-review.googlesource.com/1177719
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55168}
2018-08-16 15:01:46 +00:00
Jakob Kummerow
5803f27357 Revert "Reland "[cleanup] Reland: Remove deprecated functions""
This reverts commit 957854dd60.

Reason for revert: breaks fuzzing builds => blocks rolling, crbug.com/874440

Original change's description:
> Reland "[cleanup] Reland: Remove deprecated functions"
> 
> This reverts commit 717b93852b.
> 
> Reason for revert: Cast build is now fixed
> 
> Original change's description:
> > Revert "[cleanup] Reland: Remove deprecated functions"
> > 
> > This reverts commit c8376b0069.
> > 
> > Reason for revert: Still borked: https://ci.chromium.org/p/chromium/builders/luci.chromium.try/cast_shell_linux/114796
> > 
> > Original change's description:
> > > [cleanup] Reland: Remove deprecated functions
> > > 
> > > This is reland of https://chromium-review.googlesource.com/c/v8/v8/+/1154915
> > > with no changes since the break in chromium for ChromeOS is now fixed.
> > > 
> > > Removes all V8_DEPRECATED functions that weren't recently marked as well
> > > any V8_DEPRECATE_SOON function that relied on using using the address of
> > > an object to get hold of the Isolate.
> > > 
> > > Bug: v8:7786
> > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.chromium.try:linux-chromeos-dbg;luci.chromium.try:linux-chromeos-rel
> > > Change-Id: Ib62d38b9201fd0dab719948cb5ae5a0a164f7013
> > > Reviewed-on: https://chromium-review.googlesource.com/1172350
> > > Reviewed-by: Yang Guo <yangguo@chromium.org>
> > > Commit-Queue: Dan Elphick <delphick@chromium.org>
> > > Cr-Commit-Position: refs/heads/master@{#55119}
> > 
> > TBR=yangguo@chromium.org,delphick@chromium.org
> > 
> > Change-Id: Id1308a694092acfc90a3e7183d66c002feb63999
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: v8:7786
> > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.chromium.try:linux-chromeos-dbg;luci.chromium.try:linux-chromeos-rel
> > Reviewed-on: https://chromium-review.googlesource.com/1174751
> > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#55127}
> 
> TBR=yangguo@chromium.org,leszeks@chromium.org,delphick@chromium.org
> 
> Change-Id: Id65dae1abdad6f854afec9eb59ed2bddd9246f79
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: v8:7786
> Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.chromium.try:linux-chromeos-dbg;luci.chromium.try:linux-chromeos-rel
> Reviewed-on: https://chromium-review.googlesource.com/1175721
> Reviewed-by: Dan Elphick <delphick@chromium.org>
> Commit-Queue: Dan Elphick <delphick@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#55136}

TBR=yangguo@chromium.org,leszeks@chromium.org,delphick@chromium.org

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

Bug: v8:7786
Change-Id: I5dc792a3a1c986b8609487ca6ad1e485a8940521
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.chromium.try:linux-chromeos-dbg;luci.chromium.try:linux-chromeos-rel
Reviewed-on: https://chromium-review.googlesource.com/1177661
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55167}
2018-08-16 14:37:17 +00:00
Ivica Bogosavljevic
a4477e73f8 MIPS64: Fix [callbacks] Properly support RCS for ApiAccessors and Callbacks.
Fix 0027c83440

FLAG_runtime_stats was declared as Int but it was accessed as
pointer. On 64-bit architectures pointer access needs to be
eight byte aligned. This created unaligned memory access
on 64-bit architectures for those architectures that do not
support unaligned memory access.

TEST=mjsunit/wasm/table,cctest/test-accessors/AccessorIC

Change-Id: I569b69583de98b4c5fb7266f23f927bbd006966d
Reviewed-on: https://chromium-review.googlesource.com/1177601
Commit-Queue: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55166}
2018-08-16 14:20:07 +00:00