Commit Graph

48488 Commits

Author SHA1 Message Date
Peter Marshall
23c4288380 [typedarray] Add a fast-path copy of arrays in IterableToList
Currently we perform the full iteration protocol even when we don't need
to. When IterableToListCanBeElided is true, we still need to create a
copy of the array (from a spec correctness point of view, in case there
are user-JS side-effects that would modify the original).

This CL copies the array directly, skipping the iteration protocol.
This recovers the JSTests/TypedArrays/ConstructArrayLike benchmark
almost completely.

Change-Id: I7f1593dd9af6e4a0485bd654e6c02186c5ae99d0
Reviewed-on: https://chromium-review.googlesource.com/1105995
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53996}
2018-06-25 11:27:37 +00:00
Sergiy Byelozyorov
a47c946d04 Update V8 DEPS.
Rolling v8/buildtools: 6f4dae2..5941c1b

Rolling v8/third_party/android_tools: https://chromium.googlesource.com/android_tools/+log/c22a664..3545ab5

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/fdacd16..2e625dc

Rolling v8/third_party/depot_tools: e09b684..d91a468

Rolling v8/third_party/googletest/src: 9077ec7..ce468a1

Rolling v8/tools/clang: 37fc68b..c6e5ea2

Rolling v8/tools/luci-go: 4cc6820..0e27f88

Rolling v8/tools/swarming_client: 281c390..9a518d0

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

Change-Id: I988c02cd04943c96e28badf97ac232d71e03e935
Reviewed-on: https://chromium-review.googlesource.com/1113185
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53995}
2018-06-25 10:51:45 +00:00
Camillo Bruni
e7f5c5ccc0 Reland "[parser][log] Log script id during background compilation"
This reverts commit a800e05007.

Original change's description:
> Revert "[parser][log] Log script id during background compilation"
>
> This reverts commit aafd5c52ab.
>
> Reason for revert: Tentative revert for
>
> https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64/24825
> https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64%20-%20msvc/3242
>
> Original change's description:
> > [parser][log] Log script id during background compilation
> >
> > - Add separate script-create, script-reserve-id and script-details log events
> > - Add log events for CompilationCache hits and puts
> > - Simplify function event logging by only pass along the script id
> > - Explicitly create Scripts in parse-processor.js on script events only
> > - Create a temporary script id in the ParseInfo for use during background
> >   parsing and compilation
> > - Clean up ParseInfo initialization to centralize creation and use of
> >   script ids
> > - Allow creating Scripts with predefined script ids
> >
> > Bug: chromium:757467, chromium:850038
> > Change-Id: I02dfd1d5725795b9fe0ea94ef57b287b934a1efe
> > Reviewed-on: https://chromium-review.googlesource.com/1097131
> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> > Commit-Queue: Camillo Bruni <cbruni@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#53978}
>
> TBR=ulan@chromium.org,cbruni@chromium.org,gsathya@chromium.org,leszeks@chromium.org
>
> Change-Id: I629f72f51d5e086e2b54658c1fdd18cec268aab2
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:757467, chromium:850038
> Reviewed-on: https://chromium-review.googlesource.com/1112538
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Commit-Queue: Yang Guo <yangguo@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53984}

TBR=ulan@chromium.org,yangguo@chromium.org,cbruni@chromium.org,gsathya@chromium.org,leszeks@chromium.org

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

Bug: chromium:757467, chromium:850038
Change-Id: I3088c86362c06ee50464f1f14e25350b1b8048ad
Reviewed-on: https://chromium-review.googlesource.com/1112539
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53994}
2018-06-25 10:46:34 +00:00
Tobias Tebbi
9061eca256 [turbofan] [wasm] enable switch jump tables by default
With this CL, switch jump tables are enabled even with
--untrusted-code-mitigations

Bug: chromium:849098
Change-Id: I60545ed7bef2cd847710fd9660ef1007aac3b428
Reviewed-on: https://chromium-review.googlesource.com/1110817
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53993}
2018-06-25 09:05:24 +00:00
Shiyu Zhang
f9868eaa53 [builtins] implement fast path of Object.getOwnPropertyNames using CSA.
Migrate the Object.getOwnPropertyNames to the CodeStubAssembler and use the enum cache backing store when
1) the enum cache is avaible
2) the {object} has no elements
3) all own properties are enumerable

This makes a speedup of 10x when using Object.getOwnPropertyNames with fast-path. It improves Speedometer2.0 Inferno case by ~9% on ATOM platform.

Change-Id: I05e1df0e7d9d53d97664c322248cedb106a7b1d0
Reviewed-on: https://chromium-review.googlesource.com/1004434
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com>
Cr-Commit-Position: refs/heads/master@{#53992}
2018-06-25 08:50:54 +00:00
Michael Starzinger
e1f86718e4 [turbofan] Make --trace-turbo-graph annotate successors.
R=herhut@chromium.org

Change-Id: I052aee6778e96feeac5610c52b34b65d26de4dcb
Reviewed-on: https://chromium-review.googlesource.com/1112000
Reviewed-by: Stephan Herhut <herhut@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53991}
2018-06-25 08:46:04 +00:00
jing.bao
65bcf6c287 [ia32][wasm] Add unpacking integer conversions
I32x4U/SConvertI16x8Low/High, I16x8U/SConvertI8x16Low/High

Add pmovsxbw/wd, pmovzxbw/wd and AVX version
Add Palignr, Pmovsxbw/wd, Pmovzxbw/wd macro.
Reconstruct ptest/vptest, Ptest using macro

Change-Id: I4a26b3bb6d5791f72e3192c914758287701e78a0
Reviewed-on: https://chromium-review.googlesource.com/1111691
Commit-Queue: Jing Bao <jing.bao@intel.com>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Reviewed-by: Aseem Garg <aseemgarg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53990}
2018-06-25 04:25:24 +00:00
v8-ci-autoroll-builder
24d8254e72 Update test262.
Rolling v8/test/test262/data: 6c2503a..9bddfae

TBR=adamk@chromium.org,gsathya@chromium.org

Change-Id: I55dc31096a88cb0663bc87f53939c35e3c6422c2
Reviewed-on: https://chromium-review.googlesource.com/1112913
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#53989}
2018-06-23 14:52:30 +00:00
Leszek Swirski
a7da55e66d [GetIsolate] Remove GetIsolate use in PropertyCell
Bug: v8:7786
Change-Id: I2d2e62001294c15411e26b022cad410d54577927
Reviewed-on: https://chromium-review.googlesource.com/1111837
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53988}
2018-06-23 09:55:30 +00:00
Leszek Swirski
83ac43275e [GetIsolate] More low-hanging fruit
Access Isolate* and Heap* wherever already available.

Roughly:
GetIsolate(): -20
GetHeap(): -22
Handle<>(HeapObject): -315
handle(HeapObject): -21

Bug: v8:7786
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I2da36ed1909d849812a1cb6bf94cb735eedca45b
Reviewed-on: https://chromium-review.googlesource.com/1111707
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53987}
2018-06-23 09:53:20 +00:00
Deepti Gandluri
096927c123 [wasm] Fix memory flags for fuzzer test generation
R=clemensh@chromium.org
CC=titzer@chromium.org

Change-Id: Ie9cfc0902e765fe3c7945540a609be9901faedff
Reviewed-on: https://chromium-review.googlesource.com/1110847
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53986}
2018-06-23 00:34:29 +00:00
Aseem Garg
82d447228b [wasm] reduce registers for simd packing in ia32
R=gdeepti@chromium.org
BUG=v8:6020

Change-Id: I01644bca95ff5715122c1bc3923024145586a6fd
Reviewed-on: https://chromium-review.googlesource.com/1112070
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53985}
2018-06-22 23:56:20 +00:00
Yang Guo
a800e05007 Revert "[parser][log] Log script id during background compilation"
This reverts commit aafd5c52ab.

Reason for revert: Tentative revert for

https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64/24825
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64%20-%20msvc/3242

Original change's description:
> [parser][log] Log script id during background compilation
> 
> - Add separate script-create, script-reserve-id and script-details log events
> - Add log events for CompilationCache hits and puts
> - Simplify function event logging by only pass along the script id
> - Explicitly create Scripts in parse-processor.js on script events only
> - Create a temporary script id in the ParseInfo for use during background
>   parsing and compilation
> - Clean up ParseInfo initialization to centralize creation and use of
>   script ids
> - Allow creating Scripts with predefined script ids
> 
> Bug: chromium:757467, chromium:850038
> Change-Id: I02dfd1d5725795b9fe0ea94ef57b287b934a1efe
> Reviewed-on: https://chromium-review.googlesource.com/1097131
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Camillo Bruni <cbruni@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53978}

TBR=ulan@chromium.org,cbruni@chromium.org,gsathya@chromium.org,leszeks@chromium.org

Change-Id: I629f72f51d5e086e2b54658c1fdd18cec268aab2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:757467, chromium:850038
Reviewed-on: https://chromium-review.googlesource.com/1112538
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53984}
2018-06-22 19:46:30 +00:00
Yang Guo
eb785dc0cc Revert "Reland "[wasm] Enable Liftoff by default on ia32 and x64""
This reverts commit 31815e7350.

Reason for revert: Several failures:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win32/14453
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win32%20-%20debug/15144
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Mac64%20ASAN/18385
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64%20ASAN/3469

Original change's description:
> Reland "[wasm] Enable Liftoff by default on ia32 and x64"
> 
> This is a reland of 20f33823c9.
> The GC crash should be fixed by https://crrev.com/c/1108208.
> 
> Original change's description:
> > [wasm] Enable Liftoff by default on ia32 and x64
> >
> > R=titzer@chromium.org, hablich@chromium.org
> >
> > Bug: v8:6600, chromium:787421
> > Change-Id: Ia8ae56ddef3b27b0721d5a66ff19abe098a2c6ca
> > Reviewed-on: https://chromium-review.googlesource.com/1109899
> > Reviewed-by: Ben Titzer <titzer@chromium.org>
> > Reviewed-by: Michael Hablich <hablich@chromium.org>
> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#53965}
> 
> TBR=titzer@chromium.org, hablich@chromium.org
> 
> Bug: v8:6600, chromium:787421
> Change-Id: I2228084d7bd8ef8e96027bbd3dd81bc42d1dc533
> Reviewed-on: https://chromium-review.googlesource.com/1112097
> Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53982}

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

Change-Id: Id53c3cf08fa084108b656b7697786a364dfdf827
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:6600, chromium:787421
Reviewed-on: https://chromium-review.googlesource.com/1112537
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53983}
2018-06-22 19:43:50 +00:00
Clemens Hammacher
31815e7350 Reland "[wasm] Enable Liftoff by default on ia32 and x64"
This is a reland of 20f33823c9.
The GC crash should be fixed by https://crrev.com/c/1108208.

Original change's description:
> [wasm] Enable Liftoff by default on ia32 and x64
>
> R=titzer@chromium.org, hablich@chromium.org
>
> Bug: v8:6600, chromium:787421
> Change-Id: Ia8ae56ddef3b27b0721d5a66ff19abe098a2c6ca
> Reviewed-on: https://chromium-review.googlesource.com/1109899
> Reviewed-by: Ben Titzer <titzer@chromium.org>
> Reviewed-by: Michael Hablich <hablich@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53965}

TBR=titzer@chromium.org, hablich@chromium.org

Bug: v8:6600, chromium:787421
Change-Id: I2228084d7bd8ef8e96027bbd3dd81bc42d1dc533
Reviewed-on: https://chromium-review.googlesource.com/1112097
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53982}
2018-06-22 18:32:29 +00:00
Clemens Hammacher
7f851cd42c Reland "[Liftoff] Fix register use count"
This is a reland of ada648006b, fixed
for 32 bit architectures (register pairs).

Original change's description:
> [Liftoff] Fix register use count
>
> In {SetLocalFromStackSlot}, we decrement the use count of the register
> in the target slot without updating this slot, and then call
> {GetUnusedRegister}. At that point, the register use counts do not
> match the cache state, which leads to errors later on.
> This CL fixes this by marking the target slot as a stack slot after
> reducing the register use count.
>
> It also adds a Validation which helped to find that error and will
> catch similar errors earlier.
>
> R=titzer@chromium.org
>
> Bug: chromium:854050, v8:6600
> Change-Id: I74d3a5aa947ec4247d7b4557567f642bf4082316
> Reviewed-on: https://chromium-review.googlesource.com/1111958
> Reviewed-by: Ben Titzer <titzer@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53976}

TBR=titzer@chromium.org

Bug: chromium:854050, v8:6600
Change-Id: Ibc8801737e9604a8490382c569b0378585625376
Reviewed-on: https://chromium-review.googlesource.com/1112238
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53981}
2018-06-22 17:41:21 +00:00
Alexey Kozyatinskiy
c46aa5bc93 [debug] removed live_edit flag and reimplemented LiveEdit::RestartFrame
It looks like we do not need live_edit flag.

R=dgozman@chromium.org,yangguo@chromium.org

Bug: v8:7862
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I2b635f7d24138894b7a0f94fc90293d50e40f22c
Reviewed-on: https://chromium-review.googlesource.com/1108386
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53980}
2018-06-22 17:29:59 +00:00
Clemens Hammacher
cf2f6a57b5 Revert "[Liftoff] Fix register use count"
This reverts commit ada648006b.

Reason for revert: Failure with slow dchecks: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20debug/20982

Original change's description:
> [Liftoff] Fix register use count
> 
> In {SetLocalFromStackSlot}, we decrement the use count of the register
> in the target slot without updating this slot, and then call
> {GetUnusedRegister}. At that point, the register use counts do not
> match the cache state, which leads to errors later on.
> This CL fixes this by marking the target slot as a stack slot after
> reducing the register use count.
> 
> It also adds a Validation which helped to find that error and will
> catch similar errors earlier.
> 
> R=​titzer@chromium.org
> 
> Bug: chromium:854050, v8:6600
> Change-Id: I74d3a5aa947ec4247d7b4557567f642bf4082316
> Reviewed-on: https://chromium-review.googlesource.com/1111958
> Reviewed-by: Ben Titzer <titzer@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53976}

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

Change-Id: I5b8d8d405dcd7f82ee431cba290419425b9859a1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:854050, v8:6600
Reviewed-on: https://chromium-review.googlesource.com/1112277
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53979}
2018-06-22 16:26:20 +00:00
Camillo Bruni
aafd5c52ab [parser][log] Log script id during background compilation
- Add separate script-create, script-reserve-id and script-details log events
- Add log events for CompilationCache hits and puts
- Simplify function event logging by only pass along the script id
- Explicitly create Scripts in parse-processor.js on script events only
- Create a temporary script id in the ParseInfo for use during background
  parsing and compilation
- Clean up ParseInfo initialization to centralize creation and use of
  script ids
- Allow creating Scripts with predefined script ids

Bug: chromium:757467, chromium:850038
Change-Id: I02dfd1d5725795b9fe0ea94ef57b287b934a1efe
Reviewed-on: https://chromium-review.googlesource.com/1097131
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53978}
2018-06-22 16:05:30 +00:00
Clemens Hammacher
9635e1a303 [wasm] Move wire bytes to the NativeModule
The wire bytes are currently stored as {SeqOneByteString} on the JS
heap. In order to make the {NativeModule} isolate independent, and to
ensure fast access to the wire bytes, they should move to the native
heap.

R=titzer@chromium.org

Bug: chromium:854794, v8:7868, v8:7424
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I36811ec87f780c5b1f6863cd6de89a165aa0b7d5
Reviewed-on: https://chromium-review.googlesource.com/1108208
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53977}
2018-06-22 15:45:59 +00:00
Clemens Hammacher
ada648006b [Liftoff] Fix register use count
In {SetLocalFromStackSlot}, we decrement the use count of the register
in the target slot without updating this slot, and then call
{GetUnusedRegister}. At that point, the register use counts do not
match the cache state, which leads to errors later on.
This CL fixes this by marking the target slot as a stack slot after
reducing the register use count.

It also adds a Validation which helped to find that error and will
catch similar errors earlier.

R=titzer@chromium.org

Bug: chromium:854050, v8:6600
Change-Id: I74d3a5aa947ec4247d7b4557567f642bf4082316
Reviewed-on: https://chromium-review.googlesource.com/1111958
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53976}
2018-06-22 15:40:52 +00:00
Clemens Hammacher
c31cf146bf [Liftoff] Inline {DropStackSlot} method
The method does not do much, and all callers actually overwrite or
delete the stack slot right after calling this method anyways, so there
is no need to make the slot a stack slot first.

R=titzer@chromium.org

Bug: v8:6600
Change-Id: I4fd54d2ed5f86a3e011ddc2748833dc81052ef5b
Reviewed-on: https://chromium-review.googlesource.com/1111848
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53975}
2018-06-22 15:37:59 +00:00
Clemens Hammacher
8723374b4a Revert "[array] Change QuickSort to TimSort for Array.p.sort"
This reverts commit e3229485a8.

Reason for revert: just landed to gather perf feedback.

Original change's description:
> [array] Change QuickSort to TimSort for Array.p.sort
> 
> R=​jgruber@chromium.org
> 
> Bug: v8:7382
> Change-Id: I95d2187d22c3bea4323789042b3426d65fde4999
> Reviewed-on: https://chromium-review.googlesource.com/1111959
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Simon Zünd <szuend@google.com>
> Cr-Commit-Position: refs/heads/master@{#53970}

TBR=jgruber@chromium.org,szuend@google.com

Change-Id: I1e150e856a32039eb241a745bd7e6180f2132430
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7382
Reviewed-on: https://chromium-review.googlesource.com/1112099
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53974}
2018-06-22 15:32:50 +00:00
Dominic Farolino
313bc6d43f [inspector] remove deprecated console methods
As per https://github.com/whatwg/console/issues/27#issuecomment-289312546
and https://bugs.chromium.org/p/chromium/issues/detail?id=706804 we're
leaving the console timeline/timelineEnd methods out of the specification
and testing that implementations do not expose them (relevant WPTs at
https://github.com/web-platform-tests/wpt/blob/master/console/console-tests-historical.any.js).
Their implementations should be removed from Chrome, one of the last
implementers of these legacy methods. The same goes for markTimeline, as
it is deprecated in Chrome and not being included in the spec.

R=bmeurer@chromium.org, kozyatinskiy@chromium.org

Bug: chromium:706804
Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ibe05848fb664d26d16eeb5bdf6f519c1eeb4b2df
Reviewed-on: https://chromium-review.googlesource.com/1082112
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Commit-Queue: Dominic Farolino <domfarolino@gmail.com>
Cr-Commit-Position: refs/heads/master@{#53973}
2018-06-22 15:16:29 +00:00
Deepti Gandluri
f2b90bd4dc [wasm] Catch invalid flags correctly
Cleanup decoding of flags so that invalid flags for sections other than
memory are caught correctly.

Bug: chromium:853453
Change-Id: Ia347d5f7672eee93ca3f6a743f06fba629f55cb5
Reviewed-on: https://chromium-review.googlesource.com/1104976
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53972}
2018-06-22 15:06:39 +00:00
v8-ci-autoroll-builder
9044da680a Update test262.
Rolling v8/test/test262/data: 7dc9215..6c2503a

TBR=adamk@chromium.org,gsathya@chromium.org

Change-Id: I3570f7a9c1e553ea124eea3cf2381dd9a2659fef
Reviewed-on: https://chromium-review.googlesource.com/1111902
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#53971}
2018-06-22 14:50:19 +00:00
Simon Zünd
e3229485a8 [array] Change QuickSort to TimSort for Array.p.sort
R=jgruber@chromium.org

Bug: v8:7382
Change-Id: I95d2187d22c3bea4323789042b3426d65fde4999
Reviewed-on: https://chromium-review.googlesource.com/1111959
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#53970}
2018-06-22 14:32:19 +00:00
Igor Sheludko
edbcb4b465 [csa] Support querying kJSTarget parameter in TFJ builtins.
Bug: v8:7754
Change-Id: I0c74b4025d9e52f3580e2da6bd7ac2b8ec2ee620
Reviewed-on: https://chromium-review.googlesource.com/1104469
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53969}
2018-06-22 14:29:49 +00:00
Ivica Bogosavljevic
f2695f7363 MIPS64: Mark ArraySpliceTorque as isolate dependent
ArraySpliceTorque builtin triggers generation of MIPS specific
trampolines due to its large size, and this code is not PIC
and cannot be isolate independent.

This CL is a workaround that marks ArraySpliceTorque as
isolate dependent on MIPS64.

Bug: v8:7882
Change-Id: I0b5764236268c2529e149b275dcf382dab709682
Reviewed-on: https://chromium-review.googlesource.com/1111847
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53968}
2018-06-22 14:03:49 +00:00
Clemens Hammacher
8152789194 Revert "[wasm] Enable Liftoff by default on ia32 and x64"
This reverts commit 20f33823c9.

Reason for revert: Fails on win32: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win32/14437

Original change's description:
> [wasm] Enable Liftoff by default on ia32 and x64
> 
> R=​titzer@chromium.org, hablich@chromium.org
> 
> Bug: v8:6600, chromium:787421
> Change-Id: Ia8ae56ddef3b27b0721d5a66ff19abe098a2c6ca
> Reviewed-on: https://chromium-review.googlesource.com/1109899
> Reviewed-by: Ben Titzer <titzer@chromium.org>
> Reviewed-by: Michael Hablich <hablich@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53965}

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

Change-Id: I0edc228a88bc74624338852826a90f1f9b6eda0b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:6600, chromium:787421
Reviewed-on: https://chromium-review.googlesource.com/1112017
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53967}
2018-06-22 13:42:06 +00:00
Georg Neis
71e6b8f34b [cleanup] Remove the INLINE and NO_INLINE macros
Use V8_INLINE and V8_NOINLINE instead.

R=sigurds@chromium.org
TBR=yangguo@chromium.org
TBR=hpayer@chromium.org

Change-Id: I1ccfcdc2178ded15ec730ab0577c4fc96a76a4f9
Reviewed-on: https://chromium-review.googlesource.com/1111840
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53966}
2018-06-22 13:14:45 +00:00
Clemens Hammacher
20f33823c9 [wasm] Enable Liftoff by default on ia32 and x64
R=titzer@chromium.org, hablich@chromium.org

Bug: v8:6600, chromium:787421
Change-Id: Ia8ae56ddef3b27b0721d5a66ff19abe098a2c6ca
Reviewed-on: https://chromium-review.googlesource.com/1109899
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Hablich <hablich@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53965}
2018-06-22 13:01:15 +00:00
Igor Sheludko
7bd8fbf2d0 [csa][builtins] Port AdaptorWith[Builtin]ExitFrame builtins to CSA.
Bug: v8:5269, v8:7754
Change-Id: Iadbf7e1174e4cfe9f53310e7e499cc90ed27843b
Reviewed-on: https://chromium-review.googlesource.com/1110372
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53964}
2018-06-22 12:21:05 +00:00
Simon Zünd
3e41a47c50 [torque] Change syntax for "external constants"
This CL changes the syntax for external constants to better reflect
for what they are actually used.

Drive-by change: Ran the format tool on base.tq.

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

Bug: v8:7793
Change-Id: Ie49c28b9c95a05846a2d9801f01b11e5a58d72d9
Reviewed-on: https://chromium-review.googlesource.com/1111706
Reviewed-by: Daniel Clifford <danno@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#53963}
2018-06-22 12:09:10 +00:00
Simon Zünd
f3b5721c75 [torque][cleanup] Move method definitions from .h to .cc
This CL moves every method definition with >5 LoC from
declaration-visitor.h to declaration-visitor.cc.

R=tebbi@chromium.org

Bug: v8:7793
Change-Id: I61b5672c9662608fd33c3a23af6176cfa9791295
Reviewed-on: https://chromium-review.googlesource.com/1111709
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#53962}
2018-06-22 12:08:05 +00:00
Michael Starzinger
d7ea603012 [wasm] Avoid creating temporary source position table.
This changes the WebAssembly pipeline to no longer expect source
position tables for {WasmCode} to be allocated on the GC'ed heap.

R=clemensh@chromium.org
BUG=v8:7721

Change-Id: Ib2c6e3d0840e47b83809f60519c0d1b94af186af
Reviewed-on: https://chromium-review.googlesource.com/1109686
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53961}
2018-06-22 11:33:25 +00:00
Igor Sheludko
be9fd5b123 [csa][builtins] Port Abort builtin to CSA.
Bug: v8:5269, v8:7754
Change-Id: I5cde20c269b60145b20e9cfbbd94bcaf3fac6feb
Reviewed-on: https://chromium-review.googlesource.com/1110132
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53960}
2018-06-22 11:26:25 +00:00
Clemens Hammacher
76ac6372fa [wasm] Prepare enabling liftoff by default on ia32 and x64
Before flipping the flag, some tests need to be adapted. This CL
prepares these tests, such that the flag flip CL really just flips a
flag.

R=titzer@chromium.org, hablich@chromium.org

Bug: v8:6600, chromium:787421
Change-Id: I8030df69cda5f3fb81354350a37f65c0d1c669bd
Reviewed-on: https://chromium-review.googlesource.com/1110363
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Hablich <hablich@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53959}
2018-06-22 11:06:26 +00:00
Igor Sheludko
c8c55fa619 Make CallInterfaceDescriptor the source of truth about presence of context parameter.
Bug: v8:7754
Change-Id: I6e1461d5e4214b5649f850166c3a988019098465
Reviewed-on: https://chromium-review.googlesource.com/1110126
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53958}
2018-06-22 10:11:25 +00:00
Peter Marshall
fc98eff94f [cleanup] Remove some unneeded CodeFactory helpers for builtins
We can just call these builtins from CSA with the CallBuiltin helper
which calls Builtins::CallableFor.

Bug: v8:7754

Change-Id: I11cc9db37aba1b81dc4000600fed84fa84b6ff39
Reviewed-on: https://chromium-review.googlesource.com/1110130
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53957}
2018-06-22 09:50:45 +00:00
Sigurd Schneider
b40b0bd200 [builtins] Add kind specific flag for off-heap trampolines
This CL adds the BUILTIN kind specific flag is_off_heap_trampoline
to Code objects. Code objects hence know whether they are off-heap
trampolines, and can decide whether they need to return the off-heap
instruction start or not without looking at the builtin index and/or
considering the existence of an embedded blob.

Bug: v8:6666
Change-Id: I0fbc540a2624ed5fa8256b807299e2fe4b907dda
Reviewed-on: https://chromium-review.googlesource.com/1109691
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53956}
2018-06-22 09:43:25 +00:00
Georg Neis
27b41ea0ac Restore the descriptor lookup cache outside of Turbofan.
This partially reverts commit bffe040eaa,
which bypassed the cache globally. Now we bypass it only in Turbofan.

R=jarin@chromium.org

Bug: v8:7790, chromium:854976
Change-Id: I62a9904c06915f6f6e4a6b628dc3dcba5151bb87
Reviewed-on: https://chromium-review.googlesource.com/1109969
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53955}
2018-06-22 09:40:55 +00:00
Clemens Hammacher
85ed06e928 [Liftoff] Remove code prologue to check for optimized code
This prologue is not needed any more now that we have the jump table.
If optimized code exists, we will not even enter the Liftoff code any
more, but instead jump to the optimized code right away.
This also allows to remove the {WASM_CODE_TABLE_ENTRY} relocation info
kind.

R=mstarzinger@chromium.org

Bug: v8:7758
Change-Id: I0449693d7434088fb264104fe59365d7ca2b74c6
Reviewed-on: https://chromium-review.googlesource.com/1110222
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53954}
2018-06-22 09:37:04 +00:00
Georg Neis
d817090fcc [turbofan] Eliminate a code dependency in Object.create lowering.
The dependency is unnecessary.

Also add a DCHECK that effectively ensures that the instance size can't
change.

NOPRESUBMIT=true

Bug: v8:7790
Change-Id: Ib68ed044f2f87a0b8b83f4110756f3d3ad96c530
Reviewed-on: https://chromium-review.googlesource.com/1110121
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53953}
2018-06-22 09:24:25 +00:00
Yang Guo
536e12f610 Skip debug/debug-stepout-scope tests on ARM debug
TBR=machenbach@chromium.org

Bug: v8:7877
Change-Id: Id890681e70cea8beef89ea2df2578255906fb7f6
Reviewed-on: https://chromium-review.googlesource.com/1110136
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53952}
2018-06-22 06:09:49 +00:00
Yang Guo
3e70aa32c1 Skip flakily crashing RunWasmTurbofan_Int32DivS_trap_effect test
TBR=clemensh@chromium.org

Bug: v8:7879
Change-Id: Ib8c394fc7696d1eaf831cbfd31e5aada26aa3a9b
Reviewed-on: https://chromium-review.googlesource.com/1111698
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53951}
2018-06-22 06:02:59 +00:00
Yang Guo
c0faab63cd Skip another flaky test262 Atomics test
TBR=binji@chromium.org

Bug: v8:7876
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I95b1a674cb9852f9840e502ceffabbd6fcb689b7
Reviewed-on: https://chromium-review.googlesource.com/1111697
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53950}
2018-06-22 05:23:09 +00:00
Eric Holk
7eea8eda3b [wasm] Add negative guard regions
This change adds an addition 2GiB of guard region in front of guarded
WebAssembly memories. This provides defense in depth against code
generation errors, such as accidental sign extension of a 32-bit value.
As we consider supporting 4GiB WebAssembly memories, this is an
important line of defense.

Change-Id: Ica643c01ef28b5d2a01fbbd46273442545d8448e
Reviewed-on: https://chromium-review.googlesource.com/1108503
Commit-Queue: Eric Holk <eholk@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53949}
2018-06-21 19:02:08 +00:00
Junliang Yan
476cd0f079 PPC: [turbofan] Change way OFF_HEAP_TARGET reloc info is omitted
Port 0f5a07191f

Original Commit Message:

    This CL reverts commit 38bec2eadc and
    implements the same functionality via Assembler::RecordRelocInfo.

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

Change-Id: I5a6d65bb2cc7cdaf1b982b3fb05cbb01b2099db2
Reviewed-on: https://chromium-review.googlesource.com/1110154
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#53948}
2018-06-21 17:32:58 +00:00
Bill Budge
51ded9a743 [wasm simd] Handle more shuffles
- Handles zip, unzip, and transpose shuffles/swizzles.
- Adds punpck* instructions to assembler.

Bug: v8:6020
Change-Id: If124b7a7462ffd0470347b54ce4a93c01667e384
Reviewed-on: https://chromium-review.googlesource.com/1084069
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53947}
2018-06-21 17:17:37 +00:00