Commit Graph

74267 Commits

Author SHA1 Message Date
Victor Gomes
3eeea13cf7 [maglev] Addition Smi nodes
If we have a smi operation in the feedback vector, we emit SmiTag
Int32AddWithOverflow and SmiUntag nodes, instead of a generic
operation binary node.


Change-Id: Idb9ce2b60289fbe492bf269793660b32de23e2b3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3560641
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79775}
2022-04-05 12:34:42 +00:00
jameslahm
8502508962 [snapshot] Fix mksnapshot fails
... when enable V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE.
When enable V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE and
V8_EXTERNAL_CODE_SPACE, because of the external code space,
we could not get the isolate using RoundDown directly, which
may cause wrong isolate address. We should use memory chunk
like in V8_COMPRESS_POINTERS_IN_SHARED_CAGE instead.

Bug: v8:12664, v8:12715
Change-Id: Ib78770fdb66fa509d6d8acc836803ec9d6804ef1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3532599
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: 王澳 <wangao.james@bytedance.com>
Cr-Commit-Position: refs/heads/main@{#79774}
2022-04-05 11:22:32 +00:00
Clemens Backes
43232bf024 [wasm] Fix interrupt of empty loop
This includes two fixes:
1. For dynamic tiering, the budget must always be reduced when jumping
   backwards, otherwise we might never trigger tier up, which makes the
   loop non-interruptible (because the tier-up check replaces the stack
   check).
2. The d8 worker implementation also needs to terminate the isolate via
   an interrupt, in addition to scheduling a task, because the worker
   might never return to the event queue.

This CL also fixes one of the failure modes of the inspector fuzzer
(see https://crbug.com/1180018).

R=jkummerow@chromium.org, marja@chromium.org

Bug: v8:12767, chromium:1180018

Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
Change-Id: Ia01d1725fc14931d2ea54c4769c4ee93f866ed63
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568470
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79773}
2022-04-05 10:55:04 +00:00
Leszek Swirski
49c507dc99 [test] Make cctest run one test, with maybe custom platform
Remove cctest's ability to run multiple tests (which has long been
deprecated and mostly broken). We can then make platform & V8
initialisation be part of running the test's Run method.

In particular, this allows us to inject custom logic into the platform
initialisation, like setting up a platform wrapper. Add a
TEST_WITH_PLATFORM which exercises this by registering a platform
factory on the test, and wrapping the default platform using this
factory. This allows these tests to guarantee that the lifetime of the
platform is longer than the lifetime of the isolate.

As a result of this, we can also remove the complexity around draining
platform state in the TestPlatform (since it will now have a longer
lifetime than the Isolate using it), and as a drive-by clean up the
TestPlaform to use a CcTest-global "default platform" instead of trying
to scope over the "current" platform.

As another drive-by, change the linked-list of CcTests and the linear
search through it into an std::map of tests.

Change-Id: I610f6312fe042f29f45cc4dfba311e4184bc7759
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3569223
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79772}
2022-04-05 09:39:18 +00:00
Camillo Bruni
899f0af72a [serializer] Dehandlify more De-/Serializer code
Bug: v8:11263
Change-Id: I6f9f43125e5a1b27d8f8595bbbebdff2665968da
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3471635
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79771}
2022-04-05 09:38:16 +00:00
Shu-yu Guo
cfa49d2621 [d8] Configure the shared Isolate with the same memory constraints as other Isolates
Bug: v8:12007, v8:12584
Change-Id: Ic78eb0e7145c7d6127d23e46a6ddccfbd31fffd4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3419796
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79770}
2022-04-05 08:22:29 +00:00
Alexander Schulze
9dd0d7147b [py3] Bump tools/unittests/*
Bug: v8:12581
Change-Id: Iea05e0171ad6edbda569c443c0db97e5c0bfc9ad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3569222
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Alexander Schulze <alexschulze@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79769}
2022-04-05 08:12:20 +00:00
v8-ci-autoroll-builder
0432334bfe Update V8 DEPS.
Rolling v8/build: d162691..1356876

Rolling v8/buildtools/third_party/libc++abi/trunk: e9c9bdf..1850510

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/a9d86a4..c4e6210

Rolling v8/third_party/depot_tools: a9c548e..c4b1b77

Rolling v8/third_party/zlib: d1aa7af..3b1df9d

Rolling v8/tools/clang: c8e9f23..fbe0742

R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: Ia2bed4e4a7ea13cd708471339269c7e4262abb9b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3571201
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#79768}
2022-04-05 03:55:30 +00:00
Junliang Yan
55d9eb4238 ppc64: Fix compilation error
Change-Id: Iadf5d379e105232c0992e3588ecd9a1c5f3500d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3570422
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79767}
2022-04-04 22:03:09 +00:00
Anton Bikineev
7dd391cb6c cppgc: young-gen: Extract and report metrics for young GC cycles
The CL makes sure to extract and copy Oilpan young GC metrics to
v8::metrics::GarbageCollectionYoungCycle. In addition, it makes sure
that metrics are not reported twice by bailing out from
GCTracer::NotifyCppGCCompleted() for young GC cycles (the metrics are
reported later in Heap::CollectGarbage() by calling
GCTracer::StopCycle()).

Bug: chromium:1029379
Change-Id: I07bf51e85a76a7cdbeeb8d87c9072edf2634158b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545168
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79766}
2022-04-04 18:33:08 +00:00
Junliang Yan
1d56246b78 ppc64: [baseline] port OnStackReplacement
Change-Id: I0b69c8042f1b88efc14d2923c595b14f45b9557e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568471
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79765}
2022-04-04 18:21:16 +00:00
Junliang Yan
2be73ed6be ppc64: [baseline] port JSConstructStubGeneric
Change-Id: I698fbf3d49ed7e88a6004ead38427e4ca3a02663
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3569681
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79764}
2022-04-04 16:37:48 +00:00
Bryant Chandler
8d51d561d5 [fuchsia] Use SDK provided gn templates for v8_unittests
cr_fuchsia_package is deprecated in favor of using the Fuchsia
SDK provided rules directly.

Bug: chromium:1092804
Change-Id: I86a59b6a717cb0aa8c3473e8410bdd98f0ffd042
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3537883
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Bryant Chandler <bryantchandler@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79763}
2022-04-04 16:29:58 +00:00
Jakob Gruber
5f3ed078b6 [compiler] Remove ContinuationForConcurrentOptimization
.. to simplify logic within compiler.cc. GetOrCompileOptimized now only
returns Code object if the requested optimized Code object is available.

This change also required updating CompileLazy to install the
appropriate Code object before potentially calling CompileOptimized_*
runtime functions in order to satisfy the is_compiled precondition.

Bug: v8:12161
Change-Id: I991dbcc0ba8f3d635aa1e1f06e4cffd89e08a47b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3562978
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79762}
2022-04-04 16:16:17 +00:00
Jakob Gruber
3f5a3df63b [osr] Fall back to synchronous OSR on cache mismatches
If we've already cached OSR'd code for the current function but with a
different osr offset, fall back to synchronous compilation. This avoids
degenerate cases where we repeatedly spawn OSR jobs but then fail to
install them.

Drive-by: More consistent --trace-osr output.
Drive-by: Rename kCompileForOnStackReplacement to kCompileOptimizeOSR
for name consistency.
Drive-by: Add JSFunction::DebugNameCStr() for more convenient PrintF's.

Bug: v8:12161
Change-Id: I2b4a65bc9e082d85d7048a3e92ef86b07d396687
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3560431
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79761}
2022-04-04 16:14:28 +00:00
Bryant Chandler
3111db91f8 [fuchsia] Use SDK provided gn templates for d8
cr_fuchsia_package is deprecated in favor of using the Fuchsia
SDK provided rules directly.

This CL adds a cmx file specifically for v8_unittests. CMX
files define fuchsia components, see
https://chromium-review.googlesource.com/c/chromium/src/+/3529652
for more info.

Bug: chromium:1092804
Change-Id: Ibf1d866ec6b94a0e1a7a7c7c443a6ee80e3b1042
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3537885
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Bryant Chandler <bryantchandler@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79760}
2022-04-04 15:53:47 +00:00
Jakob Gruber
e35d7e6167 Reland "Refactor OSROptimizedCodeCache"
Tweak a few names, remove a few GetIsolate calls, other minor
usability refactors.

It may be worth taking a closer look at the impl in the future,
currently the design choices don't seem ideal (see the added TODO
on top of the class).

The reland is unchanged from the original CL.

Bug: v8:12161
Change-Id: I9971f7f2fb08b7a1ec2d57b2a0e4accdc11191ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568444
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79759}
2022-04-04 15:21:47 +00:00
Clemens Backes
575babc496 [codegen][x64] Emit shorter code for a 32-bit and
If the immediate is a 32-bit value, we can just write the lower half of
the target register, the upper half will automatically be zero-extended.

R=tebbi@chromium.org

Bug: v8:10005
Change-Id: Ib3c54c9f6ac2434c7345c507529298233d6b7d6f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3563565
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79758}
2022-04-04 15:13:54 +00:00
Leszek Swirski
b57bb622d0 [maglev] Make regalloc aware of lazy deopts
Port the eager deopt handling in the use marker and register allocator
to do the same thing with lazy deopts. This requires moving the lazy
deopt info to be a pseudo-input before the node, same as eager deopt
info, so that the regalloc can read it without needing the Node's
opcode.

For now, this means that a node cannot both eager- and lazy-deopt; if we
need this in the future we can rethink it.

Bug: v8:7700
Change-Id: I96292af9c483f285b1e45bfb374c8dc600fa6347
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568452
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79757}
2022-04-04 15:11:38 +00:00
Joyee Cheung
87ce4f5d98 [ic] use CSA_DCHECK in CodeStubAssembler::SharedValueBarrier
Since the code is generated unconditionally, using a DCHECK to check
that shared RO heap is enabled breaks builds with
v8_enable_shared_ro_heap set to false, this patch turns that into a
CSA_DCHECK so it only crashes when V8 actually attempts to store into
a shared struct while the RO heap isn't shared at run time.

Refs: https://github.com/nodejs/node/pull/42115
Bug: v8:12547
Change-Id: I30d9a02b98a0b647097125c0a9d141e40d6348cc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3561598
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/main@{#79756}
2022-04-04 15:04:18 +00:00
Dominik Inführ
da9d68996f [heap] Crash immediately when page allocation fails in deserialization
Fail immediately when page allocation fails during deserialization. We
would crash immediately in the GC following the allocation failure but
with a less descriptive error message.

Bug: v8:12514
Change-Id: I688d9bac5978ca7af3b24830999c992e1df32dce
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568458
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79755}
2022-04-04 14:53:47 +00:00
Camillo Bruni
f21e2a7f03 [tools][system-analyzer] Improve Deopt and assembly support
- Add references from CodeLogEntry to DeoptLogEntry
- Add simple basic blocks in the disassembly code view

Bug: v8:10644
Change-Id: I15f3b56751d515b902185b08f9454be3951ffa48
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3540142
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79754}
2022-04-04 14:47:59 +00:00
Junliang Yan
4d7877ae13 ppc64: [baseline] port GetSharedFunctionInfoBytecodeOrBaseline
Change-Id: Id3c0c09ca0c0e3b95ec51a8563d092c8410d3bc5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568925
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79753}
2022-04-04 14:46:57 +00:00
Jakob Gruber
66f8f20a2a Reland "Address comments from [osr] Basic support for concurrent OSR"
- Unhandlify OSROptimizedCodeCache::GetOptimizedCode.
- Unstatic-fy FeedbackVector::SetOptimizedCode.
- Remove frame-walking logic during the OSR tierup decision.

The reland is unchanged from the original CL.

Bug: v8:12161
Change-Id: Ibf03a9dd9a6fcd38c0664e5d5014a26d0240e035
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568463
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79752}
2022-04-04 14:38:57 +00:00
Michael Achenbach
a7e94ad8c2 [bots] Remove configs of deleted Py3 bots
No-Try: true
Bug: chromium:1245634
Change-Id: I1fca09f9e4917e9bb43ccc86a13220d1c13a3434
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3569024
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79751}
2022-04-04 14:26:27 +00:00
Camillo Bruni
077622acd7 [tools] Fix grokdump mmap disposal
- Process the minidump in a separate function to avoid keeping
  references to the mmapped file during disposal
- Clear all MinidumpReader variables before disposing the mmapped file

Change-Id: I0ce468597329d6f7d703a08309e4be378d9c27cf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568469
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79750}
2022-04-04 14:18:13 +00:00
Michael Achenbach
11874266d6 [tools] Switch script wrapper to Py3
Bug: chromium:1292013
Change-Id: I5d73c8a500d66143e569d4605133948a71c82c8b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568468
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79749}
2022-04-04 14:13:17 +00:00
Benedikt Meurer
ad21d212fc Preserve "proper method names" as-is in error.stack.
This changes the logic for generating method names in `error.stack` to
prepend an inferred type name only when the function name is a valid
ECMAScript identifiers and does not equal the inferred type name, to

(1) give developers more control over the exact name shown in
    `error.stack`, as well as
(2) avoid confusion in the presence of renaming of local variables.

Previously we'd leave the function name as-is if it was prefixed by the
inferred type name, but that condition is unnecessarily strict, and led
to a bunch of inconsistencies around special names like
`<instance_member_initializer>` where this dynamic approached often
prefixed it with the correct type name, but also sometimes got it wrong
and prepended `Object.`, which is very unfortunate and misleading.
Specifically for these special names, we'll add logic later in the
parser to infer a useful (complete) name.

The design doc (https://bit.ly/devtools-method-names-in-stack-traces)
contains more background and examples of why we do this change.

Doc: https://bit.ly/devtools-method-names-in-stack-traces
Fixed: chromium:1294619
Bug: chromium:1283435
Change-Id: Ib8b528ba25255dcd07e9d11044c562c11d699bcb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3565724
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79748}
2022-04-04 14:08:56 +00:00
Milad Fa
679e7229ff s390: [ext-code-space] Make some EmbeddedData methods inline
Port 5a7ed57b10

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

Change-Id: Ie5abd86473a44fd38dc380836b08a644f1b21ab1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3569221
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79747}
2022-04-04 13:57:48 +00:00
Jakob Gruber
d187c6c291 Reland "[osr] Basic support for concurrent OSR"
This is a reland of commit 3ce690eef2

Changed for the reland:
- Remove the currently-unused BytecodeArray member to avoid MSAN
  failures.
- s/return/continue/ in optimizing-compile-dispatcher.

Original change's description:
> [osr] Basic support for concurrent OSR
>
> This CL adds basic support behind --concurrent-osr,
> disabled by default.
>
> When enabled:
> 1) the first OSR request starts a concurrent OSR compile job.
> 2) on completion, the code object is inserted into the OSR cache.
> 3) the next OSR request picks up the cached code (assuming the request
>    came from the same JumpLoop bytecode).
>
> We add a new osr optimization marker on the feedback vector to
> track whether an OSR compile is currently in progress.
>
> One fundamental issue remains: step 3) above is not guaranteed to
> hit the same JumpLoop, and a mismatch means the OSR'd code cannot
> be installed. This will be addressed in a followup by targeting
> specific bytecode offsets for the install request.
>
> This change is based on fanchen.kong@intel.com's earlier
> change crrev.com/c/3369361, thank you!
>
> Bug: v8:12161
> Change-Id: Ib162906dd4b6ba056f62870aea2990f1369df235
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3548820
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Jakob Linke <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#79685}

Bug: v8:12161
Change-Id: I48b100e5980c909ec5e79d190aaea730c83e9386
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3565720
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Auto-Submit: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79746}
2022-04-04 13:48:26 +00:00
Milad Fa
334016ac62 PPC/s390: [deoptimizer] Remove soft deopts
Port 1ff685d8b1

Original Commit Message:

    .. since they are the same as eager deopts (% an unused counter).

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

Change-Id: I5575f2b14393e0b1a653b8d6be00c9dab338c160
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568924
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79745}
2022-04-04 13:44:06 +00:00
Michael Achenbach
ad93d4ee26 [tools] More test-runner Py3 clean-up
Bug: chromium:1292016
Change-Id: I9404ca1c38c6231cada6c5d9af5e5859e4c0e261
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568467
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79744}
2022-04-04 13:34:46 +00:00
Alexander Schulze
2139853732 [py3] Bump v8heapconstants.py and related files
Bug: v8:12581
Change-Id: I4d98e48801ffcfbe507c61ba296da67359e3f5cb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568464
Auto-Submit: Alexander Schulze <alexschulze@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Alexander Schulze <alexschulze@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79743}
2022-04-04 13:27:13 +00:00
jameslahm
2fe25c602c [platform] Support unicode filename on windows
- Add ConvertUtf8StringToUtf16 to convert utf8
encoded file path to utf16 encoded path on windows.
- Add unicode filename support in OS::FOpen,
OS::MemoryMappedFile::open and
OS::MemoryMappedFile::create on windows.

Bug: v8:12541
Change-Id: I65396c3211355e41e8952bc0587ff01bbb720f9e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3538284
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79742}
2022-04-04 13:14:46 +00:00
Junliang Yan
45961a0713 ppc64: [baseline] implement mov functions
Change-Id: I8605938213f0fe2b322e188e95aeb3dc22692923
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568862
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79741}
2022-04-04 12:58:53 +00:00
Michael Achenbach
307e30c1eb [foozzie] Fix arguments in wrapper
No-Try: true
Bug: chromium:1288926
Change-Id: Ie28021a34649aeaa68c34252ffe181163a7df2ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568466
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79740}
2022-04-04 12:31:29 +00:00
Igor Sheludko
5a7ed57b10 [ext-code-space] Make some EmbeddedData methods inline
Bug: v8:11880
Change-Id: Id3975d0c10ac5ece5c55d9db5ae7c6786fde2dfe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3564566
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79739}
2022-04-04 12:21:27 +00:00
Alexander Schulze
ea2bbcbe87 [py3] Bump tools/unittests/compare_torque_output_test.py
Bug: v8:12581
Change-Id: I2e869a81f6a8c785954a73cf2e97dae2a9ab3ade
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568450
Auto-Submit: Alexander Schulze <alexschulze@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79738}
2022-04-04 12:16:16 +00:00
Leszek Swirski
f6a23fb87d [maglev] Disable stack-slot reuse
It doesn't take into account stack-slot liveness at time of spill, so
it can cause false sharing.

Bug: v8:7700
Change-Id: Ib8a00d00d857fad40f14fce1d1496fea071e334f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568465
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79737}
2022-04-04 12:01:38 +00:00
Michael Lippautz
1f0d7d2072 cppgc-js: Concurrently process v8::TracedReference
Adds concurrent marking for reaching through v8::TracedReference.
Before this CL, a v8::TracedReference would always be processed on the
main thread by pushing a callback for each encountered reference.

This CL now wires up concurrent handling for such references. In particular:
- Global handles are already marked as well and not repurposed during
  the same GC cycle.
- Since global handles are not repurposed, it is enough to
  double-deref to the V8 object, checking for possible null pointers.
- The bitmap for global handle flags is mostly non-atomic, with the
  markbit being the exception.
- Finally, all state is wired up in CppHeap. Concurrent markers keep
  their own local worklist while the mutator marker directly pushes to
  the worklist owned by V8.

Bug: v8:12600
Change-Id: Ia67dbd18a57dbcccf4dfb9ccfdb9ee438d27fe71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516255
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79736}
2022-04-04 11:58:59 +00:00
Alexander Schulze
ad7248787f [py3] Bump gcmole to py3
Bug: v8:12581
Change-Id: I6c665161a3f376321feb773d809c5453ef1d46f9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568445
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Alexander Schulze <alexschulze@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79735}
2022-04-04 11:48:13 +00:00
Clemens Backes
d60404e356 [wasm] Print instruction range if disassembler is disabled
Even if the instructions cannot be dissembled, it still often helps to
know which range of instructions belongs to which function. Thus print
this information on --print-wasm-code if the disassembler is not
available.

R=thibaudm@chromium.org

Change-Id: I9e7a4cb6ae4edf3411740fe4dfee248a5b9439ec
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3563564
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79734}
2022-04-04 11:47:07 +00:00
Igor Sheludko
388fdafcd4 [ext-code-space] Store metadata offsets in the blob
... instead of Code objects. This is a step towards not creating Code
objects for embedded builtins.

Bug: v8:11880
Change-Id: Ie9f87b09d06e6b872ce3a5fa5d03a2502df979d9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3564565
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79733}
2022-04-04 11:26:41 +00:00
Michael Achenbach
cb916625f4 [test] Adjust shards on slow bots
No-Try: true
Bug: v8:12748
Change-Id: Ide093521c9d1c5927c5c1bea30a6f7689486f079
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3562983
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79732}
2022-04-04 11:09:29 +00:00
Camillo Bruni
032dfb827a [tools] Update grokdump to python3
Change-Id: I38d0f52b7add9247af50aa5f470a88587e97203f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3565725
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79731}
2022-04-04 11:08:17 +00:00
Alexander Schulze
4a28ce2351 [py3] Bump get_landmines to py3
Bug: v8:12581
Change-Id: I73d8248bd109c906aa0296b3b7bfc19ffd1c00ff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568447
Auto-Submit: Alexander Schulze <alexschulze@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79730}
2022-04-04 11:03:36 +00:00
Jakob Gruber
1ff685d8b1 [deoptimizer] Remove soft deopts
.. since they are the same as eager deopts (% an unused counter).

Fixed: v8:12765
Change-Id: I2be6210e476ead4ac6629a49259f28321e965867
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3565717
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79729}
2022-04-04 10:26:36 +00:00
v8-ci-autoroll-builder
d93662373b Update V8 DEPS.
Rolling v8/build: 3444906..d162691

Rolling v8/buildtools: e1471b2..c2e4795

Rolling v8/buildtools/linux64: git_revision:bd99dbf98cbdefe18a4128189665c5761263bcfb..git_revision:859dde4a7f34a4383179522f8e1061dcffac8691

Rolling v8/buildtools/third_party/libc++abi/trunk: 93b8dcd..e9c9bdf

Rolling v8/buildtools/third_party/libunwind/trunk: d1c7f92..cb96c63

Rolling v8/third_party/android_platform: 87b4b48..2760db4

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/389f33b..a9d86a4

Rolling v8/third_party/depot_tools: 76979da..a9c548e

Rolling v8/third_party/googletest/src: b007c54..af29db7

Rolling v8/third_party/zlib: 923f5eb..d1aa7af

Rolling v8/tools/clang: a15c2df..c8e9f23

Rolling v8/tools/luci-go: git_revision:cb424e70e75136736a86359ef070aa96425fe7a3..git_revision:6da0608e4fa8a3c6d1fa4f855485c0038b05bf72

Rolling v8/tools/luci-go: git_revision:cb424e70e75136736a86359ef070aa96425fe7a3..git_revision:6da0608e4fa8a3c6d1fa4f855485c0038b05bf72

R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: I87aab148bb29806e335fa4ad10e1112c1d799a5d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3567924
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#79728}
2022-04-04 09:01:56 +00:00
Nikolaos Papaspyrou
173885cda8 test: Remove two obsolete regression tests
This CL removes two obsolete regression tests that were taking too
long on debug engine builds.

Bug: v8:12753
Bug: v8:12754
Change-Id: I818101725caa22fb4b2ed22381f01a2dd9436fe4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3563563
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79727}
2022-04-04 08:36:06 +00:00
Michael Achenbach
dfe465d1ba [foozzie] Switch wrapper to Py3
No-Try: true
Bug: chromium:1288926
Change-Id: I05402b802f6d17dfea1211a682d3ed38f83e5aeb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3565722
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79726}
2022-04-04 08:30:06 +00:00