Commit Graph

65628 Commits

Author SHA1 Message Date
Liu Yu
a63243f8f6 [mips][turboprop] Fix IET to check optimization marker before optimized code
Port 808a5d76dc

Change-Id: Ibdff3a17ac7f2aab12543eb913e8b739559287bd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2515326
Auto-Submit: Liu yu <liuyu@loongson.cn>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70936}
2020-11-03 07:09:29 +00:00
Andreas Haas
239b1621e1 [wasm] Add wasm.WasmToJSWrapperCompilation tracing category
R=clemensb@chromium.org

Bug: v8:11074
Change-Id: Ic65dd7c1f7beac65ae24aab1d657715374434500
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507721
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70935}
2020-11-03 05:56:19 +00:00
v8-ci-autoroll-builder
133e65efd5 Update V8 DEPS.
Rolling v8/build: eb675d7..92c40db

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/dcd4fb3..888c272

Rolling v8/third_party/depot_tools: 9396c2b..655afeb

Rolling v8/tools/clang: e5230a2..4c43492

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: Iac7c9de526c2a1a176fac96bd804cdf5fbf9c68c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2516079
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#70934}
2020-11-03 03:58:59 +00:00
Zhi An Ng
c53ae8d566 [arm][simulator] Break up DecodeAdvancedSIMDTwoOrThreeRegisters
Following the disassembler, break up these opcodes into a separate
function.  The decoding follows the disassembler quite closely, except
in places where the simulator implementation grouped opcodes together to
share code.

Code is all copy paste, more clean ups to follow.

Bug: v8:11074
Change-Id: I426d3542715a27e7c3a49e2118efebe595c7baa4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509091
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70933}
2020-11-03 02:15:18 +00:00
Zhi An Ng
94720ab94e [arm][simulator] Break up Advanced SIMD data processing instructions
These correspond to the SpecialValue 4 and 6, I extracted them out into
their own section, following the decoding guide in the manual (and used
in the disassembler).

Mostly copy paste, actual code changes limited to breaking up logic for
separate opcodes so they end up in different clauses.

Bug: v8:11074
Change-Id: I15d9ed4a65291a55c76a11db3d24803cd79100ef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509090
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70932}
2020-11-03 01:16:18 +00:00
Zhi An Ng
71733d2891 [wasm-simd] Clean up test-run-wasm-simd
IWYU some headers, remove/inline helpers that were only used once.

Bug: v8:11074
Change-Id: I3e3d7e22b56e77076f1a2faac07ca727fb6e4f46
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2513871
Reviewed-by: Ben Smith <binji@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70931}
2020-11-03 00:18:28 +00:00
Michael Lippautz
8156dd85fc GetCurrentStackPosition() -> base::Stack::GetCurrentStackPosition()
Remove the duplicate utility function and use the base::Stack
equivalent instead which provides more stack utilitiy functionality.

Change-Id: Ia7a79f2530b64ceb6e2ce33445c876980b4b2a3d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509595
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70930}
2020-11-02 20:27:38 +00:00
Junliang Yan
37a38eba65 PPC: Disable CP on builtins
Also updated LoadConstantPoolPointerRegisterFromCodeTargetAddress
to add instruction size to the new constant_pool_offset.

Bug: v8:11036
Change-Id: Ib92a1b0606c60f82628d3e63ade54b312e4cf196
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2508691
Commit-Queue: Junliang Yan <junyan@redhat.com>
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70929}
2020-11-02 18:21:58 +00:00
Victor Gomes
5d122bdc59 Revert "[x64][ia32] Add stack overflow check in InvokePrologue"
This reverts commit adceb45979.

Reason for revert:
- ConcurrentAllocationInLargeSpace fails in verify CSA bot: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20verify%20csa/20547
- New test fail on Windows bot: https://ci.chromium.org/p/v8/builders/ci/V8%20Win32/29622

Original change's description:
> [x64][ia32] Add stack overflow check in InvokePrologue
>
> In case of no arguments adaptor frame, we massage the arguments in InvokePrologue pushing undefined objects if the actual argument count is below the parameter count. This CL adds a stack overflow check before pushing these undefined objects to the stack.
>
> Change-Id: I2a88bf6fdfd17958f6f6884143a67d50ea842fd2
> Bug: v8:10201
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2491039
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Georg Neis <neis@chromium.org>
> Commit-Queue: Victor Gomes <victorgomes@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#70927}

TBR=neis@chromium.org,ishell@chromium.org,victorgomes@chromium.org

Change-Id: I7371e1603659ce512a39c0c0a8bb01baf7b916e0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:10201
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2514505
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70928}
2020-11-02 18:10:50 +00:00
Victor Gomes
adceb45979 [x64][ia32] Add stack overflow check in InvokePrologue
In case of no arguments adaptor frame, we massage the arguments in InvokePrologue pushing undefined objects if the actual argument count is below the parameter count. This CL adds a stack overflow check before pushing these undefined objects to the stack.

Change-Id: I2a88bf6fdfd17958f6f6884143a67d50ea842fd2
Bug: v8:10201
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2491039
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70927}
2020-11-02 17:18:28 +00:00
Victor Gomes
df01ab6e71 [arm] Remove arguments adaptor frame
Change-Id: I7df25ca2c7caabed429cfdc0b4aab0aeb5e03fcd
Bug: v8:10201
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2463222
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70926}
2020-11-02 17:06:18 +00:00
Milad Fa
f4d5e8a386 PPC/s390: [turboprop] Fix IET to check optimization marker before optimized code
Port 808a5d76dc

Original Commit Message:

    InterpreterEntryTrampoline checks
    1. If there is any optimization marker, and process the marker by
    calling the correct runtime function
    2. If there is any optimized code, it installs optimized code and starts
    executing optimized code.

    Earlier it was OK to do these two checks in any order, since it wasn't
    possible that we have both a marker and optimized code. Turboprop code
    calls out to IET to process the optimization marker / install next tier
    optimized code. So we have to check for optimization marker before we
    check for optimized code.

R=mythria@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com
BUG=
LOG=N

Change-Id: I37f470809e244f675862e109ae609170a2b019f0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2513792
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#70925}
2020-11-02 16:38:31 +00:00
Vasili Skurydzin
f9bbde868e Adding myself to relevant OWNERS files.
Change-Id: I14941fcc34773791a86c6fb250237279641fd690
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2510070
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Michael Dawson <midawson@redhat.com>
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#70924}
2020-11-02 16:37:28 +00:00
Andreas Haas
a7e8c320c6 [wasm] Run sync compilation with kUserBlocking priority
With the recent switch from the tasks API to the jobs API for thread
management within WebAssembly compilation we got the problem that
TurboFan compilation of a previous compilation can block the Liftoff
compilation of a new compilation. With synchronous compilation, this can
cause significant delays for the user. With this CL we increase the
priority of synchronous compilation so that at least synchronous
compilation can only be blocked by other synchronous compilation. This
fixes issues that we saw on autocad.

Why is it okay to increase the priority of synchronous compilation?
* On the main thread, synchronous compilation is only allowed for small
  modules which should not take long to compile. Also, the compilation
  blocks the main thread and should finish as fast as possible.
* On worker threads, delaying other background work is not such a big
  issue.

Downsides:
* This does not only increase the priority of the initial compilation,
  but also for the TurboFan optimization. Similar to above, for small
  modules on the main thread this should not be a big deal because
  compilation is fast. Big modules can only be compiled on worker
  threads.

Note that this is supposed to be a fix for the problems we see at the
moment with autocad on stable and beta. Eventually compilation job
management should be done by the wasm engine for all WebAssembly
compilation, so that not each WebAssemly module has to do its own
compilation job management.

R=clemensb@chromium.org

Bug: chromium:1142686, v8:11088
Change-Id: Iee4948b2fcad944f587918e9452e6888258857f9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2512911
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70923}
2020-11-02 15:43:58 +00:00
Clemens Backes
cf3a842edb [inspector][fuzzer] Add inspector fuzzer
This adds a first simple version of the inspector fuzzer, which is a
stripped-down version of the inspector-test executable. The fuzzer
generates inputs which are compatible with inspector-test.

There are still memory leaks, and the fuzzer will probably run into
timeouts most of the time. Both of this will be addressed in follow-ups.

R=szuend@chromium.org, machenbach@chromium.org

Bug: chromium:1142437
Change-Id: I4d13da460f571d791a3642b0705a1f07b442c11b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505722
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70922}
2020-11-02 14:29:08 +00:00
Tobias Tebbi
e99f0393ad [torque][wasm] generate C++ class and BodyDescriptor for WasmCapiFunctionData
Drive-by fixes:
 - Use constexpr types to determine C++ type names.
 - Fix factory constructors to not skip write barriers in old generation.

Change-Id: I0ebbfd56c06ad41d02836fb48531ae7eded166bf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400994
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70921}
2020-11-02 14:22:56 +00:00
Michael Achenbach
8c3f81bebf Whitespace change to trigger builders
Change-Id: Ic72d37bd7707633569a01a6639a91f2aef6f03e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2512915
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70920}
2020-11-02 14:16:50 +00:00
Camillo Bruni
58c65035c2 [tools][system-analyzer] Clean up ICPanel and add DOM helper
- Move all createElement helpers onto a separate DOM class
- Make ICPanel.update async
- Show number of selected IC events in the ICPanel header
- Use shared bound functions for event listeners in the ICPanel groups
- Use triangle to mark opened and closed ICPanel groups
- Use global --border-color CSS variable

Bug: v8:10644
Change-Id: Ib35d94db1019d5cdcee057f0f047472f478ab3be
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507718
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70919}
2020-11-02 13:55:10 +00:00
Frank Emrich
4242b1929c [dict-proto] update comment describing layout of ordered hash tables
The comment at the beginning of ordered-hash-table.h desribing the
layout of ordered hash tables seems to have become outdated.

1. There was a "kPrefixSize + " missing in the description of the left
  bound of the first non-fixed-sized part in normal and obsoleted
  tables.

The following only affects obsoleted tables:

2. The bucket count doesn't reside at [kPrefixSize + 0], instead it is
  unchanged w.r.t normal tables, and resides at [kPrefixSize + 2]
3. The next newer table takes place of the element count, residing
  at  [kPrefixSize + 0]. This can be seen by NextTableIndex() being
  defined as NumberOfElementsIndex()
4. The number of removed holes is never written anywhere when
  obsoleting a table. Instead, the number of deleted elements count is
  used for this. This can be see by
  DCHECK_EQ(table->NumberOfDeletedElements(), removed_holes_index);
  in method Rehash
5. kClearedTableSentinel is written to the number of deleted element
  slot when clearing a table, as seen by
  table->SetNumberOfDeletedElements(kClearedTableSentinel);
  in method Clear

Bug: v8:7569, v8:11074
Change-Id: I0e6750fc57c90b6c09fc41f001cd555f7c455fd3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505763
Commit-Queue: Frank Emrich <emrich@google.com>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70918}
2020-11-02 13:42:50 +00:00
Zhi An Ng
f4f7f618c6 [wasm-simd][ia32][x64] Optimize Pshufb calls for AVX
Have a new macro-assembler function Pshufb that does not require dst and
src to be equal, since the vpshufb can have 3 operands. On SEE, if dst
and src are not equal, emit a movapd(dst, src). This saves a move on
AVX.

Small cleanup to use kScratchDoubleReg2 instead of requesting
for a tmp (x64).

Bug: v8:9561
Change-Id: I131ad0456b272da857350762582cac1fb240ae40
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2513868
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70917}
2020-11-02 12:36:30 +00:00
Ulan Degenbaev
9a49b2298f Fix alloc/dealloc size mismatch for v8::BackingStore
On newer compilers the {operator delete} with explicit {size_t}
argument would be instantiated for {v8::BackingStore} and used
in the destructor of {std::unique_ptr<v8::BackingStore>}. The {size_t}
argument is wrong though, since the pointer actually points
to a {v8::internal::BackingStore} object.
The solution is to explicitly provide a {operator delete}, preventing
an implicitly generated {size_t} operator.

Bug:v8:11081

Change-Id: Iee0aa47a67f0e41000bea628942f7e3d70198b83
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2506712
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70916}
2020-11-02 11:57:30 +00:00
Mythri A
804a612cfd [turboprop] Add tiering up support for TurboProp
This cl adds support for tiering up in TurboProp. This cl makes
necessary changes to support tier up but doesn't tier up yet. More
specifically this cl:
1. Introduces a new flag for interrupt_budget_for_midtier and
updates code to use the correct interrupt_budget.
2. Introduces a flag turboprop_as_midtier and necessary support
to tier up. When this flag is enabled, we introduce checks for tierup
and updating interrupt budget.


Bug: v8:9684
Change-Id: I58785ce4b9de46488a22d3b4d0cebedac460a773
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2460822
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70915}
2020-11-02 11:37:50 +00:00
Mythri A
808a5d76dc [turboprop] Fix IET to check optimization marker before optimized code
InterpreterEntryTrampoline checks
1. If there is any optimization marker, and process the marker by
calling the correct runtime function
2. If there is any optimized code, it installs optimized code and starts
executing optimized code.

Earlier it was OK to do these two checks in any order, since it wasn't
possible that we have both a marker and optimized code. Turboprop code
calls out to IET to process the optimization marker / install next tier
optimized code. So we have to check for optimization marker before we
check for optimized code.

Bug: v8:9684
Change-Id: Iaefb51aec9c2de0bcbacbdbd8a5dff513e573036
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505721
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70914}
2020-11-02 10:31:10 +00:00
Hans Wennborg
8b0cb19ea2 Simplify GlobalHandles::NodeBlock<>::From
Use pointer arithmetic to go back to the first nodes_ element
instead of computing the address manually.

Bug: none
Change-Id: I887c41908dc6891ed15aa03698ca2305924dcab2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2512904
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Hans Wennborg <hans@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70913}
2020-11-02 10:21:20 +00:00
Frank Emrich
4c419bce7e [dict-proto] Move CollectKeys, CopyEnumKeysTo, and EnumIndexComparator
This turns the member functions CollectKeysTo and CopyEnumKeysTo of
BaseNameDictionary into helper function in keys.cc; they are only used
there. Further, CollectKeysTo is renamed to CollectKeysFromDictionary.

EnumIndexComparator is moved from keys.cc to dictionary.h.

All moves are motivated by
https://chromium-review.googlesource.com/c/v8/v8/+/2489692 needing
these function in other places.

Bug: v8:7569
Change-Id: Ia8039e98fd00cef45dec376f3c401635b2321761
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509597
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Frank Emrich <emrich@google.com>
Cr-Commit-Position: refs/heads/master@{#70912}
2020-11-02 09:56:42 +00:00
Zhi An Ng
14570fe0c9 [wasm-simd] Enhance Shufps to copy src to dst
Extract Shufps to handle both AVX and SSE cases, in the SSE case it will
copy src to dst if they are not the same. This allows us to use it in
Liftoff as well, without the extra copy when AVX is supported.

In other places, the usage of Shufps is unnecessary, since they are
within a clause checking for non-AVX support, so we can simply use the
shufps (non-macro-assembler).

Bug: v8:9561
Change-Id: Icb043d7a43397c1b0810ece2666be567f0f5986c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2513866
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70911}
2020-11-02 09:51:20 +00:00
Zhi An Ng
d988237e7a [wasm-simd][liftoff][x64] Add missing CPU features for instructions
These instructions require SSE4_1, we need to enable SSE4_1 before
calling them.

These will only fail when there is no AVX and no SSE4_2, and we
unfortunately is not a configuration we test (we test for no-AVX, and
no-AVX && no-SSE4_1 (which also means no-SSE4_2) && no-SSSE3 and
no-SSE3).

Change-Id: I3d49b9c68385c4b5b631c4a82e5e46d388500c06
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2513869
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70910}
2020-11-02 09:32:00 +00:00
Clemens Backes
a52cd8a541 [inspector][fuzzer] Extract more functionality for reuse
This also extracts the {FrontendChannelImpl}, the {SetTimeoutTask}, and
the {SetTimeoutExtension} for reuse by the inspector fuzzer.

R=szuend@chromium.org

Bug: chromium:1142437
Change-Id: I75e49d6fbb4b801ace1ffc9cac963d6b83c52f36
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505717
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70909}
2020-11-02 09:07:00 +00:00
v8-ci-autoroll-builder
0e18a306ed Update V8 DEPS.
Rolling v8/build: 0dfb09a..eb675d7

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: Ic43d9ba2687399b41e04672356163ed075ec6f4d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2512779
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#70908}
2020-11-02 03:46:19 +00:00
Zhi An Ng
19a3c291eb [arm] Add missing disasm and test for vld1r
Bug: v8:11038
Change-Id: Ifb50d8667b03afa045a957ffc8f3df799252e561
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2500939
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70907}
2020-11-02 02:03:09 +00:00
Zhi An Ng
d0dd9cede7 [arm][simulator] Break up decoding of Unconditional
Similar to the changes in the disassembly, break up simulator changes
into smaller functions.

This change only copy pastes implementation into various helper
function, and does not follow the decoding rules in the manual yet, it
is still using SpecialValue. Subsequent changes will clean this up.

Bug: v8:11074
Change-Id: Ic2905406e905fc3df01825047763d083aa0fbff4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505248
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70906}
2020-11-02 01:55:59 +00:00
v8-ci-autoroll-builder
5f24a451b0 Update V8 DEPS.
Rolling v8/build: 079c81c..0dfb09a

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/7030291..dcd4fb3

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I4dbfc06c044626d24160d42d5adf08e9ae968960
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2512546
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#70905}
2020-11-01 03:39:38 +00:00
v8-ci-autoroll-builder
ceaad41b0b Update V8 DEPS.
Rolling v8/build: b8645e7..079c81c

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/24bd418..7030291

Rolling v8/third_party/depot_tools: e8dff37..9396c2b

Rolling v8/tools/clang: 12b3cd3..e5230a2

Rolling v8/tools/luci-go: git_revision:576741d3eed0fa33971fb34cd823650e6f5b47fb..git_revision:1a022d3a4c50be4207ee93451255d71896416596

Rolling v8/tools/luci-go: git_revision:576741d3eed0fa33971fb34cd823650e6f5b47fb..git_revision:1a022d3a4c50be4207ee93451255d71896416596

Rolling v8/tools/luci-go: git_revision:576741d3eed0fa33971fb34cd823650e6f5b47fb..git_revision:1a022d3a4c50be4207ee93451255d71896416596

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I52b4a621b1b1b74d3f4e7071cf438154f30ef5bd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2512544
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#70904}
2020-10-31 03:33:51 +00:00
Camillo Bruni
9c10bfecaf [tools][system-analyzer] Improve map stats panel
- Introduce LazyTable that only shows the first 100 entries and can
  lazily expand
- Make StatsPanel.update method async to not block the UI
- Show "Total" entry as last item in StatsPanel tables
- Fix StatsPanel table entries text alignment
- Remove unused getters from StatsPanel class

Drive-by-fix:
- MapPanel._displayedMapsInTree is undefined when expanding to
  a sub-transition tree

Bug: v8:10644
Change-Id: I5ce7c8b1ee825515cf790a3e52534c3069d8be89
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507716
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70903}
2020-10-30 22:48:18 +00:00
Milad Fa
32250399eb PPC/s390: Use r0 for SmiTag and Compare
Change-Id: Icd452df211c85d83c82812124d14fe6a31e733b7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509553
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#70902}
2020-10-30 20:22:08 +00:00
Etienne Pierre-doray
4fb053d847 [Jobs API] Rename !IsCompleted -> IsActive
IsCompleted is backwards. For a more consistent api, the function is
renamed IsActive and logic is flipped.
Following up on https://chromium-review.googlesource.com/c/v8/v8/+/2461840
The intend is to make the distinction between IsActive and IsValid obvious.

Change-Id: Iaf00b9f6ffa8f1efe93ae29f09899737ef20f04d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2510969
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70901}
2020-10-30 19:57:38 +00:00
Georg Neis
07190e90be [compiler] Replace Min/Max by std::min/max
After c90ff8bd85 this is purely
a cosmetic change.

Change-Id: If804f1b7558ab2f8096e576570f68b848df7423c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509592
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Auto-Submit: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70900}
2020-10-30 15:15:46 +00:00
Michael Lippautz
cfba2e5d4e platform, cppgc: Fix stack handling routines
- Provide GetRealStackAddressForSlot that deals with ASAN fake stacks
  properly, also accounting for the fact that ASAN gets its real stack
  address in a nested call.
- Fix cppgc on-stack getter.
- Reuse platform routines in global handles.

Bug: chromium:1139914, chromium:1056170
Change-Id: If11a40d543b33edcea220bb70f170ac018e15053
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509594
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70899}
2020-10-30 15:07:26 +00:00
Clemens Backes
9f2dce884c [wasm] Fix code publish limits
The idea was to distribute the publish limits to reduce the chance that
different tasks are publishing at the same time. We always used the same
task_id to compute the limits though, so all queues had the same limit.
This CL fixes that by using the task id of the respective queue.

R=thibaudm@chromium.org

Change-Id: I5231aa35b2b53d625fafbb2130b886390fb7d38a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2502292
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70898}
2020-10-30 15:03:46 +00:00
Michael Lippautz
aad7b7ff33 global-handles: Fix ASAN fake stack handling
We previously assumed that a fake stack should be mapped back to a
real stack based on fake-stack offsets. This is not correct: Fake and
real stack are disjoint and both contain the corresponding slot
values.

For global handles this means that on-stack handles must be registered
using their real stack frame base to be able to purge them
occasionally based on the current stack address.

When dealing with a slot though, the GC can just dereference the slot
for a value, indeppendent of whether the slot is in a fake or real
frame.

Drive-by: Fix tests that do not want stack handles by creating
handles on heap.

Change-Id: I2c86c8e047bd0d48c24c2642b2b4dba284a93909
Bug: chromium:1139914
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507720
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70897}
2020-10-30 13:56:36 +00:00
Andreas Haas
1e6fed5f06 [wasm] Remove obsolete CheckHasMemoryForAtomics
This function is equivalent to CheckHasMemory by now.

R=clemensb@chromium.org

Bug: v8:11074
Change-Id: I05fbd160d6e5b8d7433133052a8390521564632b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509590
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70896}
2020-10-30 13:41:16 +00:00
Almothana Athamneh
874227b527 Add Noavx tests to Linux 32 bots
Relanding after failing test on ia32
was fixed.

Bug: v8:11072
Change-Id: I939ed92f8fb7ea84314a79eb62f0d4aed272bea3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509589
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70895}
2020-10-30 11:46:32 +00:00
Benedikt Meurer
1d7579b525 [wasm] Remove "function tables" from the scope chains.
Building these objects takes a lot of time and memory for realistic
applications and exposing them via the Scope view in DevTools isn't
practical either. We have a replacement in the Console now, and if
this needs more exposure we can think about other, more scalable
ways with better UX.

Fixed: v8:10986
Bug: chromium:1141781
Change-Id: I6177d63a987749889a9880cf0738031191eb5705
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507696
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70894}
2020-10-30 11:32:12 +00:00
Zhi An Ng
02b79c2be5 [wasm-simd][x64] Consolidate some instructions into macro list
These operations can be moved into an existing macro list, since they
are simple operations that generate only 1 instruction. The benefit is
that they have support for AVX 3-operand instruction, and does not have
to force dst to be equals to src.

Bug: v8:9561
Change-Id: I9ec1d2496d14cb9f0fb3b4854ca39887eb5bf49b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505240
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70893}
2020-10-30 08:55:06 +00:00
Martin Bidlingmaier
5720d2056c [regexp] Add 'l' flag to force experimental engine
This commit adds the 'l' (linear) RegExp flag (as in e.g. /asdf|123/l)
that forces execution in linear time.  These regexps are handled by the
experimental engine.  If the experimental engine cannot handle the
pattern, an exception is thrown on creation of the regexp.

The commit also adds a new global V8 flag and changes an existing one:
* --enable-experimental-engine, which turns on recognition of the RegExp
  'l' flag.  Previously this flag also caused all supported regexps to
  be executed by the experimental engine; this is not the case anymore.
* --default-to-experimental-regexp-engine takes over the previous
  semantics of --enable-experimental-regexp-engine:  We execute all
  supported regexps with the experimental engine.

Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
Bug: v8:10765
Change-Id: I5622a89b19404105e8be280d454e9fdd63c003b3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2461244
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Martin Bidlingmaier <mbid@google.com>
Cr-Commit-Position: refs/heads/master@{#70892}
2020-10-30 08:33:06 +00:00
Leszek Swirski
a928f5fcc2 [map] Skip loading the field owner before GeneralizeField
GeneralizeField already calculates the field owner.

Change-Id: I0730471479d4289d3d027ea63178ddae659ee2b2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507717
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70891}
2020-10-30 07:40:56 +00:00
v8-ci-autoroll-builder
52c0d0b01d Update V8 DEPS.
Rolling v8/build: acfd692..b8645e7

Rolling v8/third_party/aemu-linux-x64: zy6Zme4YpIqml3lhXc3o7a0r_gVd0_gcggle2n2j330C..uqYfh08DTmvjUgXl-HxNY1ptIb0KpyuY0I9MFaci9-AC

Rolling v8/third_party/android_sdk/public: ijpIFSitwBfaEdO9VXBGPqDHUVzPimXy_whw3aHTN9oC..V__2Ycej-H2-6AcXX5A3gi7sIk74SuN44PBm2uC_N1sC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/15be7eb..24bd418

Rolling v8/tools/clang: f9b4a22..12b3cd3

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I8250aad9d82eb7ec2f5da2aa60b2dee040df6612
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507341
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#70890}
2020-10-30 03:45:26 +00:00
Zhi An Ng
236aff1b08 [wasm-simd][liftoff][ia32] Fix operands on non-AVX
The main fix here is on non-AVX builds, the shifts require dst == src.
Calling macro-assembler functions like Psrlw assumes that we already
met that requirement (which we usually specify in TurboFan's
instruction-selector). On Liftoff, we need to do that check manually.
This is done by using the helper EmitSimdShiftOpImm which will do this
check, and dispatches to AVX if supported, or mov if dst != src.

Also fix a couple of places where we forgot to annotate the required SSE
extension for the instruction.

Bug: v8:11078
Change-Id: Icc31df9ab80c041f4bb3bd48444658368eaa2c91
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505251
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70889}
2020-10-29 23:51:36 +00:00
Zhi An Ng
d4f7ea80df [wasm-simd][x64] Don't fix dst to src on AVX
On AVX, many instructions can have 3 operands, unlike SSE which only has
2. So on SSE we use DefineSameAsFirst on the dst. But on AVX, using that
will cause some unnecessary moves.

This change moves a bunch of instructions that have single instruction
codegen into a macro list which supports the this non-restricted AVX
codegen.

Bug: v8:9561
Change-Id: I348a8396e8a1129daf2e1ed08ae8526e1bc3a73b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505254
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70888}
2020-10-29 23:19:16 +00:00
Leszek Swirski
8e3ae62d29 [map] Try to in-place transition during map update
When searching for a target map during map update, attempt to
update field representations in-place to the more general
representation, where possible.

Bug: chromium:1143772
Change-Id: I6a43c94910a1d2d8f8b0ad89048f94b51461f76c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507715
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70887}
2020-10-29 21:26:16 +00:00