Commit Graph

65445 Commits

Author SHA1 Message Date
Shu-yu Guo
49dc0e311a [flags] Remove --harmony-dynamic-import
It's shipped since M63.

Bug: v8:5785
Change-Id: Iaa591890edc560bc58b7a6b18ad5787d747f1ba4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509942
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70953}
2020-11-03 17:11:52 +00:00
Frank Emrich
4b6455aab6 [dict-proto] Add support for ordered property dicts, pt.1
This CL adds partial support for objects whose slow mode dictionaries
are OrderedNameDictionaries. This is the case for all slow mode objects
if V8_DICT_MODE_PROTOTYPES is enabled.

Bug: v8:7569
Change-Id: I0b5a0d751e6551e78121569ddefd9e00c164cc5a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2489692
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Frank Emrich <emrich@google.com>
Cr-Commit-Position: refs/heads/master@{#70952}
2020-11-03 16:22:42 +00:00
Mythri A
5326c4f86e [turboprop] Turnoff inlining for Turboprop based on compilation target
Turboprop adds a negative implication for inlining to disable inlining
with turboprop. When we add tiering up support from Turboprop, this
implication means we would no longer inline functions even with
Turbofan. This cl instead turns off inlining for turboprop compilations
so we still don't inline for Turboprop compilations but support
inlining for Turbofan.

Bug: v8:9684
Change-Id: I5c7d2ca02f591ea007d66725200f12a4b0025d85
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2517119
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70951}
2020-11-03 15:11:57 +00:00
Etienne Pierre-doray
b6d1fc1669 [test] Fix platform lifetime in test-streaming-compilation
Currently MockPlatform has shorter lifetime than the isolate that uses
it. Creating isolate before MockPlatform leads to races in concurrent
tasks that were scheduled before the MockPlatform replaced the default
TestPlatform. This caused issues after landing
https://chromium-review.googlesource.com/c/v8/v8/+/2502808

This CL ensures that MockPlatform is valid throughout the whole
lifetime of the isolate

Change-Id: Ia888fba93819ea98b935a1d36307d98dd358fcad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507379
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70950}
2020-11-03 15:06:26 +00:00
Jakob Gruber
c3b2b64be4 [nci] Enable --turbo-nci behind --future to gather perf data
.. to be reverted in a day or two.

Bug: v8:8888
Change-Id: Iee156da614b50c351ca9a07cc497177c92de865d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2512907
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Lutz Vahl <vahl@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70949}
2020-11-03 14:52:07 +00:00
Andreas Haas
4c2fd721d6 [wasm][interpreter] Check for shared memory in atomic.wait
For atomic.wait we have to check in generated code if the memory is
shared. If not, the code has to trap. In compiled code, this is done in
the runtime function. In the interpreter, however, this check was
missing. This CL adds the check to the interpreter.

R=thibaudm@chromium.org

Bug: chromium:1144603
Change-Id: If897e3f10b404ff677341ee14ad9eda7f5e64d16
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2512922
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70948}
2020-11-03 13:21:26 +00:00
Mike Stanton
8574179a90 [feedback] Only take read lock for data pairs on the background thread
Slight performance regression by adding locking around feedback
vector get/set. The lock isn't necessary for reads on the main thread,
since the main thread is the only source of change.

Bug: chromium:1144777
Change-Id: I7cc9898ad0d8e8c468ba150c0bc6bef3176fd256
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2516475
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70947}
2020-11-03 12:53:06 +00:00
Dominik Inführ
70a1de97c6 [heap] Fix flaky test failure in concurrent allocation
Concurrent allocation test was failing flakily. Do not fix this simply
by increasing heap size since this would reduce frequency of GCs.
Instead allow allocations to fail. Even in this case the allocation
code path is still executed which we want to test.

Bug: v8:11084, v8:10315
Change-Id: I0daa9ad9177aab8b02b7decf2ccfd50e0d8ab9b6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2516471
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70946}
2020-11-03 12:48:16 +00:00
Santiago Aboy Solanes
fd1111a486 [object] Ensure FlatContent and FlatStringReader are main thread only
String::FlatContent and FlatStringReader are ways of reading a flat
String. Both of them provide a speedy interface to read a String since
they bypass the dynamic dispatch of String::Get. For this very same
reason, they are not safe to be used from background threads.

Bug: v8:7790
Change-Id: I919ae5e3862df81ff3ebb5131144ff5961197b35
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509596
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70945}
2020-11-03 12:43:56 +00:00
Jakob Gruber
ee9cc344db [objects] Extract compilation-cache-table.cc
Rename files to match contents (src/objects/compilation-cache-table*),
and extract implementations from objects.cc into dedicated .cc file.

Bug: v8:8888
Change-Id: I02915316ee62186f94373b1859c7d8119a1953f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2516473
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70944}
2020-11-03 12:18:49 +00:00
Jakob Gruber
19463165f7 [feedback] Minor name and type changes
Minor refactors to improve readability and consistency between
FeedbackVectorSpec and FeedbackMetadata:

- Rename FeedbackVectorSpec::slots to slot_count.
- Rename FeedbackVectorSpec::closure_feedback_cells to
  create_closure_slot_count, likewise all related fields.
- Store FeedbackVectorSpec::slot_kinds_ as an array of
  FeedbackSlotKind.

Bug: v8:8888
Change-Id: I3a45177163d1484b1625de8dfba5c6c05cfc426d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2512908
Reviewed-by: Mythri Alle <mythria@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70943}
2020-11-03 11:50:29 +00:00
Eric Seckler
7c437e989c tracing: Add v8.stack_trace category to perfetto category list.
This broke building with the use_perfetto_client_library gn flag.

Change-Id: Ifbcaf77286c0d121b463e4867913d63b85da7fc6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2516701
Commit-Queue: Eric Seckler <eseckler@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Auto-Submit: Eric Seckler <eseckler@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70942}
2020-11-03 11:43:59 +00:00
Liu Yu
b1033eb61f [mips64][liftoff] Fix shift instructions
Port 42e8c2310a

Because the shift amount may not a 5-bit or 6-bit value, remove the
DCHECK in shift operations like x86 and arm platforms;

Change-Id: I50e8f4662ced9eadcc4d867c5862077174619f1d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509089
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Auto-Submit: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#70941}
2020-11-03 10:46:19 +00:00
Sathya Gunasekaran
df7a86c3bf Revert "GetCurrentStackPosition() -> base::Stack::GetCurrentStackPosition()"
This reverts commit 8156dd85fc.

Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win64%20ASAN/15800/overview

Original change's description:
> 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}

TBR=mlippautz@chromium.org,clemensb@chromium.org,verwaest@chromium.org

Change-Id: Id18949a3c82171e74370e729cd303607d46c8805
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2515431
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70940}
2020-11-03 09:42:42 +00:00
Simon Zünd
4a26b54d63 Remove dead code in the CommandlineAPI destructor
The CommandlineAPI destructor retrieves the property descriptors for
every function it installed on the global object, but it doesn't do
anything with the descriptor directly, just verifies that it could
retrieve them.

As there are cases where 'getOwnPropertyDescriptor' can actually fail,
such as stack overflow or termination exceptions, we remove the check.

R=yangguo@chromium.org

Bug: chromium:914286
Change-Id: I01147195bdf107131de602789f448abe0afa6b0e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2516470
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70939}
2020-11-03 09:37:59 +00:00
Sathya Gunasekaran
91ace57f43 Reland "[presubmit] Add JS formatting for tools/system-analyzer"
This is a reland of 1ec8f1da4f

Original change's description:
> [presubmit] Add JS formatting for tools/system-analyzer
>
> Bug: v8:10670
> Change-Id: Ifb653ada003719faff261b6e5b2169db37cffdaf
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2282522
> Reviewed-by: Tamer Tas <tmrts@chromium.org>
> Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#68909}

Bug: v8:10670
Change-Id: I4903b3eb8ff39a76594324076f0840b06290044e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2307229
Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70938}
2020-11-03 09:18:49 +00:00
Zhao Jiazhong
efff3d18ec [mips64][wasm-simd] Implement v128.load32_zero v128.load64_zero
Port 9124b7f973
https://chromium-review.googlesource.com/c/v8/v8/+/2485250

Port f89869a213
https://chromium-review.googlesource.com/c/v8/v8/+/2486236

Bug: v8:11038
Change-Id: Ia524e6ca11650b35916f1a78e7c859a570146a50
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2513870
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#70937}
2020-11-03 09:11:39 +00:00
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