Commit Graph

66189 Commits

Author SHA1 Message Date
Camillo Bruni
94f0536635 [tools] System-analyzer timeline improvements
- Timeline.selection is now a Timeline as well
- Allow remove the current timeline-track selection by double-clicking
  outside-the selection
- Update the timeline-track stats based on the current selection
- Simplify DOM element creation methods
- Add separate SelectionHandler class for timeline-track

Bug: v8:10644
Change-Id: I4f15d6ab4f5ec6b7330e22769472ca3074b00edd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565130
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71497}
2020-11-30 15:56:34 +00:00
Jacek Oleksy
21cec63d11 Initialize float constants using bit_cast
This is a compile fix: the constants were defined
as uint32_t/uint64_t while being declared as float/double.

Changed type in the definition to match declaration and
used bit_cast to make sure the bit pattern is as expected.

Bug: chromium:1151843
Change-Id: I129af71cd9a3dc97f01d2b58f14953345be84382
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2551111
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71496}
2020-11-30 15:49:44 +00:00
Nico Hartmann
61cf439687 [TurboFan] Transition SharedFunctionInfo to kNeverSerialized (3)
This is the 3rd step in a series of CLs to move the SharedFunctionInfo
class to kNeverSerialized and make it concurrently accessible from
the background thread. This CL:
* Adds synchronization to PrepareFunctionForDebugExecution
* Adds tests that mess with SharedFunctionInfo while it is accessed
  by another thread.

Bug: v8:7790
Change-Id: I2200fc7b6e977cda4e1003cb83d6ff49b1f1e337
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2523318
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71495}
2020-11-30 15:33:15 +00:00
Andreas Haas
8a1e9457ef [wasm][liftoff] Define safepoints for stack checks
Safepoints encode which slots in a stack frame store references when a
function is called. Safepoints for normal function calls in Liftoff were
already implemented before. With this CL, a safepoint for the runtime
call in a stack check is emitted.

R=thibaudm@chromium.org, clemensb@chromium.org

Bug: v8:7581
Change-Id: Iacb8b15559502adb7622935edb0cfa7ca03d634e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563266
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71494}
2020-11-30 15:30:26 +00:00
Sathya Gunasekaran
a1fc79be56 [tools] Change map details on clicking a map
Bug: v8:10644
Change-Id: I299e95f5a8505205a4942a5a5b04cde36f1e5320
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565355
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71493}
2020-11-30 15:16:15 +00:00
Clemens Backes
0f1c81d179 Reland "[wasm][inspector][test] Add more tests for code offsets"
This is a reland of 4719dae1a4.
The "V8 Linux64 TSAN - stress-incremental-marking" bot adds the
--stress-incremental-marking flag for all variants, hence the SKIP in
the status file was not triggered. We just explicitly disable the
--stress-incremental-marking flag for the two new tests. This works for
the "stress_incremental_marking" variant as well as the specific bot.

Original change's description:
> [wasm][inspector][test] Add more tests for code offsets
>
> The code offsets are sometimes wrong when compiled with streaming
> compilation. Thus add more tests for synchronous, asynchronous, and
> streaming compilation. The reported code offsets should all match. This
> will be fixed in a follow-up CL.
>
> In order to make asynchronous WebAssembly compilation finish, the
> inspector-test executable needs to pump the message loop before waiting
> for new tasks to come in, just as other executables like d8.
> This is added in this CL, but because of another bug this is skipped in
> the stress-incremental-marking variant. Hence the new tests are also
> skipped there.
>
> R=szuend@chromium.org
> CC=ahaas@chromium.org
>
> Bug: chromium:1150303, v8:10748
> Change-Id: Ie1d63c8d6795e61627d838b7fa7b21e6728befc0
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562382
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71483}

Bug: chromium:1150303
Bug: v8:10748
Change-Id: I9adb9fc0250fab5c43dc85b695f4d338a9c7183c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565128
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71492}
2020-11-30 14:34:56 +00:00
Sathya Gunasekaran
22976631da [tools] Fix map search
Bug: v8:10644
Change-Id: I8aaaf7337a92ef4962848a550ad1b80a65e3bc23
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565350
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71491}
2020-11-30 14:04:49 +00:00
Sathya Gunasekaran
1ed6c80169 [tools] Discard tooltip on hide
Bug: v8:10644
Change-Id: I98a557782cabadec3a85ca04cd3fc6c391e239d7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565352
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71490}
2020-11-30 13:59:59 +00:00
Manos Koukoutos
6e82f4a744 [wasm] Optimizations in br* instruction decoding
This is to mitigate the performance regression introduced in the linked
bug.

Changes:
- Postpone (this->failed()) checks into CALL_INTERFACE_IF_REACHABLE.
- Remove the check for invalid stack after typechecking a branch. This
  shouldn't impact correctness, since the program is invalid and
  decoding should stop after this instruction.

Bug: chromium:1153530
Change-Id: Ie856e5b365c32ead8e6bbfa23e3007c0836741ef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565118
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71489}
2020-11-30 13:51:39 +00:00
Zhi An Ng
752895065f [wasm] Handle multi-value return in compiled fuzzing result
When a function returns multiple result, we check the only the first
result. We correctly get the first return value from the interpreter
results, but did not handle the compiled code correctly, which returns a
JSArray.

Bug: chromium:1153406
Change-Id: I32198cea131cab18094fac3e66a44e976907773d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562816
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71488}
2020-11-30 13:44:29 +00:00
Georg Neis
63c95cad19 [compiler] Handle the non-stable ConstantType case for global stores
It is safe to do the store even when the map is already unstable.

Change-Id: I4f4ca8eeb7eceb13ea5bc36868583d02e1213755
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2534813
Auto-Submit: Georg Neis <neis@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71487}
2020-11-30 13:39:09 +00:00
Sathya Gunasekaran
d3a0f56c4b [tools] Fix ASI bug
Bug: v8:10644
Change-Id: I934795e6ef8c42c3bc801c84dfb5f9770acd46fa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565057
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71486}
2020-11-30 13:29:29 +00:00
Hannes Payer
d82727d8d7 [heap] Simplify SemiSpace shrinking logic.
Bug: chromium:1054771
Change-Id: I5120ce65f6a83728048398db0bf4705ae67b826f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565124
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71485}
2020-11-30 13:24:09 +00:00
Clemens Backes
f35243bb84 Revert "[wasm][inspector][test] Add more tests for code offsets"
This reverts commit 4719dae1a4.

Reason for revert: Timeouts with --stress-incremental-marking: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20stress-incremental-marking/1093

Original change's description:
> [wasm][inspector][test] Add more tests for code offsets
>
> The code offsets are sometimes wrong when compiled with streaming
> compilation. Thus add more tests for synchronous, asynchronous, and
> streaming compilation. The reported code offsets should all match. This
> will be fixed in a follow-up CL.
>
> In order to make asynchronous WebAssembly compilation finish, the
> inspector-test executable needs to pump the message loop before waiting
> for new tasks to come in, just as other executables like d8.
> This is added in this CL, but because of another bug this is skipped in
> the stress-incremental-marking variant. Hence the new tests are also
> skipped there.
>
> R=​szuend@chromium.org
> CC=​ahaas@chromium.org
>
> Bug: chromium:1150303, v8:10748
> Change-Id: Ie1d63c8d6795e61627d838b7fa7b21e6728befc0
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562382
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71483}

TBR=ahaas@chromium.org,clemensb@chromium.org,szuend@chromium.org

Change-Id: Ia4361183bfafeca3cc7d71ffe12d0ec2b0722b49
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1150303
Bug: v8:10748
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565126
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71484}
2020-11-30 13:11:41 +00:00
Clemens Backes
4719dae1a4 [wasm][inspector][test] Add more tests for code offsets
The code offsets are sometimes wrong when compiled with streaming
compilation. Thus add more tests for synchronous, asynchronous, and
streaming compilation. The reported code offsets should all match. This
will be fixed in a follow-up CL.

In order to make asynchronous WebAssembly compilation finish, the
inspector-test executable needs to pump the message loop before waiting
for new tasks to come in, just as other executables like d8.
This is added in this CL, but because of another bug this is skipped in
the stress-incremental-marking variant. Hence the new tests are also
skipped there.

R=szuend@chromium.org
CC=ahaas@chromium.org

Bug: chromium:1150303, v8:10748
Change-Id: Ie1d63c8d6795e61627d838b7fa7b21e6728befc0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562382
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71483}
2020-11-30 12:08:37 +00:00
Camillo Bruni
f60ccbf57c [tools] Use profiler code-source-info in processor.mjs
Attach SourcePositionInfo objects to existing code entries if we find
code-source-info log entries. This improves fixes finding scripts for
anonymous functions.

Bug: v8:10644
Change-Id: I6fc1e029b17107cacce89dc74a67d4d448d9a979
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562672
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71482}
2020-11-30 11:34:49 +00:00
Tobias Tebbi
571e35e8c0 [torque] introduce const slices
With this change, there are const and mutable version of slices, in
analogy to const and mutable references, which we already have.
A const slice as a readonly view into memory, it doesn't mean that
nobody else has a writable view on it.

An array field in a Torque class produces const slices if it is declared
as const.

Due to limitations in the Torque type system, mutable slices are not
a subtype of const slices of the same type.

Bug: v8:7793
Change-Id: I1ba96e1ee82bf03b5fdc824488981f2a6b5eae8a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2560195
Reviewed-by: Seth Brenith <seth.brenith@microsoft.com>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71481}
2020-11-30 11:28:15 +00:00
Omer Katz
c48cf1148c cppgc: Update cppgc scope names
Update scope names to match the new scope naming scheme we settled on.
This CL also:
1) Adds high-level scopes for atomic mark/sweep/compact and incremental
   mark/sweep.
2) Remove scopes that will now become redundant (i.e. SweepAndCompact,
   UnifiedMarkingStep, etc.)

The new scopes are no longer aligned with the existing telemetry code
(gc_metric.html) in blink.

Bug: chromium:1056170
Change-Id: I510269e24172f411b2a98c0a0a250a6e9fe58841
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563882
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71480}
2020-11-30 11:24:00 +00:00
Camillo Bruni
79896eeb4b [tools] Add code-creation timeline track to system-analyzer
Drive-by-fix:
- better handle tooltip text

Bug: v8:10644
Change-Id: Ibe20a1e0a0ebd298855afcbdc6f28e6fa4d1e64e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563660
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71479}
2020-11-30 11:19:08 +00:00
Sathya Gunasekaran
f5950e25e2 [tools] Fix map click handler in ic-panel
Bug: v8:10644
Change-Id: I14bbe3afcef09b0d2a785c61d603974c3c393d72
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565121
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71478}
2020-11-30 11:11:18 +00:00
Camillo Bruni
c18d462ddd [tools] System-analyzer improvements
- Fix transition view selection and opening of subtrees
- Fix transition colors by storing an index on the uniqueType map
  in the timeline
- Do not reset the current list in the transition view when
  clicking on a map
- Support changing source positions in the source panel
- Highlight the current source position with a pulsing marker
- Fix kColors usage in timeline-track

Bug: v8:10644
Change-Id: I5130f18d9076cb37f9c3c8d585c9e47038ca411b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562386
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71477}
2020-11-30 10:48:49 +00:00
Zhi An Ng
8434b89686 [cleanup][handles] Remove uses of DISALLOW_COPY_AND_ASSIGN
Bug: v8:11074
Change-Id: I7af4fb1fd93e1b369fdca5b9e726dcafa43b0afb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565081
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71476}
2020-11-30 10:30:12 +00:00
Michael Achenbach
c0b46d976e Revert "Enable simulating errors to test fuzzer reliability"
This reverts commit 4ad08c82f7.

Reason for revert: Need to retry with bugs in separate stack
frames.

Original change's description:
> Enable simulating errors to test fuzzer reliability
>
> This adds a d8 flag --simulate-errors, which on shutdown will cause
> certain errors. This enables testing the reliability of sanitizers.
>
> This will cause a fatal error, a dcheck (if available) or a
> violation that can be detected with one of the following sanitizers:
> ASAN, UBSAN, MSAN, CFI.
>
> The same flag used in differential fuzzing will cause an error
> subsumed with the error state "fake_difference".
>
> Bug: chromium:1152412
> Change-Id: I4b36c6fe716797004d634263617d22ca67b05600
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2554999
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71430}

TBR=machenbach@chromium.org,clemensb@chromium.org

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

Bug: chromium:1152412
Change-Id: If20cdef372b0e7e92e7080687f446539a587a815
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565120
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71475}
2020-11-30 09:30:08 +00:00
Zhi An Ng
2ad3328c88 [cleanup] Remove unnecessary flags in test
The flags were added because scalar lowering was not implemented for the
instructions in the test. Now that scalar lowering is complete, we can
remove these flags.

Fixed: v8:11137
Change-Id: Ic7bdedbfe558fafebe98917fe4e6a7922203ba91
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565078
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71474}
2020-11-30 08:17:38 +00:00
Michaël Zasso
bde7ee5473 cppgc: avoid multiple class declarations
ConcurrentMarkingState and MarkingStateBase are already defined in the

This change fixes compilation with MSVC.

v8: :internal namespace.
Change-Id: Ib8a1370a0a27a90e385fd69e61036e263e1489e6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562671
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michaël Zasso <mic.besace@gmail.com>
Cr-Commit-Position: refs/heads/master@{#71473}
2020-11-30 06:56:38 +00:00
Zhi An Ng
cd6d819114 [wasm-simd][ia32] Prototype i64x2.bitmask
Bug: v8:10997
Change-Id: I77e3fceec342698e25c8653b6a3dabe0ddbdc045
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2557057
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71472}
2020-11-30 04:38:48 +00:00
Zhi An Ng
3a4781c7ff [cleanup][builtins] Remove uses of DISALLOW_COPY_AND_ASSIGN
Bug: v8:11074
Change-Id: Iccb5daa414f4a0be0820f4c19416c11374ffc17e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2558266
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71471}
2020-11-30 04:16:48 +00:00
v8-ci-autoroll-builder
2c26fe5775 Update V8 DEPS.
Rolling v8/build: 425e151..4a4f94b

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

Change-Id: Ia928e09f768dc7b14580070621150b02d0740af6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2564593
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@{#71470}
2020-11-30 03:41:18 +00:00
Zhi An Ng
ddc8c348c9 [cleanup][api] Remove uses of DISALLOW_COPY_AND_ASSIGN
Bug: v8:11074
Change-Id: I4158b4ad72350cde27bda76db2d9d646b793f684
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2558265
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71469}
2020-11-30 02:46:18 +00:00
Zhi An Ng
a312982153 [cleanup][diagnostics] Remove uses of DISALLOW_COPY_AND_ASSIGN
Bug: v8:11074
Change-Id: I478f4390523ddf7cfb87dd22cef5ed331be5c875
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2558267
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71468}
2020-11-30 01:54:23 +00:00
Zhi An Ng
d0414e876a Reland "[wasm-simd][arm] Prototype i64x2.bitmask"
This is a reland of 21e479441e

The fix is in the encoding of vmov. Bit 23 (the U bit) should be 0,
whether the NeonDataType is NeonS32 or NeonU32. Also added a DCHECK
in the simulator to assert this.

Original change's description:
> [wasm-simd][arm] Prototype i64x2.bitmask
>
> Cleanup to simulator to remove repetitive logic to get instruction
> fields.
>
> Bug: v8:10997
> Change-Id: I01f0b99f85788b41e4cab505fc94362d637c396f
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2554256
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Reviewed-by: Bill Budge <bbudge@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71391}

Bug: v8:10997
Change-Id: I93b5d2168a50446d4a3b487ad83d6af8ea9ba8ab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2558262
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71467}
2020-11-30 01:53:18 +00:00
v8-ci-autoroll-builder
7111248e40 Update V8 DEPS.
Rolling v8/build: fc6f0ec..425e151

Rolling v8/third_party/aemu-linux-x64: nv1qScP1jMWHbtAnUPBMcQOVcG6n7KxhpPYWWa21rA8C..xSLGBy9YVgE3OzSwrnR3yqDwyZerQuy2QBEFfV1Lc2IC

Rolling v8/tools/clang: 5726acb..20f5376

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

Change-Id: I67d4a0e805ed6ee7ee63b135fb1340ecdded730c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2564204
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@{#71466}
2020-11-29 03:58:27 +00:00
Camillo Bruni
24222a9fef [api] Use shorter 8::Local::As<*> casts in more places
Bug: v8:11195
Change-Id: I19211af9e440940f85351fb38920eb620c222213
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2555010
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71465}
2020-11-28 11:04:26 +00:00
v8-ci-autoroll-builder
29ab5697f4 Update V8 DEPS.
Rolling v8/build: bd5054a..fc6f0ec

Rolling v8/third_party/aemu-linux-x64: Ts7JI7CLxH4-h5lAQEsDnba0CD6d4ACU00UDPQXaW0wC..nv1qScP1jMWHbtAnUPBMcQOVcG6n7KxhpPYWWa21rA8C

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/ae003f5..7598272

Rolling v8/tools/luci-go: git_revision:1a022d3a4c50be4207ee93451255d71896416596..git_revision:67aba6e3373bb0b9e3ef9871362045736cd29b6e

Rolling v8/tools/luci-go: git_revision:1a022d3a4c50be4207ee93451255d71896416596..git_revision:67aba6e3373bb0b9e3ef9871362045736cd29b6e

Rolling v8/tools/luci-go: git_revision:1a022d3a4c50be4207ee93451255d71896416596..git_revision:67aba6e3373bb0b9e3ef9871362045736cd29b6e

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

Change-Id: Ib50f599c06a8da11ddc231432ff60481b647c0cd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563748
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@{#71464}
2020-11-28 03:50:16 +00:00
Etienne Pierre-doray
f8ef845ed0 Reland^3 "[Heap]: Convert Sweep to Job"""
This is a reland of 873e5aa32a

Reason for revert: Flaky cctest/test-incremental-marking/IncrementalMarkingUsingTasks
Safe to reland as-is after
https://chromium-review.googlesource.com/c/v8/v8/+/2562121

Original change's description:
> Reland "Reland "[Heap]: Convert Sweep to Job""
>
> This is a reland of b16c7e5b1c
>
> Issue: ShouldYield is called multiple time.
> Fix: ConcurrentSweepSpace returns false if not done (yielding), to avoid
> calling it again.
>
> Issue: failing test-streaming-compilation
> Safe to reland after
> https://chromium-review.googlesource.com/c/v8/v8/+/2507379
>
> Original change's description:
> > Reland "[Heap]: Convert Sweep to Job"
> >
> > This is a reland of 795c0b1c7b
> > Reason for revert:
> > TSAN failures https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/33884
> > Safe to reland as-is with fix to EagerUnmappingInCollectAllAvailableGarbage
> > https://chromium-review.googlesource.com/c/v8/v8/+/2502809
> >
> > Original change's description:
> > > [Heap]: Convert Sweep to Job
> > >
> > > max concurrency is inferred from queue size for OLD_SPACE & MAP_SPACE.
> > > Extra Sweeper::TearDown() in MarkCompactCollector::TearDown() is needed
> > > to cancel job.
> > >
> > > Change-Id: Iafba7d7d24e8f6e5c5a1d5c0348dea731f0ac224
> > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2480783
> > > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> > > Cr-Commit-Position: refs/heads/master@{#70767}
> >
> > Change-Id: Id9a5baceed4664f53da39597af56a2067e4f3c6f
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2502808
> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#70845}
>
> Change-Id: I32de9faebdbd2f7f6d7f9a9525871fc691fb3f2c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507378
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71347}

Bug: v8:11198
Change-Id: Ie61b5e90e2e4984e72beb8374fa73814acedb8fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562749
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71463}
2020-11-28 01:03:36 +00:00
Hannes Payer
767b5a9125 [heap] Reland: Committed SemiSpace state depends on pages being present in the memory_chunk_list_.
Bug: chromium:1054771
Change-Id: I95a97c9588a0f26190db3f87d18a53c445a89112
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563272
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71462}
2020-11-27 23:15:26 +00:00
Camillo Bruni
8547ac388e [tools][system-analyzer] Improve timeline.mjs
Make Timeline.selectTimeRange run in O(log(n)) instead of
O(n) comparisons.

Drive-by-fix:
- Use *Index for variable names in Timeline

Bug: v8:10644
Change-Id: I65f3be9f259e6bebcec489526a54712daffd4d15
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507714
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Auto-Submit: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71461}
2020-11-27 19:24:06 +00:00
Milad Fa
bba4817bf0 PPC: Add and use mtrcrf to clear the condition register
Condition register might need to be cleared before
running instructions to assure sticky bits are cleared.

Change-Id: Id18e5759e4cc9f03c2e9334f41b5ff179639ad22
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562747
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#71460}
2020-11-27 19:20:36 +00:00
Etienne Pierre-doray
064ee3c835 Reland "[wasm]: Use CancelAndDetach and barrier on BackgroundCompileJob."
Reason for revert: Data race:
https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/34121

It was assume that MockPlatform runs everything on 1 thread. However,
MockPlatform::PostJob previously would schedule the job through
TestPlatform, which eventually posts concurrent tasks, thus causing
data race.
Fix: Manually calling NewDefaultJobHandle and passing the MockPlatform
ensures the jobs also run sequentially.

Additional change:
- CancelAndDetach is now called in ~CompilationStateImpl() to make sure
it's called in sequence with ScheduleCompileJobForNewUnits

Original CL description:
To avoid keeping around a list of job handles, CancelAndDetach() is
used in CancelCompilation. Dependency on WasmEngine is handled by a
barrier that waits on all jobs to finish.

Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2498659
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#71074}
Change-Id: Ie9556f7f96f6fb9a61ada0e5cbd58d4fb4a0f571
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2559137
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71459}
2020-11-27 17:50:15 +00:00
Dominik Inführ
c1b9e6907c [heap] Replace TRACE_BACKGROUND_GC macro with TRACE_GC1
Remove TRACE_BACKGROUND_GC which was used to emit events on the
background thread. It is replaced by TRACE_GC1, which uses the ThreadKind
argument to work both on main and background threads.

This CL also removes the dedicated BackgroundScope enum, all scopes
are now in GCTracer::Scope.

Change-Id: Ie377082d6a278dd46f2fa359611fdd99a08afcea
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2560203
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71458}
2020-11-27 17:48:55 +00:00
Mythri A
ec71d2b926 [runtime-profiler] Update profiler ticks before tiering up decisions
We used to update profiler ticks after tiering up decisions when tiering
up from Ignition and update the ticks before when tiering up from
mid-tier optimized code. This meant we added special cases to account for
this difference. This cl makes updating the ticks uniform by always
updating the ticks before tiering up decisions. Also adjusts the
heuristics to take this into account.

Bug: v8:9684
Change-Id: I2c63ba3499c542bb4a69e55d6cc4bebe4612793f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563659
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71457}
2020-11-27 17:42:45 +00:00
Santiago Aboy Solanes
9a0faab294 [base] DCHECK threads do not re-lock SharedMutexes
Otherwise, its behaviour is undefined and shouldn't be permitted.

Bug: v8:7790, v8:11135
Change-Id: I9fa5ec02b9126f776ad3ef095e8c70fc5d3620dc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2547293
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71456}
2020-11-27 17:33:15 +00:00
Santiago Aboy Solanes
9a1b476376 [config] Add V8_NODISCARD to Scopes in v8.h
Like  https://crrev.com/c/v8/v8/+/2555001 for v8.h. Done in a separate
CL in case it needed to be reverted.

Change-Id: I0c7a7cb24e8f0855c8b80ddeeaab979f10011c4a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562252
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71455}
2020-11-27 17:29:35 +00:00
Michael Achenbach
bea9978700 [foozzie] Insensitive terms clean-up
No-Try: true
Bug: v8:10619
Change-Id: I1e227c64fa34caf010271b299d9310d19bdfc53a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563273
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71454}
2020-11-27 16:57:24 +00:00
Omer Katz
3b139bf8f4 cppgc: Fix unittests perfetto build.
cppgc_unittests uses tracing (e.g. when setting the TracingController in
tests.h) and thus needs to depend on v8_tracing. It cannot inherit the
dependency since the cppgc_unittests_sources v8_source_set doesn't
depend on cppgc.

Bug: v8:11203
Change-Id: I7227f696f841132f174435751a42a02ff865df26
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563658
Auto-Submit: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71453}
2020-11-27 15:58:21 +00:00
Michael Achenbach
4f2f106206 [foozzie] Use separate crash state for simulated crashes
The error simulation works and crashes during the smoke test are
detected. But now this masks real crashes (https://crbug.com/1153200),
therefore this change subsumes smoke-test crashes with
--simulate-errors under a separate crash state.

Now Clusterfuzz will detect the case "unexpected crash" as fixed, but
create a new bug for "simulated crash". Which we will keep open
forever.

No-Try: true
Bug: chromium:1152412
Change-Id: I511af167d33430d9b89692151cb8abaf3a90c715
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563270
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71452}
2020-11-27 14:58:44 +00:00
Hannes Payer
6039cda616 [heap] Remove NewSpace shrinking logic in CollectAllAvailableGarbage.
NewSpace shrinking is already performed in Heap::GarbageCollectionEpilogueInSafepoint.

Bug: chromium:1054771
Change-Id: Ia274dd5619fd1d7397a06f0b642f07d68de45ea1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563267
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71451}
2020-11-27 12:15:39 +00:00
Tobias Tebbi
efec9f46ba [build] gcc constexpr workaround in SharedFunctionInfo::kAlignedSize
Change-Id: I5e866163b371446b72f5422bf8cc1816effbec95
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562387
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71450}
2020-11-27 09:16:00 +00:00
Maya Lekova
d4b29d7525 [turbofan] Fix CheckedFloat64ToInt64 on arm64
This CL extends the TruncateFloat64ToInt64 machine operator with a
TruncateKind, allowing EffectControlLinearizer to request truncating
to INT64_MIN in case of overflow. The CL adds the necessary low-level
support when generating code for kArm64Float64ToInt64. It also enables
relevant tests as part of the fast API call suite.

Bug: v8:11121
Change-Id: I0cb9964cc3c2ff49e6b0bbfe4a20f280e4aab337
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2560718
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71449}
2020-11-27 09:03:39 +00:00
Vicky Kontoura
03758904fe Reland "[wasm] Enable --wasm-generic-wrapper"
This is a reland of f2034bf507

Original change's description:
> [wasm] Enable --wasm-generic-wrapper
>
> This CL enables the --wasm-generic-wrapper flag by default.
>
> Bug: v8:10982
> Change-Id: Iada906ce49810806c500ee3ca26e09e847b69a27
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2539915
> Commit-Queue: Vicky Kontoura <vkont@google.com>
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#71374}

Bug: v8:10982
Change-Id: Ifceac637f7ec21c8f35d6bdd5d7c6c72a43fad43
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562241
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Vicky Kontoura <vkont@google.com>
Cr-Commit-Position: refs/heads/master@{#71448}
2020-11-27 08:09:46 +00:00